The following code shows an example of how to create a subscription with a filter that only accepts events of type org.alfresco.event.node.Created and org.alfresco.event.node.Updated:
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.alfresco.gateway.handler.SubscriptionsApi;
import org.alfresco.gateway.model.Filter;
import org.alfresco.gateway.model.Subscription;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Sample {
private static final Logger LOGGER = LoggerFactory.getLogger(Sample.class);
public static void create(String[] args) {
@Inject
SubscriptionsApi subscriptionsApi;
Map<String, String> config = new HashMap<>();
config.put("broker-id", "my-broker"); // Id of the a broker in alfresco-event-gateway configuration
config.put("destination", "topic:sample-topic"); // Name of the topic to which the gateway shall publish the events
Filter filter = new Filter();
filter.setType("event-type");
// Comma-separated list of event types accepted by the filter
filter.setConfig(Collections.singletonMap("event-types", "org.alfresco.event.node.Created,org.alfresco.event.node.Updated"));
Subscription subscriptionRequest = new Subscription();
subscriptionRequest.setType("jms-activemq");
subscriptionRequest.setConfig(config);
subscriptionRequest.setFilters(Collections.singletonList(filter));
Subscription result = subscriptionsApi.createSubscription(subscriptionRequest);
LOGGER.info("Created subscription with id: {}", result.getId());
}
}
For more information on event types, see the Content Services event types section in the Alfresco Content Services documentation.