public static final String RECURSE = "-R";
private static SubscriptionInstance populate(String path, Subscription subscription) {
SubscriptionInstance subscriptionInstance = new SubscriptionInstance();
if (subscription != null) {
if (subscription.getId() == null || subscription.getTopicName() == null) {
log.error("Failed getting ID or Filter Value");
return null;
}
String eventName = subscription.getTopicName().substring(
subscription.getTopicName().lastIndexOf(
RegistryEvent.TOPIC_SEPARATOR) + 1);
if (!subscription.getTopicName().equals(
RegistryEventingConstants.TOPIC_PREFIX + path +
RegistryEvent.TOPIC_SEPARATOR + eventName)) {
log.debug("Filter name is: " + subscription.getTopicName() +
". Expected: " + RegistryEventingConstants.TOPIC_PREFIX + path +
RegistryEvent.TOPIC_SEPARATOR + eventName + ".");
return null;
}
subscriptionInstance.setId(subscription.getId());
subscriptionInstance.setAddress(subscription.getEventSinkURL());
subscriptionInstance.setTopic(subscription.getTopicName());
subscriptionInstance.setEventName(eventName);
String address = subscriptionInstance.getAddress();
if (address.startsWith("digest://")) {
subscriptionInstance.setDigestType(address.substring(9, 10));
address = address.substring(11);
} else {
subscriptionInstance.setDigestType("");
}
if (address.startsWith("mailto:")) {
subscriptionInstance.setNotificationMethod("email");
} else if (address.startsWith("user://")) {
subscriptionInstance.setNotificationMethod("username");
} else if (address.startsWith("role://")) {
subscriptionInstance.setNotificationMethod("role");
} else if (subscription.getProperties() != null &&
subscription.getProperties().get(
RegistryEventingConstants.DO_REST) != null &&
((String)subscription.getProperties().get(
RegistryEventingConstants.DO_REST)).equals(
Boolean.toString(Boolean.TRUE))) {
subscriptionInstance.setNotificationMethod("html.plain.text");
} else {
subscriptionInstance.setNotificationMethod("soap");
}
} else {
throw new IllegalStateException("A valid subscription was not present");
}
log.debug("Found subscription instance");