@Override public DeliveryEndpoint createDeliveryEndpoint(DeliveryMethodInstance deliveryMethod, String pubId) throws InvalidSubscriptionException { try { DeliveryDefinition definition = new DeliveryDefinition(deliveryMethod.getId(), null, pubId, false); DeliveryProvider provider = deliveryProviderRepository.getProvider(Optional.of(definition)); DeliveryParameter[] providerParams = provider.getParameters(); deliveryMethod.getParameters().forEach((String s, ParameterInstance pi) -> { for (DeliveryParameter providerParam : providerParams) { if (providerParam.getElementName().equals(s)) { definition.addParameter(new DeliveryParameter(pi.getDataType(), null, s, pi.getValue().toString())); return; } } }); if (provider == null) { throw new InvalidSubscriptionException("No delivery provider found for delivery: "+deliveryMethod.getId()); } return provider.createDeliveryEndpoint(definition); } catch (UnsupportedDeliveryDefinitionException ex) { throw new InvalidSubscriptionException(ex.getMessage(), ex); } }