@Override public DeliveryParameter[] getParameters() { DeliveryParameter[] params = new DeliveryParameter[3]; String namespace = "eventing-rest-api"; params[0] = new DeliveryParameter("text", namespace, "to", null); params[1] = new DeliveryParameter("text", namespace, "cc", null); params[2] = new DeliveryParameter("text", namespace, "subject", "[Notification] Rule matched"); return params; }
private Map<String, ParameterDefinition> mapParameters(DeliveryParameter[] parameters) { Map<String, ParameterDefinition> result = new HashMap<>(parameters.length); for (DeliveryParameter dp : parameters) { ParameterDefinition p = new ParameterDefinition(dp.getType(), dp.getElementName()); p.setDefaultValue(dp.getValue()); result.put(dp.getElementName(), p); } return result; }
@Override public DeliveryEndpoint createDeliveryEndpoint(DeliveryDefinition def) throws UnsupportedDeliveryDefinitionException { Optional<String> topicOpt = def.getParameters().stream() .filter(t -> t.getElementName().equals("topic")) .findFirst() .map(dp -> dp.getValue()); return new MqttDeliveryEndpoint(topicOpt.orElse(UUID.randomUUID().toString().substring(0, 8))); }
@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); } }
@Override public DeliveryParameter[] getParameters() { return new DeliveryParameter[] {new DeliveryParameter("string", null, "topic", null)}; }