* @param consumer the consumer endpoint reference .
* @throws SoapFault when the subscription cannot be made.
*/
private void complexSubscription(EndpointReference producer, EndpointReference consumer) throws SoapFault
{
NotificationProducerClient producerClient = new NotificationProducerClient(producer);
producerClient.setTrace(true);
FilterCollection filter = new FilterCollection();
TopicFilter topicFilter = new TopicFilter(Names.EVENTS_LIFECYLE_TOPIC_NAME);
MessagePatternFilter messageFilter= new MessagePatternFilter(
"/wsnt:NotificationMessage/wsnt:Message/qman:LifeCycleEvent/qman:Resource/qman:Name/text()='connection'", // expression (XPath)
XPathUtils.NAMESPACE_URI); // Dialect : the only supported dialect is XPath 1.0
ProducerPropertiesFilter producerFilter = new ProducerPropertiesFilter(
"boolean(/*/MgtPubInterval > 100 and /*/MsgTotalEnqueues > 56272)",
XPathUtils.NAMESPACE_URI);
filter.addFilter(topicFilter);
filter.addFilter(messageFilter);
filter.addFilter(producerFilter);
producerClient.subscribe(
consumer, // Consumer Endpoint reference
filter, // Topic Filter
new Date(System.currentTimeMillis() + 10000)); // Termination Time
}