You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pubscribe-dev@ws.apache.org by sc...@apache.org on 2005/05/06 23:33:34 UTC
svn commit: r168664 - in /incubator/hermes/trunk/src:
java/org/apache/ws/eventing/ java/org/apache/ws/eventing/porttype/impl/
java/org/apache/ws/eventing/pubsub/ java/org/apache/ws/notification/base/
java/org/apache/ws/notification/base/impl/
java/org/apache/ws/notification/base/v2004_6/impl/
java/org/apache/ws/notification/base/v2004_6/porttype/impl/
java/org/apache/ws/notification/pubsub/
java/org/apache/ws/notification/topics/impl/
java/org/apache/ws/notification/topics/util/ templates/
Author: scamp
Date: Fri May 6 14:33:33 2005
New Revision: 168664
URL: http://svn.apache.org/viewcvs?rev=168664&view=rev
Log: (empty)
Removed:
incubator/hermes/trunk/src/java/org/apache/ws/eventing/porttype/impl/simpleNotificationPortTypeImpl.java
Modified:
incubator/hermes/trunk/src/java/org/apache/ws/eventing/AbstractSubscription.java
incubator/hermes/trunk/src/java/org/apache/ws/eventing/SubscriptionHome.java
incubator/hermes/trunk/src/java/org/apache/ws/eventing/porttype/impl/EventSourcePortTypeImpl.java
incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/Subscription.java
incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/SubscriptionHome.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/base/Subscription.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/AbstractSubscription.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/impl/SubscriptionHome.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/NotificationProducerPortTypeImpl.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/SubscriptionManagerPortTypeImpl.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/pubsub/SubscriptionHome.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java
incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/util/TopicUtils.java
incubator/hermes/trunk/src/templates/NotificationProducer-Resource_init.txt
Modified: incubator/hermes/trunk/src/java/org/apache/ws/eventing/AbstractSubscription.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/eventing/AbstractSubscription.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/eventing/AbstractSubscription.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/eventing/AbstractSubscription.java Fri May 6 14:33:33 2005
@@ -15,24 +15,20 @@
*/
package org.apache.ws.eventing;
-import org.apache.ws.pubsub.*;
-
import org.apache.ws.addressing.EndpointReference;
-
-
-import org.apache.xmlbeans.*;
-import org.w3c.dom.*;
-import edu.berkeley.cs.db.yfilterplus.queryparser.Query;
-import java.util.Calendar;
+import org.apache.ws.pubsub.NotificationConsumer;
+import org.apache.ws.pubsub.NotificationProducer;
+import org.apache.ws.pubsub.SubscriptionEndConsumer;
import org.apache.ws.resource.ResourceHome;
import org.apache.ws.resource.ResourceKey;
import org.apache.ws.resource.lifetime.ResourceTerminationListener;
+import java.util.Calendar;
+
public abstract class AbstractSubscription implements org.apache.ws.pubsub.Subscription, org.apache.ws.resource.Resource {
protected NotificationConsumer consumer;
protected SubscriptionEndConsumer endconsumer;
- protected EndpointReference epr;
protected String m_id;
protected Calendar m_terminationTime;
@@ -40,11 +36,8 @@
protected ResourceHome rH;
protected ResourceKey rK;
protected boolean m_usenotify;
-
-
- public EndpointReference getEpr(){
- return this.epr;
- }
+ /** The EndpointReference for this resource **/
+ protected EndpointReference m_endpointReference;
public void setResourceKey(ResourceKey rK){
this.rK=rK;
@@ -56,7 +49,7 @@
this.rH=rH;
}
public void setEpr(EndpointReference epr){
- this.epr=epr;
+ this.m_endpointReference=epr;
}
public Object getID(){
@@ -100,5 +93,17 @@
public void addTerminationListener(ResourceTerminationListener resourceTerminationListener)
{
//this is a no op todo Stefan I need to know if you want to leverege this
- }
+ }
+ /**
+ * Returns the EndpointReference associated with this Resource.
+ *
+ * @return The Resource's EndpointReference or null if the EndpointReference has not been set.
+ *
+ * Note: It is the responsibility of the Resource creator to set the EndpointReference (i.e. ResourceHome impl)
+ */
+ public org.apache.ws.addressing.EndpointReference getEndpointReference()
+ {
+ return m_endpointReference;
+ }
+
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/eventing/SubscriptionHome.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/eventing/SubscriptionHome.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/eventing/SubscriptionHome.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/eventing/SubscriptionHome.java Fri May 6 14:33:33 2005
@@ -24,11 +24,11 @@
import org.apache.commons.logging.LogFactory;
import org.apache.ws.addressing.EndpointReference;
import org.apache.ws.addressing.XmlBeansEndpointReference;
+import org.apache.ws.pubsub.Filter;
import org.apache.ws.resource.InvalidResourceKeyException;
import org.apache.ws.resource.JndiConstants;
import org.apache.ws.resource.RemoveCallback;
import org.apache.ws.resource.RemoveNotSupportedException;
-import org.apache.ws.resource.Resource;
import org.apache.ws.resource.ResourceException;
import org.apache.ws.resource.ResourceKey;
import org.apache.ws.resource.ResourceUnknownException;
@@ -43,16 +43,25 @@
import org.xmlsoap.schemas.ws.x2004.x08.eventing.SubscribeDocument;
import javax.xml.namespace.QName;
-
-import java.util.Calendar;
-
-import org.apache.ws.pubsub.*;
+import java.util.Calendar;
public class SubscriptionHome extends org.apache.ws.resource.impl.AbstractResourceHome{
private static final Log LOG = LogFactory.getLog( SubscriptionHome.class.getName() );
+ /** The service endpoint name as registered with the SOAP Platform. This is useful for building EPR's. **/
+ public static final javax.xml.namespace.QName SERVICE_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/SubscriptionManager}SubscriptionManager");
+
+
+ /** The management PortType associated with this resource. This is useful for building EPR's.**/
+ public static final javax.xml.namespace.QName PORT_TYPE = javax.xml.namespace.QName.valueOf("http://ws.apache.org/notification/base/service/SubscriptionManager}SubscriptionManagerPortType");
+
+ /** The WSDL Port name associated with the resource. This is useful for building EPR's. **/
+ public static final String PORT_NAME = "SubscriptionManager";
+
+ /** The name of the resource key for this resource. **/
+ public static final javax.xml.namespace.QName RESOURCE_KEY_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/SubscriptionManager}ResourceID");
- private static final String SERVICE_NAME = "SubscriptionManager";
- public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME + "/" + JndiConstants.ATOMIC_NAME_HOME;
+
+ public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME.getLocalPart() + "/" + JndiConstants.ATOMIC_NAME_HOME;
public int c=0;
@@ -188,5 +197,24 @@
xmlCursor.setTextValue(resourceKey.getValue().toString());
xmlCursor.dispose();
return new XmlBeansEndpointReference(epr);
+ }
+ public QName getServiceName()
+ {
+ return SERVICE_NAME;
+ }
+
+ public QName getPortType()
+ {
+ return PORT_TYPE;
+ }
+
+ public String getServicePortName()
+ {
+ return PORT_NAME;
+ }
+
+ public QName getResourceKeyNameQName()
+ {
+ return RESOURCE_KEY_NAME;
}
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/eventing/porttype/impl/EventSourcePortTypeImpl.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/eventing/porttype/impl/EventSourcePortTypeImpl.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/eventing/porttype/impl/EventSourcePortTypeImpl.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/eventing/porttype/impl/EventSourcePortTypeImpl.java Fri May 6 14:33:33 2005
@@ -107,7 +107,7 @@
SubscribeResponseDocument responseDom= SubscribeResponseDocument.Factory.newInstance();
SubscribeResponseDocument.SubscribeResponse response = responseDom.addNewSubscribeResponse();
- response.setSubscriptionManager((EndpointReferenceType) ((XmlObjectWrapper)subscription.getEpr()).getXmlObject());
+ response.setSubscriptionManager((EndpointReferenceType) ((XmlObjectWrapper)subscription.getEndpointReference()).getXmlObject());
//TODO why not ExpirationType???
response.setExpires(new org.apache.xmlbeans.XmlCalendar(subscription.getTerminationTime().getTime()));
Modified: incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/Subscription.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/Subscription.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/Subscription.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/Subscription.java Fri May 6 14:33:33 2005
@@ -62,7 +62,7 @@
//put XMLbean into SOAPBody
soapm.getSOAPBody().addDocument((org.w3c.dom.Document) usdom.newDomNode());
- sconn.call(soapm,getEpr());
+ sconn.call(soapm,getEndpointReference());
}catch(Exception e){
e.printStackTrace();
}
@@ -80,7 +80,7 @@
//put XMLbean into SOAPBody
soapm.getSOAPBody().addDocument((org.w3c.dom.Document) rdom.newDomNode());
- sconn.call(soapm,getEpr());
+ sconn.call(soapm,getEndpointReference());
}catch(Exception e){
e.printStackTrace();
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/SubscriptionHome.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/SubscriptionHome.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/SubscriptionHome.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/eventing/pubsub/SubscriptionHome.java Fri May 6 14:33:33 2005
@@ -16,29 +16,37 @@
package org.apache.ws.eventing.pubsub;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xmlsoap.schemas.ws.x2004.x08.eventing.SubscribeResponseDocument;
-
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.ws.resource.JndiConstants;
import org.apache.ws.resource.impl.SimpleTypeResourceKey;
import javax.xml.namespace.QName;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import java.util.Map;
/**
*
* @author Stefan Lischke
*/
public class SubscriptionHome extends org.apache.ws.resource.impl.AbstractResourceHome /* implements org.apache.ws.resource.ResourceHome*/{
- private static final String SERVICE_NAME = "SubscriptionEndPort";
+ /** The service endpoint name as registered with the SOAP Platform. This is useful for building EPR's. **/
+ public static final javax.xml.namespace.QName SERVICE_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/SubscriptionEndPort}SubscriptionEndPort");
+
+
+ /** The management PortType associated with this resource. This is useful for building EPR's.**/
+ public static final javax.xml.namespace.QName PORT_TYPE = javax.xml.namespace.QName.valueOf("http://ws.apache.org/notification/base/service/SubscriptionEndPort}SubscriptionEndPortPortType");
+
+ /** The WSDL Port name associated with the resource. This is useful for building EPR's. **/
+ public static final String PORT_NAME = "SubscriptionEndPort";
+
+ /** The name of the resource key for this resource. **/
+ public static final javax.xml.namespace.QName RESOURCE_KEY_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/SubscriptionEndPort}ResourceID");
+
+
//private static Map m_resources=new java.util.HashMap();
- public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME + "/" + JndiConstants.ATOMIC_NAME_HOME;
+ public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME.getLocalPart() + "/" + JndiConstants.ATOMIC_NAME_HOME;
private static int num=0;
private static final Log LOG = LogFactory.getLog( SubscriptionHome.class.getName() );
-
+
public void SubscriptionHome(){
num++;
LOG.info("create SubscriptionHome number : "+num);
@@ -101,4 +109,23 @@
public void setWsdlTargetNamespace(String targetNamespace) {
}
*/
+ public QName getServiceName()
+ {
+ return SERVICE_NAME;
+ }
+
+ public QName getPortType()
+ {
+ return PORT_TYPE;
+ }
+
+ public String getServicePortName()
+ {
+ return PORT_NAME;
+ }
+
+ public QName getResourceKeyNameQName()
+ {
+ return RESOURCE_KEY_NAME;
+ }
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/Subscription.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/Subscription.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/Subscription.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/Subscription.java Fri May 6 14:33:33 2005
@@ -90,9 +90,6 @@
//TODO: remove this method once getEPR() method is added to Resource interface
void setEpr(EndpointReference epr);
- // TODO: remove this method once getEPR() method is added to Resource interface
- EndpointReference getEpr();
-
// TODO: figure out if we need this...
void setNotificationConsumer(NotificationConsumer notificationConsumer);
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/AbstractSubscription.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/AbstractSubscription.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/AbstractSubscription.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/AbstractSubscription.java Fri May 6 14:33:33 2005
@@ -355,7 +355,7 @@
return m_notificationProducer;
}
- public EndpointReference getEpr()
+ public EndpointReference getEndpointReference()
{
return m_epr;
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/impl/SubscriptionHome.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/impl/SubscriptionHome.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/impl/SubscriptionHome.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/impl/SubscriptionHome.java Fri May 6 14:33:33 2005
@@ -17,7 +17,6 @@
import org.apache.ws.addressing.EndpointReference;
import org.apache.ws.addressing.XmlBeansEndpointReference;
-import org.apache.ws.notification.base.Subscription;
import org.apache.ws.notification.topics.TopicExpression;
import org.apache.ws.resource.JndiConstants;
import org.apache.ws.resource.Resource;
@@ -36,7 +35,7 @@
import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceDocument;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceType;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.ReferencePropertiesType;
-
+import org.apache.ws.notification.base.Subscription;
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
import java.lang.reflect.Constructor;
@@ -47,8 +46,21 @@
*/
public class SubscriptionHome extends AbstractResourceHome
{
- private static final String SERVICE_NAME = "SubscriptionManager";
- public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME + "/" + JndiConstants.ATOMIC_NAME_HOME;
+
+ /** The service endpoint name as registered with the SOAP Platform. This is useful for building EPR's. **/
+ public static final javax.xml.namespace.QName SERVICE_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/SubscriptionManager}SubscriptionManager");
+
+
+ /** The management PortType associated with this resource. This is useful for building EPR's.**/
+ public static final javax.xml.namespace.QName PORT_TYPE = javax.xml.namespace.QName.valueOf("http://ws.apache.org/notification/base/service/SubscriptionManager}SubscriptionManagerPortType");
+
+ /** The WSDL Port name associated with the resource. This is useful for building EPR's. **/
+ public static final String PORT_NAME = "SubscriptionManager";
+
+ /** The name of the resource key for this resource. **/
+ public static final javax.xml.namespace.QName RESOURCE_KEY_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/SubscriptionManager}ResourceID");
+
+ public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME.getLocalPart() + "/" + JndiConstants.ATOMIC_NAME_HOME;
/**
*
* @param resourceContext
@@ -127,5 +139,25 @@
xmlCursor.setTextValue(resourceKey.getValue().toString());
xmlCursor.dispose();
return new XmlBeansEndpointReference(epr);
+ }
+
+ public QName getServiceName()
+ {
+ return SERVICE_NAME;
+ }
+
+ public QName getPortType()
+ {
+ return PORT_TYPE;
+ }
+
+ public String getServicePortName()
+ {
+ return PORT_NAME;
+ }
+
+ public QName getResourceKeyNameQName()
+ {
+ return RESOURCE_KEY_NAME;
}
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/NotificationProducerPortTypeImpl.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/NotificationProducerPortTypeImpl.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/NotificationProducerPortTypeImpl.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/NotificationProducerPortTypeImpl.java Fri May 6 14:33:33 2005
@@ -19,7 +19,6 @@
import org.apache.ws.addressing.EndpointReference;
import org.apache.ws.addressing.XmlBeansEndpointReference;
import org.apache.ws.notification.base.NotificationProducerResource;
-import org.apache.ws.notification.base.Subscription;
import org.apache.ws.notification.base.impl.XmlBeansTopicExpression;
import org.apache.ws.notification.base.impl.faults.SubscribeCreationFailedFaultException;
import org.apache.ws.notification.base.v2004_6.impl.SubscriptionHome;
@@ -44,12 +43,7 @@
import org.apache.ws.resource.impl.AbstractResourceContext;
import org.apache.ws.resource.properties.NamespaceVersionHolder;
import org.apache.ws.resource.properties.impl.AbstractResourcePropertiesPortType;
-import org.apache.ws.resource.properties.query.QueryEngine;
import org.apache.ws.resource.properties.query.QueryExpression;
-import org.apache.ws.resource.properties.query.UnknownQueryExpressionDialectException;
-import org.apache.ws.resource.properties.query.QueryEvaluationErrorException;
-import org.apache.ws.resource.properties.query.InvalidQueryExpressionException;
-import org.apache.ws.resource.properties.query.impl.QueryEngineImpl;
import org.apache.ws.resource.properties.query.impl.XmlBeansQueryExpression;
import org.apache.ws.util.XmlBeanUtils;
import org.apache.xmlbeans.XmlObject;
@@ -58,17 +52,13 @@
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.SubscribeDocument;
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.SubscribeResponseDocument;
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.AttributedURI;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceDocument;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceType;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.ReferencePropertiesType;
-
+import org.apache.ws.notification.base.Subscription;
import javax.naming.Context;
import javax.naming.InitialContext;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.rpc.JAXRPCException;
import java.util.Calendar;
@@ -81,23 +71,6 @@
implements NotificationProducerPortType, NotificationProducer
{
- private static final QueryEngine QUERY_ENGINE = new QueryEngineImpl();
- private static final Element TEST_EVAL_CONTEXT; // DOM element used to validate selector and precondition XPaths
-
- static
- {
- Document doc = null;
- try
- {
- doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
- }
- catch ( ParserConfigurationException pce )
- {
- throw new IllegalStateException( "Failed to create DOM document." );
- }
- TEST_EVAL_CONTEXT = doc.createElement( "Foo" );
- }
-
public NotificationProducerPortTypeImpl( ResourceContext resourceContext )
{
super( resourceContext );
@@ -106,90 +79,120 @@
public SubscribeResponseDocument subscribe( SubscribeDocument requestDoc )
{
SubscribeDocument.Subscribe request = requestDoc.getSubscribe();
+
+ //make sure to check if optional elements are set in request...
Calendar initialTerminationTime = null;
- if ( request.isSetInitialTerminationTime() )
+ if(request.getInitialTerminationTime() != null)
{
initialTerminationTime = request.getInitialTerminationTime();
}
+
+ QueryExpression precondition = null;
+ if(request.getPrecondition() != null)
+ {
+ precondition = new XmlBeansQueryExpression( request.getPrecondition() );
+ }
+
+ QueryExpression selector = null;
+ if(request.getSelector() != null)
+ {
+ selector = new XmlBeansQueryExpression( request.getSelector() );
+ }
+
XmlObject subPolicy = null;
- if ( request.isSetSubscriptionPolicy() )
+ if(request.getSubscriptionPolicy() != null)
{
subPolicy = request.getSubscriptionPolicy();
}
+
EndpointReferenceType epr = null;
try
{
- QueryExpression precondition = null;
- if ( request.isSetPrecondition() )
- {
- precondition = new XmlBeansQueryExpression( request.getPrecondition() );
- validateQueryExpressionEvaluatesToBoolean( precondition );
- }
- QueryExpression selector = null;
- if ( request.isSetSelector() )
- {
- selector = new XmlBeansQueryExpression( request.getSelector() );
- validateQueryExpressionEvaluatesToBoolean( selector );
- }
TopicExpression topicExpr = new XmlBeansTopicExpression( request.getTopicExpression() );
- // this prop has default values in schema..it "should" get a value either way if not explicitly set in request
+ //this prop has default values in schema..it "should" get a value either way if not explicitly set in request
boolean useNotify = request.isSetUseNotify() ? request.getUseNotify() : true;
EndpointReference producerEPR = buildEPR( getResourceContext() );
- Context initialContext = new InitialContext();
- SubscriptionHome subscriptionHome = (SubscriptionHome) initialContext.lookup(
- SubscriptionHome.HOME_LOCATION );
-
- Subscription subscription = subscriptionHome.create( SubscriptionResource.class,
- new XmlBeansEndpointReference( request.getConsumerReference() ), producerEPR, initialTerminationTime,
- subPolicy, precondition, selector, getResourceKey(),
- ( (AbstractResourceContext) getResourceContext() ).getResourceHomeLocation(), topicExpr, useNotify );
- subscription.setNotificationProducer( this );
- epr = (EndpointReferenceType) ( (XmlObjectWrapper) subscription.getEpr() ).getXmlObject();
-
- Topic[] topics = evaluateTopicExpression( topicExpr );
- SimpleSubscriptionTopicListener simpleSubscriptionTopicListener = new SimpleSubscriptionTopicListener(
- subscription );
+ Context initialContext = new InitialContext( );
+ SubscriptionHome subscriptionHome = (SubscriptionHome) initialContext.lookup( SubscriptionHome.HOME_LOCATION );
+
+ Subscription subscription = subscriptionHome.create(SubscriptionResource.class, new XmlBeansEndpointReference(request.getConsumerReference()), producerEPR, initialTerminationTime,subPolicy, precondition, selector,getResourceKey(), ((AbstractResourceContext)getResourceContext()).getResourceHomeLocation(),topicExpr,useNotify );
+ subscription.setNotificationProducer(this);
+ epr = (EndpointReferenceType) ((XmlObjectWrapper)subscription.getEndpointReference()).getXmlObject();
+
+ Topic[] topics = evaluateTopicExpression(topicExpr);
+ SimpleSubscriptionTopicListener simpleSubscriptionTopicListener = new SimpleSubscriptionTopicListener(subscription);
for ( int i = 0; i < topics.length; i++ )
{
- topics[i].addTopicListener( simpleSubscriptionTopicListener );
+ topics[i].addTopicListener(simpleSubscriptionTopicListener);
}
}
- catch ( Exception e )
+ catch (Exception e)
{
- throw new SubscribeCreationFailedFaultException( new WsnNamespaceVersionHolderImpl(),
- "Subscribe failed, reason: " + e.getLocalizedMessage() );
+ throw new SubscribeCreationFailedFaultException(new WsnNamespaceVersionHolderImpl(),"Subscribe failed, reason: " + e.getLocalizedMessage());
}
+
SubscribeResponseDocument subscribeResponseDoc = SubscribeResponseDocument.Factory.newInstance();
SubscribeResponseDocument.SubscribeResponse subscribeResponse = subscribeResponseDoc.addNewSubscribeResponse();
- subscribeResponse.setSubscriptionReference( epr );
+ subscribeResponse.setSubscriptionReference( epr);
return subscribeResponseDoc;
}
+ private Topic[] evaluateTopicExpression(TopicExpression topicExpr)
+ {
+ NotificationProducerResource resource = (NotificationProducerResource) getResource();
+ TopicSpaceSet topicSpaceSet = resource.getTopicSpaceSet();
+ try
+ {
+ return topicSpaceSet.evaluateTopicExpression(topicExpr);
+ }
+ catch (TopicExpressionException e)
+ {
+ throw new JAXRPCException("An exception occurred evaluating a TopicExpression. ", e);
+ }
+ }
+
+ private static XmlBeansEndpointReference buildEPR( ResourceContext resourceContext )
+ {
+ EndpointReferenceDocument eprDoc = EndpointReferenceDocument.Factory.newInstance();
+ EndpointReferenceType epr = eprDoc.addNewEndpointReference();
+ AttributedURI address = epr.addNewAddress();
+ address.setStringValue( resourceContext.getServiceURL().toString() );
+ // TODO: set portType and serviceName! (read from config file)
+ ReferencePropertiesType refProps = epr.addNewReferenceProperties();
+ try
+ {
+ XmlBeanUtils.addChildElement( refProps, resourceContext.getResourceKey().getName() );
+ }
+ catch ( ResourceContextException rce )
+ {
+ throw new JAXRPCException( rce );
+ }
+ return new XmlBeansEndpointReference(epr);
+ }
+
public GetCurrentMessageResponseDocument getCurrentMessage( GetCurrentMessageDocument requestDoc )
{
GetCurrentMessageDocument.GetCurrentMessage request = requestDoc.getGetCurrentMessage();
TopicExpressionType topicExprXmlBean = request.getTopic();
TopicExpression topicExpr = new XmlBeansTopicExpression( topicExprXmlBean );
- Topic[] topics = evaluateTopicExpression( topicExpr );
+ Topic[] topics = evaluateTopicExpression(topicExpr);
- if ( topics.length == 0 )
+ if(topics.length == 0)
{
- throw new NoCurrentMessageOnTopicFaultException( new WsnNamespaceVersionHolderImpl(),
- "There was no current message to retrieve." );
+ throw new NoCurrentMessageOnTopicFaultException(new WsnNamespaceVersionHolderImpl(),"There was no current message to retrieve.");
}
GetCurrentMessageResponseDocument message = GetCurrentMessageResponseDocument.Factory.newInstance();
- GetCurrentMessageResponseDocument.GetCurrentMessageResponse response = message.addNewGetCurrentMessageResponse();
- if ( topics.length > 1 )
+ GetCurrentMessageResponseDocument.GetCurrentMessageResponse response = message.addNewGetCurrentMessageResponse();
+ if(topics.length > 1)
{
- throw new JAXRPCException(
- "The topicexpression for GetCurrentMessage returned more than 1 value! This is an invalid request." );
+ throw new JAXRPCException("The topicexpression for GetCurrentMessage returned more than 1 value! This is an invalid request.");
}
else
{
XmlObject currentMessage = (XmlObject) topics[0].getCurrentMessage();
- XmlBeanUtils.addChildElement( response, currentMessage );
+ XmlBeanUtils.addChildElement(response, currentMessage);
}
//todo need to throw appropriate exceptions...
@@ -203,59 +206,14 @@
*/
public EndpointReference getEPR()
{
- return buildEPR( getResourceContext() );
- }
-
- private void validateQueryExpressionEvaluatesToBoolean( QueryExpression precondition )
- throws UnknownQueryExpressionDialectException, QueryEvaluationErrorException,
- InvalidQueryExpressionException
- {
- Object queryResult = QUERY_ENGINE.executeQuery( precondition, TEST_EVAL_CONTEXT );
- if ( !( queryResult instanceof Boolean ) )
- {
- throw new IllegalStateException( "Invalid precondition - expression does not return a Boolean." );
- }
- }
-
- private Topic[] evaluateTopicExpression( TopicExpression topicExpr )
- {
- NotificationProducerResource resource = (NotificationProducerResource) getResource();
- TopicSpaceSet topicSpaceSet = resource.getTopicSpaceSet();
- try
- {
- return topicSpaceSet.evaluateTopicExpression( topicExpr );
- }
- catch ( TopicExpressionException e )
- {
- throw new JAXRPCException( "An exception occurred evaluating a TopicExpression. ", e );
- }
- }
-
- private static XmlBeansEndpointReference buildEPR( ResourceContext resourceContext )
- {
- EndpointReferenceDocument eprDoc = EndpointReferenceDocument.Factory.newInstance();
- EndpointReferenceType epr = eprDoc.addNewEndpointReference();
- AttributedURI address = epr.addNewAddress();
- address.setStringValue( resourceContext.getServiceURL().toString() );
- // TODO: set portType and serviceName! (read from config file)
- ReferencePropertiesType refProps = epr.addNewReferenceProperties();
- try
- {
- XmlBeanUtils.addChildElement( refProps, resourceContext.getResourceKey().getName() );
- }
- catch ( ResourceContextException rce )
- {
- throw new JAXRPCException( rce );
- }
- return new XmlBeansEndpointReference( epr );
+ return buildEPR(getResourceContext());
}
/**
* Subscribe to notifications from this producer.
*
* @param notificationConsumer
- * @param subscriptionEndConsumer the callback Interface for SubscriptionEnd Notifications, or null if no
- * SubscriptionEnd should be send
+ * @param subscriptionEndConsumer the callback Interface for SubscriptionEnd Notifications, or null if no SubscriptionEnd should be send
* @param tf
* @param xf
* @param initialTerminationTime
@@ -263,10 +221,7 @@
*
* @return the subscription
*/
- public org.apache.ws.pubsub.Subscription subscribe( NotificationConsumer notificationConsumer,
- SubscriptionEndConsumer subscriptionEndConsumer,
- TopicFilter tf, XPathFilter xf,
- Calendar initialTerminationTime, boolean useNotify )
+ public org.apache.ws.pubsub.Subscription subscribe(NotificationConsumer notificationConsumer, SubscriptionEndConsumer subscriptionEndConsumer, TopicFilter tf, XPathFilter xf, Calendar initialTerminationTime, boolean useNotify)
{
return null; //todo
}
@@ -278,14 +233,10 @@
* @param filters
* @param initialTerminationTime
* @param deliveryMode the notification delivery mode, or null to use default mode
- * @param policy a policy to be associated with the subscription, or null if no policy should be
- * used
- *
+ * @param policy a policy to be associated with the subscription, or null if no policy should be used
* @return the subscription
*/
- public org.apache.ws.pubsub.Subscription subscribe( NotificationConsumer notificationConsumer, Filter filters[],
- Calendar initialTerminationTime, DeliveryMode deliveryMode,
- Object policy )
+ public org.apache.ws.pubsub.Subscription subscribe(NotificationConsumer notificationConsumer, Filter filters[], Calendar initialTerminationTime, DeliveryMode deliveryMode, Object policy)
{
return null;
}
@@ -294,10 +245,9 @@
* Returns the last notification message published for the given set of filters.
*
* @param filters
- *
* @return
*/
- public Object getCurrentMessage( Filter filters[] )
+ public Object getCurrentMessage(Filter filters[])
{
return null;
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/SubscriptionManagerPortTypeImpl.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/SubscriptionManagerPortTypeImpl.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/SubscriptionManagerPortTypeImpl.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v2004_6/porttype/impl/SubscriptionManagerPortTypeImpl.java Fri May 6 14:33:33 2005
@@ -15,7 +15,6 @@
*=============================================================================*/
package org.apache.ws.notification.base.v2004_6.porttype.impl;
-import org.apache.ws.notification.base.Subscription;
import org.apache.ws.notification.base.impl.faults.PauseFailedFaultException;
import org.apache.ws.notification.base.impl.faults.ResumeFailedFaultException;
import org.apache.ws.notification.base.v2004_6.porttype.SubscriptionManagerPortType;
@@ -27,6 +26,7 @@
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.PauseSubscriptionResponseDocument;
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.ResumeSubscriptionDocument;
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.ResumeSubscriptionResponseDocument;
+import org.apache.ws.notification.base.Subscription;
/**
* An implementation of the WS-BaseNotification SubscriptionManager portType.
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/pubsub/SubscriptionHome.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/pubsub/SubscriptionHome.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/pubsub/SubscriptionHome.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/pubsub/SubscriptionHome.java Fri May 6 14:33:33 2005
@@ -32,8 +32,21 @@
* @author Stefan Lischke
*/
public class SubscriptionHome extends org.apache.ws.resource.impl.AbstractResourceHome {
- private static final String SERVICE_NAME = "NotificationPort";
- public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME + "/" + JndiConstants.ATOMIC_NAME_HOME;
+
+ /** The service endpoint name as registered with the SOAP Platform. This is useful for building EPR's. **/
+ public static final javax.xml.namespace.QName SERVICE_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/NotificationPort}NotificationPort");
+
+
+ /** The management PortType associated with this resource. This is useful for building EPR's.**/
+ public static final javax.xml.namespace.QName PORT_TYPE = javax.xml.namespace.QName.valueOf("http://ws.apache.org/notification/base/service/NotificationPort}NotificationPortPortType");
+
+ /** The WSDL Port name associated with the resource. This is useful for building EPR's. **/
+ public static final String PORT_NAME = "NotificationPort";
+
+ /** The name of the resource key for this resource. **/
+ public static final javax.xml.namespace.QName RESOURCE_KEY_NAME = javax.xml.namespace.QName.valueOf("{http://ws.apache.org/notification/base/service/NotificationPort}ResourceID");
+
+ public static final String HOME_LOCATION = JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME.getLocalPart() + "/" + JndiConstants.ATOMIC_NAME_HOME;
private static final Log LOG = LogFactory.getLog( SubscriptionHome.class.getName() );
@@ -49,5 +62,25 @@
public org.apache.ws.resource.Resource getInstance(org.apache.ws.resource.ResourceContext resourceContext) throws org.apache.ws.resource.ResourceException, org.apache.ws.resource.ResourceContextException, org.apache.ws.resource.ResourceUnknownException {
LOG.info("getInstance SubscriptionHome");
return find( resourceContext.getResourceKey() );
- }
+ }
+
+ public QName getServiceName()
+ {
+ return SERVICE_NAME;
+ }
+
+ public QName getPortType()
+ {
+ return PORT_TYPE;
+ }
+
+ public String getServicePortName()
+ {
+ return PORT_NAME;
+ }
+
+ public QName getResourceKeyNameQName()
+ {
+ return RESOURCE_KEY_NAME;
+ }
}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java Fri May 6 14:33:33 2005
@@ -19,7 +19,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ws.XmlObjectWrapper;
-import org.apache.ws.addressing.Addressing_03_2003_Constants;
+import org.apache.ws.addressing.v2003_03.AddressingConstants;
import org.apache.ws.addressing.EndpointReference;
import org.apache.ws.notification.base.Subscription;
import org.apache.ws.notification.base.v2004_6.BaseNotificationConstants;
@@ -283,13 +283,15 @@
SOAPFactory factory = SOAPFactory.newInstance();
// TODO: this should not be hard-coded to use WSA 2003/03
SOAPHeaderElement headerElem =
- header.addHeaderElement( factory.createName( Addressing_03_2003_Constants.TO,
- Addressing_03_2003_Constants.NSPREFIX_WSRL_SCHEMA,
- Addressing_03_2003_Constants.NSURI_WSRL_SCHEMA ) );
+ header.addHeaderElement( factory.createName( org.apache.ws.addressing.v2003_03.AddressingConstants.TO,
+ org.apache.ws.addressing.v2003_03.AddressingConstants.NSPREFIX_ADDRESSING_SCHEMA,
+ org.apache.ws.addressing.v2003_03.AddressingConstants.NSURI_ADDRESSING_SCHEMA ) );
+
headerElem.addTextNode( consumerEPR.getAddress().getStringValue() );
- headerElem = header.addHeaderElement( factory.createName( Addressing_03_2003_Constants.ACTION,
- Addressing_03_2003_Constants.NSPREFIX_WSRL_SCHEMA,
- Addressing_03_2003_Constants.NSURI_WSRL_SCHEMA ) );
+ headerElem = header.addHeaderElement( factory.createName( AddressingConstants.ACTION,
+ AddressingConstants.NSPREFIX_ADDRESSING_SCHEMA,
+ AddressingConstants.NSURI_ADDRESSING_SCHEMA ) );
+
headerElem.addTextNode( BaseNotificationConstants.NOTIFY_ACTION_URL );
addReferencePropertyHeaders( header, consumerEPR );
}
@@ -327,4 +329,4 @@
addWSAHeaders( header, consumerEPR );
return msg;
}
-}
\ No newline at end of file
+}
Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/util/TopicUtils.java
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/util/TopicUtils.java?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/util/TopicUtils.java (original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/util/TopicUtils.java Fri May 6 14:33:33 2005
@@ -37,9 +37,9 @@
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
import javax.xml.namespace.QName;
+import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
/**
* TODO
@@ -153,7 +153,6 @@
//setup the Topic property
resourceProperty = propSet.get(NotificationProducerPortType.PROP_QNAME_TOPIC);
- TopicDocument topicDocument = TopicDocument.Factory.newInstance();
TopicSpace[] topicSpaces = topicSpaceSet.getTopicSpaces();
for (int i = 0; i < topicSpaces.length; i++)
{
@@ -165,16 +164,16 @@
Topic topic = (Topic)iterator.next();
String topicName = topic.getName();
QName rootTopicQName = new QName(targetNamespace, topicName);
- addSimpleTopic(topicDocument, rootTopicQName);
+ addSimpleTopic(rootTopicQName, resourceProperty);
Iterator subTopics = topic.topicIterator();
while (subTopics.hasNext())
{
Topic subTopic = (Topic) subTopics.next();
- addConcreteTopics(rootTopicQName, subTopic, topicDocument);
+ addConcreteTopics(rootTopicQName, subTopic, resourceProperty);
}
}
}
- resourceProperty.add(topicDocument);
+
//setup the TopicExpressionDialects property
resourceProperty = propSet.get(NotificationProducerPortType.PROP_QNAME_TOPIC_EXPRESSION_DIALECTS);
@@ -188,11 +187,13 @@
}
}
- private static void addSimpleTopic(TopicDocument topicDocument, QName rootTopicQName)
+ private static void addSimpleTopic(QName rootTopicQName, ResourceProperty resourceProp)
{
+ TopicDocument topicDocument = TopicDocument.Factory.newInstance();
TopicExpressionType topicExpressionType = topicDocument.addNewTopic();
topicExpressionType.setDialect(TopicsConstants.TOPIC_EXPR_DIALECT_SIMPLE);
XmlBeanUtils.setValueAsQName(topicExpressionType, rootTopicQName);
+ resourceProp.add(topicDocument);
}
/**
@@ -200,20 +201,22 @@
*
* @param rootTopicQName The QName of the parent topic.
* @param subTopic The current topic being added.
- * @param topicDocument The TopicDocument being added to.
+ * @param resourceProp The ResourceProperty associated with the Topic being added to.
*/
- private static void addConcreteTopics(QName rootTopicQName, Topic subTopic, TopicDocument topicDocument)
+ private static void addConcreteTopics(QName rootTopicQName, Topic subTopic, ResourceProperty resourceProp)
{
+ TopicDocument topicDocument = TopicDocument.Factory.newInstance();
String topicName = subTopic.getName();
QName concreteTopicName = new QName(rootTopicQName.getNamespaceURI(), rootTopicQName.getLocalPart() + "/" + topicName);
TopicExpressionType topicExpressionType = topicDocument.addNewTopic();
topicExpressionType.setDialect(TopicsConstants.TOPIC_EXPR_DIALECT_CONCRETE);
XmlBeanUtils.setValueAsQName(topicExpressionType, concreteTopicName);
+ resourceProp.add(topicDocument);
Iterator iterator = subTopic.topicIterator();
while (iterator.hasNext())
{
Topic topic = (Topic) iterator.next();
- addConcreteTopics(concreteTopicName, topic, topicDocument);
+ addConcreteTopics(concreteTopicName, topic, resourceProp);
}
}
Modified: incubator/hermes/trunk/src/templates/NotificationProducer-Resource_init.txt
URL: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/templates/NotificationProducer-Resource_init.txt?rev=168664&r1=168663&r2=168664&view=diff
==============================================================================
--- incubator/hermes/trunk/src/templates/NotificationProducer-Resource_init.txt (original)
+++ incubator/hermes/trunk/src/templates/NotificationProducer-Resource_init.txt Fri May 6 14:33:33 2005
@@ -14,7 +14,7 @@
}
catch (Exception e)
{
- throw new javax.xml.rpc.JAXRPCException("Unable to init the ResourceProperty Changed topics. Cause: " + e.getLocalizedMessage(), e);
+ throw new javax.xml.rpc.JAXRPCException("Unable to init the ResourceTermination topic. Cause: " + e.getLocalizedMessage(), e);
}
#end
#if($propchange )
@@ -24,5 +24,12 @@
* call TopicUtils.addResourcePropertyValueChangeTopic for each
* Topic you'd like to expose property change notifications for.
*/
- org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopics( getResourcePropertySet(), getTopicSpaceSet() );
+ try
+ {
+ org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopics( getResourcePropertySet(), getTopicSpaceSet() );
+ }
+ catch (Exception e)
+ {
+ throw new javax.xml.rpc.JAXRPCException("Unable to init the ResourceProperty Changed topics. Cause: " + e.getLocalizedMessage(), e);
+ }
#end
---------------------------------------------------------------------
To unsubscribe, e-mail: hermes-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: hermes-dev-help@ws.apache.org