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 ip...@apache.org on 2005/01/24 23:50:24 UTC

svn commit: r126323 - in incubator/hermes/trunk/src: java/org/apache/ws/notification/base java/org/apache/ws/notification/base/impl java/org/apache/ws/notification/base/v1_2/impl java/org/apache/ws/notification/base/v1_2/porttype/impl java/org/apache/ws/notification/tool/v1_2 java/org/apache/ws/notification/topics java/org/apache/ws/notification/topics/impl webapp wsdl

Author: ips
Date: Mon Jan 24 14:50:22 2005
New Revision: 126323

URL: http://svn.apache.org/viewcvs?view=rev&rev=126323
Log:
still in progress..
Added:
   incubator/hermes/trunk/src/java/org/apache/ws/notification/base/NotificationProducerResource.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/ResourcePropertyValueChangeListenerImpl.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpression.java
      - copied, changed from r126297, incubator/hermes/trunk/src/java/org/apache/ws/notification/base/TopicExpression.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpaceRegistry.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSpaceImpl.java
   incubator/hermes/trunk/src/webapp/fingerprint.jsp
   incubator/hermes/trunk/src/webapp/happyaxis.jsp
   incubator/hermes/trunk/src/webapp/index.html
   incubator/hermes/trunk/src/wsdl/SubscriptionManager.wsdl
Removed:
   incubator/hermes/trunk/src/java/org/apache/ws/notification/base/TopicExpression.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/ResourcePropertyTopic.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicListMetaData.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSetImpl.java
Modified:
   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/impl/SubscriptionHome.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansQueryExpression.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansTopicExpression.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/impl/Subscription1_2Resource.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/porttype/impl/NotificationProducerPortTypeImpl.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/tool/v1_2/NotificationProducerPortType2JavaInfo.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/Topic.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEngine.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEvaluator.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpace.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluator.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicExpressionEngineImpl.java
   incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicImpl.java

Added: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/NotificationProducerResource.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/NotificationProducerResource.java?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/NotificationProducerResource.java	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,41 @@
+/*=============================================================================*
+ *  Copyright 2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *=============================================================================*/
+package org.apache.ws.notification.base;
+
+import org.apache.ws.notification.topics.TopicExpression;
+import org.apache.ws.notification.topics.TopicListener;
+import org.apache.ws.notification.topics.TopicSpace;
+import org.apache.ws.resource.Resource;
+
+/**
+ * TODO
+ *
+ * @author Ian Springer (ian DOT springer AT hp DOT com)
+ */
+public interface NotificationProducerResource extends Resource, TopicListener
+{
+
+    void addTopicSpace( TopicSpace topicSpace );
+
+    void removeTopicSpace();
+
+    TopicSpace getTopicSpace( String namespaceURI );
+
+    TopicSpace[] getTopicSpaces();
+
+    Object getCurrentMessage( TopicExpression topicExpr );
+
+}

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?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/Subscription.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/Subscription.java&r2=126323
==============================================================================
--- 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	Mon Jan 24 14:50:22 2005
@@ -18,6 +18,7 @@
 import org.apache.ws.resource.Resource;
 import org.apache.ws.resource.properties.query.QueryExpression;
 import org.apache.ws.resource.lifetime.ScheduledResourceTerminationResource;
+import org.apache.ws.notification.topics.TopicExpression;
 
 /**
  * Interface to be implemented by subscription resources. Exposes the information

Deleted: /incubator/hermes/trunk/src/java/org/apache/ws/notification/base/TopicExpression.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/TopicExpression.java?view=auto&rev=126322
==============================================================================

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?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/AbstractSubscription.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/AbstractSubscription.java&r2=126323
==============================================================================
--- 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	Mon Jan 24 14:50:22 2005
@@ -19,11 +19,12 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.notification.base.QueryExpressionFilter;
 import org.apache.ws.notification.base.Subscription;
-import org.apache.ws.notification.base.TopicExpression;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.notification.topics.TopicSpace;
 import org.apache.ws.notification.topics.TopicListAccessor;
 import org.apache.ws.notification.topics.TopicListener;
 import org.apache.ws.notification.topics.TopicListenerList;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.notification.topics.impl.SimpleSubscriptionTopicListener;
 import org.apache.ws.pubsub.Filter;
 import org.apache.ws.pubsub.NotificationConsumer;
@@ -33,17 +34,23 @@
 import org.apache.ws.resource.ResourceException;
 import org.apache.ws.resource.ResourceHome;
 import org.apache.ws.resource.ResourceKey;
+import org.apache.ws.resource.ResourceContextException;
 import org.apache.ws.resource.properties.ResourcePropertySet;
 import org.apache.ws.resource.properties.query.QueryExpression;
 import org.apache.ws.util.uuid.UuidGenerator;
 import org.apache.ws.util.uuid.UuidGeneratorFactory;
+import org.apache.ws.util.XmlBeanUtils;
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
 import org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.QueryExpressionType;
 import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceType;
+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.ReferencePropertiesType;
 
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.directory.SchemaViolationException;
+import javax.xml.rpc.JAXRPCException;
 import java.net.URI;
 import java.util.Calendar;
 import java.util.Collection;
@@ -214,7 +221,6 @@
         m_producerKey = producerKey;
         m_producerHomeLocation = producerHomeLocation;
         m_topicExpression = topicExpression;
-        m_isPaused = isPaused;
         m_useNotify = useNotify;
         m_creationTime = Calendar.getInstance();
     }
@@ -335,4 +341,6 @@
     {
         return null;  //To change body of implemented methods use File | Settings | File Templates.
     }
+
+
 }

Added: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/ResourcePropertyValueChangeListenerImpl.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/ResourcePropertyValueChangeListenerImpl.java?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/ResourcePropertyValueChangeListenerImpl.java	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,38 @@
+/*=============================================================================*
+ *  Copyright 2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *=============================================================================*/
+package org.apache.ws.notification.base.impl;
+
+import org.apache.ws.resource.properties.ResourcePropertyValueChangeListener;
+import org.apache.ws.resource.properties.ResourcePropertyValueChangeEvent;
+import org.apache.ws.notification.topics.Topic;
+
+/**
+ * TODO
+ */
+public class ResourcePropertyValueChangeListenerImpl implements ResourcePropertyValueChangeListener
+{
+
+    public ResourcePropertyValueChangeListenerImpl( Topic topic )
+    {
+        
+    }
+
+    public void propertyChanged( ResourcePropertyValueChangeEvent event )
+    {
+
+    }
+
+}

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/SubscriptionHome.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/SubscriptionHome.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/SubscriptionHome.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/SubscriptionHome.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/SubscriptionHome.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/SubscriptionHome.java	Mon Jan 24 14:50:22 2005
@@ -16,19 +16,37 @@
 package org.apache.ws.notification.base.impl;
 
 import org.apache.ws.resource.impl.AbstractResourceHome;
+import org.apache.ws.resource.impl.SimpleTypeResourceKey;
 import org.apache.ws.resource.Resource;
 import org.apache.ws.resource.ResourceContext;
 import org.apache.ws.resource.ResourceException;
 import org.apache.ws.resource.ResourceContextException;
 import org.apache.ws.resource.ResourceUnknownException;
+import org.apache.ws.resource.ResourceKey;
+import org.apache.ws.resource.JndiConstants;
+import org.apache.ws.resource.properties.query.QueryExpression;
 import org.apache.ws.notification.base.Subscription;
+import org.apache.ws.notification.topics.TopicExpression;
+import org.apache.ws.util.XmlBeanUtils;
+import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceType;
+import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceDocument;
+import org.xmlsoap.schemas.ws.x2003.x03.addressing.AttributedURI;
+import org.xmlsoap.schemas.ws.x2003.x03.addressing.ReferencePropertiesType;
+
+import javax.xml.rpc.JAXRPCException;
+import javax.xml.namespace.QName;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import java.util.Calendar;
+import java.lang.reflect.Constructor;
 
 /**
  * TODO
  */
 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;
     /**
      *
      * @param resourceContext
@@ -43,11 +61,59 @@
         return find( resourceContext.getResourceKey() );
     }
 
-    public Subscription createInstance( ResourceContext resourceContext ) throws ResourceException, ResourceContextException,
+    public EndpointReferenceType create(  Class subscriptionResourceClass,
+                                 EndpointReferenceType consumerReference,
+                                 EndpointReferenceType producerReference,
+                                 Calendar initialTerminationTime,
+                                 Object policy,
+                                 QueryExpression precondition,
+                                 QueryExpression selector,
+                                 ResourceKey producerKey,
+                                 String producerHomeLocation,
+                                 TopicExpression topicExpression,
+                                 boolean useNotify ) throws ResourceException, ResourceContextException,
             ResourceUnknownException
     {
-        // TODO
-        return null;
+        Subscription subscription;
+        try
+        {
+            Constructor constructor = subscriptionResourceClass.getConstructor(
+                           new Class[] {
+                            EndpointReferenceType.class,
+                            EndpointReferenceType.class,
+                            Calendar.class,
+                            Object.class,
+                            QueryExpression.class,
+                            QueryExpression.class,
+                            ResourceKey.class,
+                            String.class,
+                            TopicExpression.class,
+                            boolean.class } );
+            subscription = (Subscription) constructor.newInstance( new Object[] { consumerReference, producerReference, initialTerminationTime, policy, precondition, selector, producerKey, producerHomeLocation, topicExpression, new Boolean( useNotify ) } );
+            String id = (String) subscription.getID();
+
+            SimpleTypeResourceKey resourceKey = new SimpleTypeResourceKey( QName.valueOf( getResourceKeyName()), id);
+            add( resourceKey, subscription );
+            EndpointReferenceType epr = getEPR(resourceKey, producerReference);
+        }
+        catch ( Exception e )
+        {
+            throw new JAXRPCException( e );
+        }
+        return epr;
     }
+   public EndpointReferenceType getEPR( ResourceKey resourceKey, EndpointReferenceType producerReference )
+    {
+        String producerAddress = producerReference.getAddress().toString();
+        String subscriptionAddress = producerAddress.substring( 0, producerAddress.lastIndexOf( "/") + 1) + SERVICE_NAME;
 
+        EndpointReferenceDocument eprDoc = EndpointReferenceDocument.Factory.newInstance();
+        EndpointReferenceType epr = eprDoc.addNewEndpointReference();
+        AttributedURI address = epr.addNewAddress();
+        address.setStringValue( subscriptionAddress );
+        // TODO: set portType and serviceName! (read from config file)
+        ReferencePropertiesType refProps = epr.addNewReferenceProperties();
+        XmlBeanUtils.addChildElement( refProps, resourceKey.getName() );
+        return epr;
+    }
 }

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansQueryExpression.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansQueryExpression.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansQueryExpression.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansQueryExpression.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansQueryExpression.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansQueryExpression.java	Mon Jan 24 14:50:22 2005
@@ -3,7 +3,7 @@
 import org.apache.ws.resource.properties.query.QueryExpression;
 import org.apache.ws.resource.i18n.MessagesImpl;
 import org.apache.ws.resource.i18n.Keys;
-import org.apache.ws.XmlObjectFacade;
+import org.apache.ws.XmlObjectWrapper;
 import org.apache.ws.util.i18n.Messages;
 import org.apache.ws.util.XmlBeanUtils;
 import org.apache.xmlbeans.XmlObject;
@@ -27,7 +27,7 @@
  *
  * @author Sal Campana
  */
-public class XmlBeansQueryExpression implements QueryExpression, XmlObjectFacade
+public class XmlBeansQueryExpression implements QueryExpression, XmlObjectWrapper
 {
     private static final Log LOG = LogFactory.getLog( XmlBeansQueryExpression.class );
     public static final Messages MSG = MessagesImpl.getInstance();

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansTopicExpression.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansTopicExpression.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansTopicExpression.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansTopicExpression.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansTopicExpression.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/impl/XmlBeansTopicExpression.java	Mon Jan 24 14:50:22 2005
@@ -18,7 +18,8 @@
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.ws.notification.base.TopicExpression;
+import org.apache.ws.notification.topics.TopicExpression;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.resource.i18n.Keys;
 import org.apache.ws.resource.i18n.MessagesImpl;
 import org.apache.ws.resource.properties.query.impl.XmlBeansQueryExpression;

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/impl/Subscription1_2Resource.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/impl/Subscription1_2Resource.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/impl/Subscription1_2Resource.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/impl/Subscription1_2Resource.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/impl/Subscription1_2Resource.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/impl/Subscription1_2Resource.java	Mon Jan 24 14:50:22 2005
@@ -15,10 +15,11 @@
  *=============================================================================*/
 package org.apache.ws.notification.base.v1_2.impl;
 
-import org.apache.ws.notification.base.TopicExpression;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.notification.base.impl.AbstractSubscription;
 import org.apache.ws.notification.base.impl.XmlBeansTopicExpression;
 import org.apache.ws.notification.base.v1_2.porttype.SubscriptionManagerPortType;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.resource.ResourceKey;
 import org.apache.ws.resource.lifetime.callback.CurrentTimeCallback;
 import org.apache.ws.resource.lifetime.v1_2.porttype.ScheduledResourceTerminationPortType;

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/porttype/impl/NotificationProducerPortTypeImpl.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/porttype/impl/NotificationProducerPortTypeImpl.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/porttype/impl/NotificationProducerPortTypeImpl.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/porttype/impl/NotificationProducerPortTypeImpl.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/porttype/impl/NotificationProducerPortTypeImpl.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/base/v1_2/porttype/impl/NotificationProducerPortTypeImpl.java	Mon Jan 24 14:50:22 2005
@@ -15,12 +15,16 @@
  *=============================================================================*/
 package org.apache.ws.notification.base.v1_2.porttype.impl;
 
-import org.apache.ws.notification.base.TopicExpression;
+import org.apache.ws.notification.topics.TopicExpression;
+import org.apache.ws.notification.base.Subscription;
 import org.apache.ws.notification.base.impl.XmlBeansTopicExpression;
+import org.apache.ws.notification.base.impl.SubscriptionHome;
 import org.apache.ws.notification.base.v1_2.impl.Subscription1_2Resource;
 import org.apache.ws.notification.base.v1_2.porttype.NotificationProducerPortType;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.resource.ResourceContext;
 import org.apache.ws.resource.ResourceContextException;
+import org.apache.ws.resource.Resource;
 import org.apache.ws.resource.properties.query.QueryExpression;
 import org.apache.ws.resource.properties.query.impl.XmlBeansQueryExpression;
 import org.apache.ws.resource.properties.v1_2.porttype.impl.AbstractResourcePropertiesPortType;
@@ -30,12 +34,16 @@
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.GetCurrentMessageResponseDocument;
 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.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 javax.xml.rpc.JAXRPCException;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import java.util.Calendar;
 
 /**
  * An implementation of the WS-BaseNotification NotificationProducer portType.
@@ -56,15 +64,21 @@
         SubscribeDocument.Subscribe request = requestDoc.getSubscribe();
         // TODO: use an EPR facade instead of the XMLBean EPR type
         EndpointReferenceType consumerEPR = request.getConsumerReference();
-        request.getInitialTerminationTime();
+        Calendar initialTerminationTime = request.getInitialTerminationTime();
         QueryExpression precondition = new XmlBeansQueryExpression( request.getPrecondition() );
         QueryExpression selector = new XmlBeansQueryExpression( request.getSelector() );
         XmlObject subPolicy = request.getSubscriptionPolicy();
         TopicExpression topicExpr = new XmlBeansTopicExpression( request.getTopicExpression() );
         boolean useNotify = request.getUseNotify();
         EndpointReferenceType producerEPR = buildEPR( getResourceContext() );
-        new Subscription1_2Resource( request );
-        return null;
+
+        Context initialContext = new InitialContext(  );
+        SubscriptionHome subscriptionHome = (SubscriptionHome) initialContext.lookup( SubscriptionHome.HOME_LOCATION );
+        EndpointReferenceType epr = subscriptionHome.create(Subscription1_2Resource.class, consumerEPR, producerEPR, initialTerminationTime,subPolicy, precondition, selector,getResourceKey(), "",topicExpr,useNotify );
+        SubscribeResponseDocument subscribeResponseDocument = SubscribeResponseDocument.Factory.newInstance();
+        SubscribeResponseDocument.SubscribeResponse subscribeResponse = subscribeResponseDocument.addNewSubscribeResponse();
+        subscribeResponse.setSubscriptionReference( epr);
+        return subscribeResponseDocument;
     }
 
     private static EndpointReferenceType buildEPR( ResourceContext resourceContext )
@@ -88,6 +102,9 @@
 
     public GetCurrentMessageResponseDocument getCurrentMessage( GetCurrentMessageDocument requestDoc )
     {
+        GetCurrentMessageDocument.GetCurrentMessage request = requestDoc.getGetCurrentMessage();
+        TopicExpressionType topicExpr = request.getTopic();
+
         // TODO
         return null;
     }

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/tool/v1_2/NotificationProducerPortType2JavaInfo.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/tool/v1_2/NotificationProducerPortType2JavaInfo.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/tool/v1_2/NotificationProducerPortType2JavaInfo.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/tool/v1_2/NotificationProducerPortType2JavaInfo.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/tool/v1_2/NotificationProducerPortType2JavaInfo.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/tool/v1_2/NotificationProducerPortType2JavaInfo.java	Mon Jan 24 14:50:22 2005
@@ -16,6 +16,7 @@
 package org.apache.ws.notification.tool.v1_2;
 
 import org.apache.ws.notification.base.v1_2.porttype.NotificationProducerPortType;
+import org.apache.ws.notification.base.NotificationProducerResource;
 import org.apache.ws.resource.tool.PortType2JavaInfo;
 
 import javax.xml.namespace.QName;
@@ -35,7 +36,7 @@
 
     public String getResourceInterfaceName()
     {
-        return null;
+        return NotificationProducerResource.class.getName();
     }
 
     public String getServiceInterfaceName()

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/Topic.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/Topic.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/Topic.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/Topic.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/Topic.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/Topic.java	Mon Jan 24 14:50:22 2005
@@ -15,8 +15,6 @@
  *=============================================================================*/
 package org.apache.ws.notification.topics;
 
-import org.apache.ws.notification.topics.impl.TopicExpressionType;
-
 import java.util.Iterator;
 import java.util.List;
 
@@ -29,7 +27,7 @@
 public interface Topic extends TopicListenerList
 {
     /**
-     * Add a sub-topic.
+     * Add a subtopic.
      *
      * @param topic the sub-topic to add
      *
@@ -38,35 +36,35 @@
     void addTopic( Topic topic ) throws Exception;
 
     /**
-     * Remove a sub-topic.
+     * Remove a subtopic.
      *
      * @param topic the sub-topic to remove
      */
     void removeTopic( Topic topic );
 
     /**
-     * Get the sub-topic with the given topic name
+     * Get the subtopic with the given topic name
      *
      * @param topicName the topic name of the sub topic
      *
-     * @return the sub-topic, or null if no sub-topic with the given name exists
+     * @return the subtopic, or null if no subtopic with the given name exists
      */
-    Topic getSubTopic( String topicName );
+    Topic getTopic( String topicName );
 
     /**
-     * Set the topic expression that resolves to a set of topics that this topic references. Only used for reference
-     * topics.
+     * Set the topic expression that resolves to a set of topics that this topic references.
+     * Only used for reference topics.
      *
      * @param topicPath The topic expression to set.
      */
-    void setTopicReference( TopicExpressionType topicPath );
+    void setTopicReference( TopicExpression topicPath );
 
     /**
      * Get the topic expression for the topic(s) that this topic references.
      *
      * @return The topic expression that this topic reference or null if this topic is not a reference.
      */
-    TopicExpressionType getTopicReference();
+    TopicExpression getTopicReference();
 
     /**
      * Set the topic path. The topic path is represented as a ordered list of topic names
@@ -97,25 +95,26 @@
     Object getCurrentMessage();
 
     /**
-     * Send out a notification on this topic
+     * Publish a notification message to this topic.
      *
-     * @param obj Object representation of the message to send
+     * @param msg the notification message to be published
      *
-     * @throws Exception
+     * @throws Exception on error
      */
-    void notify( Object obj ) throws Exception;
+    void publish( Object msg ) throws Exception;
 
     /**
      * Is this a topic reference?
      *
-     * @return true if this topic is a reference to another topic false if not
+     * @return true if this topic is a reference to another topic, false if not
      */
     boolean isReference();
 
     /**
      * Iterator for the set of child topics
      *
-     * @return The iterator
+     * @return the iterator
      */
     Iterator topicIterator();
+
 }

Copied: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpression.java (from r126297, incubator/hermes/trunk/src/java/org/apache/ws/notification/base/TopicExpression.java)
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpression.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/base/TopicExpression.java&r1=126297&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpression.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/base/TopicExpression.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpression.java	Mon Jan 24 14:50:22 2005
@@ -13,7 +13,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  *=============================================================================*/
-package org.apache.ws.notification.base;
+package org.apache.ws.notification.topics;
 
 import java.net.URI;
 

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEngine.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEngine.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEngine.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEngine.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEngine.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEngine.java	Mon Jan 24 14:50:22 2005
@@ -15,9 +15,6 @@
  */
 package org.apache.ws.notification.topics;
 
-import org.apache.ws.notification.topics.impl.TopicExpressionType;
-import org.apache.ws.notification.topics.TopicSpace;
-import org.apache.ws.notification.topics.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.topicexpression.impl.UnsupportedTopicExpressionDialectException;
 import org.apache.ws.notification.topics.topicexpression.impl.TopicExpressionResolutionException;
 import org.apache.ws.notification.topics.topicexpression.impl.InvalidTopicExpressionException;
@@ -62,7 +59,7 @@
      * @throws TopicExpressionException if any other error occurs
      */
     public Collection resolveTopicExpression(
-        TopicExpressionType topicExpression,
+        TopicExpression topicExpression,
         TopicSpace topicSpace) throws UnsupportedTopicExpressionDialectException,
                                     TopicExpressionResolutionException,
                                     InvalidTopicExpressionException,
@@ -85,7 +82,7 @@
      *                                  if the topic expression is invalid
      * @throws TopicExpressionException if any other error occurs
      */
-    public List getConcretePath(TopicExpressionType topicExpression)
+    public List getConcretePath(TopicExpression topicExpression)
         throws UnsupportedTopicExpressionDialectException,
                TopicExpressionResolutionException,
                InvalidTopicExpressionException,

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEvaluator.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEvaluator.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEvaluator.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEvaluator.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEvaluator.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicExpressionEvaluator.java	Mon Jan 24 14:50:22 2005
@@ -15,52 +15,47 @@
  */
 package org.apache.ws.notification.topics;
 
-import org.apache.ws.notification.topics.TopicSpace;
-import org.apache.ws.notification.topics.impl.TopicExpressionType;
 import org.apache.ws.notification.topics.topicexpression.impl.InvalidTopicExpressionException;
 import org.apache.ws.notification.topics.topicexpression.impl.TopicExpressionException;
 import org.apache.ws.notification.topics.topicexpression.impl.TopicExpressionResolutionException;
 import org.apache.ws.notification.topics.topicexpression.impl.UnsupportedTopicExpressionDialectException;
-import org.apache.ws.notification.base.TopicExpression;
+import org.w3c.dom.Element;
 
 import java.util.Collection;
 import java.util.List;
 
-
 /**
- * A <code>TopicExpressionEvaluator</code> is used to implement a topic
- * expression evaluation against a <code>TopicList</code>. An evaluator can be
- * registered with a <code>TopicExpressionEngine</code>, which in turn calls the
- * evaluator when a matching expression is found.
- *
+ * A <code>TopicExpressionEvaluator</code> is used to implement a topic expression evaluation against a
+ * <code>TopicList</code>. An evaluator can be registered with a <code>TopicExpressionEngine</code>, which in turn calls
+ * the evaluator when a matching expression is found.
  */
 public interface TopicExpressionEvaluator
 {
 
     /**
-     * Evaluates the expression over a TopicList and returns the result.
+     * Evaluates the expression over a TopicSpace and returns the set of matching topics.
+     *
+     * @param expression object passed by client representing the topic expression
+     * @param topicSpace topic list associated with the service/resource
+     * @param nsContext  a DOM element to use as the context for resolving namespace prefixes
+     *
+     * @return the set of topics that matched the specified expression
      *
-     * @param expression object passed by client representing the topic
-     *                   expression
-     * @param topicSpace  topic list associated with the service/resource
-     * @return the result of the evaluation which depends on the expression.
      * @throws UnsupportedTopicExpressionDialectException
-     *                                  if the topic expression dialect is not
-     *                                  supported
+     *                                  if the topic expression dialect is not supported
      * @throws TopicExpressionResolutionException
-     *                                  if the expression could not be
-     *                                  evaluated
+     *                                  if the expression could not be evaluated
      * @throws InvalidTopicExpressionException
      *                                  if the topic expression is invalid
      * @throws TopicExpressionException if any other error occurs
      */
-    public Collection resolve(
-        TopicExpression expression,
-        TopicSpace topicSpace)
-        throws UnsupportedTopicExpressionDialectException,
-               TopicExpressionResolutionException,
-               InvalidTopicExpressionException,
-               TopicExpressionException;
+    public Collection resolve( TopicExpression expression,
+                               TopicSpace topicSpace,
+                               Element nsContext )
+            throws UnsupportedTopicExpressionDialectException,
+            TopicExpressionResolutionException,
+            InvalidTopicExpressionException,
+            TopicExpressionException;
 
     /**
      * Gets the URIs for the dialects that this evaluator can handle
@@ -70,37 +65,36 @@
     public String[] getDialects();
 
     /**
-     * Converts the expression from dialect specific form to a ordered list of
-     * QNames. This method throws an exception if the expression does not
-     * evaluate to a concrete topic path.
+     * Converts the expression from dialect specific form to a ordered list of QNames. This method throws an exception
+     * if the expression does not evaluate to a concrete topic path.
+     *
+     * @param expression object passed by client representing the topic expression
      *
-     * @param expression object passed by client representing the topic
-     *                   expression
      * @return a list of QNames describing the concrete topic path
+     *
      * @throws UnsupportedTopicExpressionDialectException
-     *                                  if the topic expression dialect is not
-     *                                  supported
+     *                                  if the topic expression dialect is not supported
      * @throws InvalidTopicExpressionException
      *                                  if the topic expression is invalid
      * @throws TopicExpressionException if any other error occurs
      */
-    public List getConcreteTopicPath(TopicExpressionType expression)
-        throws UnsupportedTopicExpressionDialectException,
-               InvalidTopicExpressionException,
-               TopicExpressionException;
+    public List getConcreteTopicPath( TopicExpression expression )
+            throws UnsupportedTopicExpressionDialectException,
+            InvalidTopicExpressionException,
+            TopicExpressionException;
 
     /**
-     * Converts a topic path (list of QNames) to a dialect specific concrete
-     * topic expression.
+     * Converts a topic path (list of QNames) to a dialect specific concrete topic expression.
+     *
+     * @param topicPath containing a list of QNames describing a concrete topic path
      *
-     * @param topicPath containing a list of QNames describing a concrete topic
-     *                  path
      * @return dialect specific version of the topic path
+     *
      * @throws InvalidTopicExpressionException
      *                                  if the conrete topic path is invalid
      * @throws TopicExpressionException if any other error occurs
      */
-    public TopicExpressionType toTopicExpression(List topicPath)
-        throws org.apache.ws.notification.topics.topicexpression.impl.InvalidTopicExpressionException,
-               TopicExpressionException;
+    public TopicExpression toTopicExpression( List topicPath )
+            throws org.apache.ws.notification.topics.topicexpression.impl.InvalidTopicExpressionException,
+            TopicExpressionException;
 }

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpace.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpace.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpace.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpace.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpace.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpace.java	Mon Jan 24 14:50:22 2005
@@ -15,8 +15,6 @@
  *=============================================================================*/
 package org.apache.ws.notification.topics;
 
-import org.apache.ws.notification.topics.impl.TopicExpressionType;
-
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
@@ -63,7 +61,7 @@
      *                                  if the topic expression is invalid
      * @throws TopicExpressionException if any other error occurs
      */
-    Collection getTopics( TopicExpressionType topicExpression )
+    Collection getTopics( TopicExpression topicExpression )
             /* throws UnsupportedTopicExpressionDialectException, TopicExpressionResolutionException, InvalidTopicExpressionException, TopicExpressionException */;
 
     /**

Added: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpaceRegistry.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpaceRegistry.java?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/TopicSpaceRegistry.java	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,56 @@
+/*=============================================================================*
+ *  Copyright 2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *=============================================================================*/
+package org.apache.ws.notification.topics;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+public class TopicSpaceRegistry
+{
+    private static TopicSpaceRegistry s_ourInstance = new TopicSpaceRegistry();
+
+    public static TopicSpaceRegistry getInstance()
+    {
+        return s_ourInstance;
+    }
+
+    private TopicSpaceRegistry()
+    {
+    }
+
+    private Map m_topicSpaceMap = new HashMap();
+
+    public TopicSpace getTopicSpace( String namespaceURI )
+    {
+        return (TopicSpace) m_topicSpaceMap.get( namespaceURI );
+    }
+
+    public void addTopicSpace( TopicSpace topicSpace )
+    {
+        m_topicSpaceMap.put( topicSpace.getNamespaceURI(), topicSpace );
+    }
+
+    public void removeTopicSpace( String namespaceURI )
+    {
+        m_topicSpaceMap.remove( namespaceURI );
+    }
+
+    public Iterator iterator()
+    {
+        return m_topicSpaceMap.values().iterator();
+    }
+}

Deleted: /incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/ResourcePropertyTopic.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/ResourcePropertyTopic.java?view=auto&rev=126322
==============================================================================

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?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleSubscriptionTopicListener.java&r2=126323
==============================================================================
--- 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	Mon Jan 24 14:50:22 2005
@@ -39,6 +39,7 @@
 import org.apache.wsrf.impl.security.authentication.Constants;
 import org.apache.wsrf.impl.security.authorization.NoAuthorization;
 import org.apache.wsrf.impl.security.descriptor.ClientSecurityDescriptor;
+import org.apache.ws.notification.topics.TopicListener;
 import org.globus.util.I18n;
 
 import org.oasis.wsn.NotificationConsumer;

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluator.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluator.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluator.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluator.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluator.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluator.java	Mon Jan 24 14:50:22 2005
@@ -29,8 +29,9 @@
 import org.apache.ws.notification.topics.TopicSpace;
 import org.apache.ws.notification.topics.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.Topic;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.notification.topics.v1_2.Topics1_2Constants;
-import org.apache.ws.notification.base.TopicExpression;
+import org.apache.ws.notification.topics.TopicExpression;
 
 /**
  * Topic expression evalutor for the "Simple" topic dialect.

Deleted: /incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicListMetaData.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/SimpleTopicListMetaData.java?view=auto&rev=126322
==============================================================================

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicExpressionEngineImpl.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicExpressionEngineImpl.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicExpressionEngineImpl.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicExpressionEngineImpl.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicExpressionEngineImpl.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicExpressionEngineImpl.java	Mon Jan 24 14:50:22 2005
@@ -19,6 +19,12 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.notification.topics.TopicExpressionEngine;
 import org.apache.ws.notification.topics.TopicExpressionEvaluator;
+import org.apache.ws.notification.topics.TopicExpression;
+import org.apache.ws.notification.topics.TopicSpace;
+import org.apache.ws.notification.topics.topicexpression.impl.UnsupportedTopicExpressionDialectException;
+import org.apache.ws.notification.topics.topicexpression.impl.InvalidTopicExpressionException;
+import org.apache.ws.notification.topics.topicexpression.impl.TopicExpressionException;
+import org.apache.ws.notification.topics.topicexpression.impl.TopicExpressionResolutionException;
 import org.apache.ws.util.jndi.JNDIUtils;
 
 import javax.naming.Context;
@@ -40,15 +46,13 @@
  */
 public class TopicExpressionEngineImpl implements TopicExpressionEngine
 {
-    private static String TOPIC_EXPRESSION_EVALUATOR_CONTEXT =
-            Constants.JNDI_BASE_NAME + "/topic/eval";
+    //private static String TOPIC_EXPRESSION_EVALUATOR_CONTEXT =
+    //        Constants.JNDI_BASE_NAME + "/topic/eval";
 
-    private static I18n i18n = I18n.getI18n( Resources.class.getName() );
-
-    static Log logger =
+    private static final Log LOG =
             LogFactory.getLog( TopicExpressionEngineImpl.class.getName() );
 
-    private Map evaluators = new HashMap();
+    private Map m_evaluators = new HashMap();
 
     public TopicExpressionEngineImpl()
     {
@@ -71,7 +75,7 @@
         }
         catch ( NamingException e )
         {
-            logger.error( i18n.getMessage( "topicEngineConfigError" ), e );
+            LOG.error( i18n.getMessage( "topicEngineConfigError" ), e );
         }
         return null;
     }
@@ -82,7 +86,7 @@
      */
     public synchronized void refresh()
     {
-        this.evaluators.clear();
+        this.m_evaluators.clear();
         NamingEnumeration list = null;
         try
         {
@@ -101,7 +105,7 @@
         }
         catch ( NamingException e )
         {
-            logger.error( i18n.getMessage( "topicEngineInitError" ), e );
+            LOG.error( i18n.getMessage( "topicEngineInitError" ), e );
         }
         finally
         {
@@ -120,24 +124,24 @@
 
     public synchronized void registerEvaluator( TopicExpressionEvaluator evaluator )
     {
-        logger.debug( "Adding dialects for " + evaluator.getClass().getName() );
+        LOG.debug( "Adding dialects for " + evaluator.getClass().getName() );
         String[] dialects = evaluator.getDialects();
         for ( int i = 0; i < dialects.length; i++ )
         {
-            logger.debug( "Adding dialect: " + dialects[i] );
-            this.evaluators.put( dialects[i], evaluator );
+            LOG.debug( "Adding dialect: " + dialects[i] );
+            this.m_evaluators.put( dialects[i], evaluator );
         }
     }
 
     public synchronized TopicExpressionEvaluator getEvaluator( String dialect )
     {
         TopicExpressionEvaluator evaluator =
-                (TopicExpressionEvaluator) this.evaluators.get( dialect );
+                (TopicExpressionEvaluator) this.m_evaluators.get( dialect );
         return evaluator;
     }
 
-    public synchronized Collection resolveTopicExpression( TopicExpressionType topicExpression,
-                                                           TopicList topicList )
+    public synchronized Collection resolveTopicExpression( TopicExpression topicExpression,
+                                                           TopicSpace topicList )
             throws org.apache.ws.notification.topics.topicexpression.impl.UnsupportedTopicExpressionDialectException,
             TopicExpressionResolutionException,
             InvalidTopicExpressionException,
@@ -155,34 +159,34 @@
         }
 
         String dialect = topicExpression.getDialect().toString();
-        TopicExpressionEvaluator evaluator = this.getEvaluator( dialect );
+        TopicExpressionEvaluator evaluator = getEvaluator( dialect );
 
         if ( evaluator == null )
         {
-            if ( logger.isDebugEnabled() )
+            if ( LOG.isDebugEnabled() )
             {
-                logger.debug( "Dialect not supported:" + dialect );
-                logger.debug( "Registered dialects are:" );
-                Iterator keyIterator = this.evaluators.keySet().iterator();
+                LOG.debug( "Dialect not supported:" + dialect );
+                LOG.debug( "Registered dialects are:" );
+                Iterator keyIterator = m_evaluators.keySet().iterator();
                 Object key = null;
                 while ( keyIterator.hasNext() )
                 {
                     key = keyIterator.next();
-                    logger.debug( key );
+                    LOG.debug( key );
                 }
-                logger.debug( "key.equals(dialect): " + ( key.equals( dialect.toString() ) ) );
-                logger.debug( "this.evaluators.containsKey(dialect): " +
-                        this.evaluators.containsKey( dialect.toString() ) );
-                logger.debug( "HashCode of key: " + String.valueOf( key.hashCode() ) );
-                logger.debug( "HashCode of dialect: " + String.valueOf( dialect.toString().hashCode() ) );
-                logger.debug( "Object stored for key: " + this.evaluators.get( key ) );
+                LOG.debug( "key.equals(dialect): " + ( key.equals( dialect.toString() ) ) );
+                LOG.debug( "this.evaluators.containsKey(dialect): " +
+                        this.m_evaluators.containsKey( dialect.toString() ) );
+                LOG.debug( "HashCode of key: " + String.valueOf( key.hashCode() ) );
+                LOG.debug( "HashCode of dialect: " + String.valueOf( dialect.toString().hashCode() ) );
+                LOG.debug( "Object stored for key: " + this.m_evaluators.get( key ) );
             }
             throw new UnsupportedTopicExpressionDialectException();
         }
         return evaluator.resolve( topicExpression, topicList );
     }
 
-    public synchronized List getConcretePath( TopicExpressionType topicExpression )
+    public synchronized List getConcretePath( TopicExpression topicExpression )
             throws org.apache.ws.notification.topics.topicexpression.impl.UnsupportedTopicExpressionDialectException,
             TopicExpressionResolutionException,
             InvalidTopicExpressionException,
@@ -213,6 +217,6 @@
 
     public synchronized String[] getSupportedDialects()
     {
-        return (String[]) this.evaluators.keySet().toArray( new String[this.evaluators.size()] );
+        return (String[]) this.m_evaluators.keySet().toArray( new String[this.m_evaluators.size()] );
     }
 }

Modified: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicImpl.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicImpl.java?view=diff&rev=126323&p1=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicImpl.java&r1=126322&p2=incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicImpl.java&r2=126323
==============================================================================
--- incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicImpl.java	(original)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicImpl.java	Mon Jan 24 14:50:22 2005
@@ -18,8 +18,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.notification.topics.Topic;
+import org.apache.ws.notification.topics.TopicExpression;
 import org.apache.ws.notification.topics.TopicListener;
-import org.apache.ws.notification.base.TopicExpression;
 
 import java.util.Collection;
 import java.util.HashMap;
@@ -41,8 +41,7 @@
     protected String m_name;
     protected Object m_current;
     protected List m_topicPath; // ordered set of QNames
-    private static final Log LOG =
-            LogFactory.getLog( TopicImpl.class.getName() );
+    private static final Log LOG = LogFactory.getLog( TopicImpl.class.getName() );
 
     public void addTopic( Topic topic ) throws Exception
     {
@@ -51,11 +50,11 @@
             throw new Exception( "addingSubTopicToReference" );
         }
 
-        this.m_subTopics.put( topic.getName(), topic );
+        m_subTopics.put( topic.getName(), topic );
 
         List topicPath = new LinkedList();
 
-        topicPath.addAll( this.m_topicPath );
+        topicPath.addAll( m_topicPath );
         topicPath.add( topic.getName() );
 
         topic.setTopicPath( topicPath );
@@ -73,7 +72,7 @@
         return m_name;
     }
 
-    public Topic getSubTopic( String topicName )
+    public Topic getTopic( String topicName )
     {
         return (Topic) m_subTopics.get( topicName );
     }
@@ -83,9 +82,9 @@
      *
      * @return The topic expression that this topic reference or null if this topic is not a reference.
      */
-    public TopicExpressionType getTopicReference()
+    public TopicExpression getTopicReference()
     {
-        return null;
+        return m_reference;
     }
 
     public boolean isReference()
@@ -98,7 +97,7 @@
         return m_subTopics.values().iterator();
     }
 
-    public void notify( Object obj ) throws Exception
+    public void publish( Object obj ) throws Exception
     {
         m_current = obj;
         if ( LOG.isDebugEnabled() )
@@ -131,7 +130,7 @@
         return this.m_listeners.iterator();
     }
 
-    public void setTopicReference( TopicExpressionType topicPath )
+    public void setTopicReference( TopicExpression topicPath )
     {
         this.m_reference = topicPath;
     }
@@ -166,7 +165,7 @@
      * @param current   The current value of this topic
      * @param topicPath The concrete topic path of this topic
      */
-    public TopicImpl( Map subTopics, TopicExpressionType reference,
+    public TopicImpl( Map subTopics, TopicExpression reference,
                       Collection listeners, String name,
                       Object current, List topicPath )
     {
@@ -210,5 +209,10 @@
             listener = (TopicListener) listenerIterator.next();
             listener.topicRemoved( topic );
         }
+    }
+
+    public Topic getParent()
+    {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
     }
 }

Deleted: /incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSetImpl.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSetImpl.java?view=auto&rev=126322
==============================================================================

Added: incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSpaceImpl.java
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSpaceImpl.java?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSpaceImpl.java	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,86 @@
+/*=============================================================================*
+ *  Copyright 2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *=============================================================================*/
+package org.apache.ws.notification.topics.impl;
+
+import org.apache.ws.notification.topics.TopicSpace;
+import org.apache.ws.notification.topics.Topic;
+import org.apache.ws.notification.topics.TopicExpression;
+import org.apache.ws.notification.topics.TopicListener;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * TODO
+ */
+public class TopicSpaceImpl implements TopicSpace
+{
+    private String m_namespaceURI;
+    private Map m_rootTopicMap;
+
+    public TopicSpaceImpl( String namespaceURI )
+    {
+        m_namespaceURI = namespaceURI;
+    }
+
+    public String getNamespaceURI()
+    {
+        return m_namespaceURI;
+    }
+
+    public void addTopic( Topic topic )
+    {
+        m_rootTopicMap.put( topic.getName(), topic );
+    }
+
+    public void removeTopic( Topic topic )
+    {
+        m_rootTopicMap.remove( topic.getName() );
+    }
+
+    public Collection getTopics( TopicExpression topicExpression )
+            /* throws UnsupportedTopicExpressionDialectException, TopicExpressionResolutionException, InvalidTopicExpressionException, TopicExpressionException */
+    {
+        return null;  // TODO
+    }
+
+    public Topic getTopic( List topicPath )
+    {
+        return null;  // TODO
+    }
+
+    public Iterator topicIterator()
+    {
+        return m_rootTopicMap.values().iterator();
+    }
+
+    public void addTopicListener( TopicListener listener )
+    {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public void removeTopicListener( TopicListener listener )
+    {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public Iterator topicListenerIterator()
+    {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+}

Added: incubator/hermes/trunk/src/webapp/fingerprint.jsp
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/webapp/fingerprint.jsp?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/webapp/fingerprint.jsp	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,272 @@
+<%@ page import="java.io.File,
+                 java.io.IOException,
+                 java.util.Date"
+    session="false" %>
+<html>
+<head>
+<title>System Fingerprint</title>
+</head>
+<body bgcolor=#ffffff>
+<%!
+
+    /*
+     * Fingerprint the users system. This is mainly for use in
+     * diagnosing classpath problems. It is intended to dump out
+     * a copy of the environment this webapp is running in,
+     * and additionally attempt to identify versions of each jar
+     * in the classpath.
+     *
+     * @author Brian Ewins
+     */
+
+    private java.util.Properties versionProps=new java.util.Properties();
+
+    /**
+     * Identify the version of a jar file. This uses a properties file
+     * containing known names and sizes in the format
+     * 'name(size)=version'. Version strings should be like 'xerces-1.4'
+     * ie they should include the name of the library.
+     */
+    public String getFileVersion(File file) throws IOException {
+        String key="<td>"+file.getName()+"</td>";
+        key+= "<td>"+file.length()+"</td>";
+        Date timestamp=new Date(file.lastModified());
+        key+= "<td>"+timestamp.toString()+"</td>";
+        return key;
+
+        /* TODO: implement
+        String value=versionProps.getProperty(key);
+        if (value==null) {
+            // make it possible to have jars without version nos
+            value=versionProps.getProperty(file.getName());
+        }
+        if (value==null) {
+            // fall back on something obvious
+            value=key;
+            Date timestamp=new Date(file.lastModified());
+            value+=" / "+timestamp.toString();
+        }
+        return value;
+        */
+    }
+
+    /**
+     * Split up a classpath-like variable. Returns a list of files.
+     * TODO: this can't cope with relative paths. I think theres code in BCEL that
+     * can be used for this?
+     */
+    File[] splitClasspath(String path) throws IOException {
+        java.util.StringTokenizer st=
+            new java.util.StringTokenizer(path,
+                            System.getProperty("path.separator"));
+        int toks=st.countTokens();
+        File[] files=new File[toks];
+        for(int i=0;i<toks;i++) {
+            files[i]=new File(st.nextToken());
+        }
+        return files;
+    }
+
+    /** given a list of files, return a list of jars which actually exist */
+    File[] scanFiles(File[] files) throws IOException {
+        File[] jars=new File[files.length];
+        int found=0;
+        for (int i=0; i<files.length; i++) {
+            if (files[i].getName().toLowerCase().endsWith(".jar")
+                    && files[i].exists()) {
+                jars[found]=files[i];
+                found++;
+            }
+        }
+        if (found<files.length) {
+            File[] temp=new File[found];
+            System.arraycopy(jars,0,temp,0,found);
+            jars=temp;
+        }
+        return jars;    
+    }
+
+    private static final File[] NO_FILES=new File[0];
+
+    /** scan a directory for jars */    
+    public File[] scanDir(String dir) throws IOException 
+        {
+        if(dir==null) {
+            return NO_FILES;
+        }
+        return scanDir(new File(dir));
+        }
+        
+    public File[] scanDir(File dir) throws IOException {
+        if (!dir.exists() || !dir.isDirectory()) {
+            return NO_FILES;
+        }
+        return scanFiles(dir.listFiles());
+    }
+
+    /** scan a classpath for jars */    
+    public File[] scanClasspath(String path) throws IOException {
+        if (path==null) {
+            return NO_FILES;
+        }
+        return scanFiles(splitClasspath(path));
+    }
+
+    /** 
+     * scan a 'dirpath' (like the java.ext.dirs system property) for jars 
+     */   
+    public File[] scanDirpath(String path) throws IOException {
+        if (path==null) {
+            return NO_FILES;
+        }
+        File[] current=new File[0];
+        File[] dirs=splitClasspath(path);
+        for(int i=0; i<dirs.length; i++) {
+            File[] jars=scanDir(dirs[i]);
+            File[] temp=new File[current.length+jars.length];
+            System.arraycopy(current,0,temp,0,current.length);
+            System.arraycopy(jars,0,temp,current.length,jars.length);
+            current=temp;
+        }
+        return scanFiles(current);
+    }
+
+    /** print out the jar versions for a directory */
+    public void listDirectory(String title, JspWriter out,String dir, String comment) throws IOException {
+        listVersions(title, out,scanDir(dir), comment);
+    }
+
+    /** print out the jar versions for a directory-like system property */
+    public void listDirProperty(String title, JspWriter out,String key, String comment) throws IOException {
+        listVersions(title, out,scanDir(System.getProperty(key)), comment);
+    }
+
+    /** print out the jar versions for a classpath-like system property */
+    public void listClasspathProperty(String title, JspWriter out,String key, String comment) throws IOException {
+        listVersions(title, out,scanClasspath(System.getProperty(key)), comment);
+    }
+
+    /** print out the jar versions for a 'java.ext.dirs'-like system property */
+    public void listDirpathProperty(String title, JspWriter out,String key, String comment) throws IOException {
+        listVersions(title, out,scanDirpath(System.getProperty(key)), comment);
+    }
+
+    /** print out the jar versions for a context-relative directory */
+    public void listContextPath(String title, JspWriter out, String path, String comment)  throws IOException {
+        listVersions(title, out,scanDir(getServletConfig().getServletContext().getRealPath(path)), comment);
+    }
+
+    /** print out the jar versions for a given list of files */
+    public void listVersions(String title, JspWriter out,File[] jars, String comment) throws IOException {
+        out.print("<h2>");
+        out.print(title);
+        out.println("</h2>");
+        out.println("<table>");
+        for (int i=0; i<jars.length; i++) {
+            out.println("<tr>"+getFileVersion(jars[i])+"</tr>");
+        }
+        out.println("</table>");
+        if(comment!=null && comment.length()>0) {
+            out.println("<p>");
+            out.println(comment);
+            out.println("<p>");
+        }
+    }
+
+%>
+<h1>System Fingerprint</h1>
+<h2>JVM and Server Version</h2>
+<table>
+<tr>
+    <td>Servlet Engine</td>
+    <td><%= getServletConfig().getServletContext().getServerInfo() %></td>
+    <td><%= getServletConfig().getServletContext().getMajorVersion() %></td>
+    <td><%= getServletConfig().getServletContext().getMinorVersion() %></td>
+</tr>
+<tr>
+    <td>Java VM</td>
+    <td><%= System.getProperty("java.vm.vendor") %></td>
+    <td><%= System.getProperty("java.vm.name") %></td>
+    <td><%= System.getProperty("java.vm.version") %></td>
+</tr>
+<tr>
+    <td>Java RE</td>
+    <td><%= System.getProperty("java.vendor") %></td>
+    <td><%= System.getProperty("java.version") %></td>
+    <td> </td>
+</tr>
+<tr>
+    <td>Platform</td>
+    <td><%= System.getProperty("os.name") %></td>
+    <td><%= System.getProperty("os.arch") %></td>
+    <td><%= System.getProperty("os.version") %></td>
+</tr>
+</table>
+
+<%
+listClasspathProperty("Boot jars", out,"sun.boot.class.path", "Only valid on a sun jvm");
+listClasspathProperty("System jars", out,"java.class.path", null);
+listDirpathProperty("Extra system jars", out,"java.ext.dirs", null);
+listContextPath("Webapp jars", out, "/WEB-INF/lib", null);
+// identify the container...
+String container=getServletConfig().getServletContext().getServerInfo();
+if (container.startsWith("Tomcat Web Server/3.2")) {
+    String home=System.getProperty("tomcat.home");
+    if(home!=null) {
+        listDirectory("Tomcat 3.2 Common Jars", out,
+                      home+File.separator
+                      +"lib",
+                      null);
+    }
+} else if (container.startsWith("Tomcat Web Server/3.3")) {
+    String home=System.getProperty("tomcat.home");
+    if(home!=null) {
+        listDirectory("Tomcat 3.3 Container Jars", out,
+                      home+File.separator
+                      +"lib"+File.separator
+                      +"container",
+                      null);
+        listDirectory("Tomcat 3.3 Common Jars", out,
+                      home+File.separator
+                      +"lib"+File.separator
+                      +"common",
+                      null);
+    }
+} else if (container.startsWith("Apache Tomcat/4.0")) {
+    //handle catalina common dir
+    String home=System.getProperty("catalina.home");
+    if(home!=null) {
+        listDirectory("Tomcat 4.0 Common Jars", out,
+                      home+File.separator
+                      +"common"+File.separator
+                      +"lib",
+                      null);
+    }
+} else if (container.startsWith("Apache Tomcat/4.1")) {
+    //handle catalina common dir
+    String home=System.getProperty("catalina.home");
+    if(home!=null) {
+        listDirectory("Tomcat 4.1 Common Jars", out,
+                      home+File.separator
+                      +"shared"+File.separator
+                      +"lib",
+                      null);
+    }
+} else if (System.getProperty("resin.home")!=null) {
+    String home=System.getProperty("resin.home");
+    if(home!=null) {
+        listDirectory("Resin Common Jars", out,
+                      home+File.separator
+                      +"lib",
+                      null);
+    }    
+} else if (System.getProperty("weblogic.httpd.servlet.classpath")!=null) {
+    listClasspathProperty("Weblogic Servlet Jars", out,
+                  "weblogic.httpd.servlet.classpath",
+                  null);
+} else {
+    //TODO: identify more servlet engine classpaths.
+}
+%>
+</body>
+</html>
\ No newline at end of file

Added: incubator/hermes/trunk/src/webapp/happyaxis.jsp
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/webapp/happyaxis.jsp?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/webapp/happyaxis.jsp	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,488 @@
+<html>
+<%@ page import="java.io.InputStream,
+                 java.io.IOException,
+                 javax.xml.parsers.SAXParser,
+                 javax.xml.parsers.SAXParserFactory"
+   session="false" %>
+ <%
+    /*
+ * Copyright 2002,2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+%>
+<head>
+<title>Axis Happiness Page</title>
+</head>
+<body bgcolor='#ffffff'>
+<%!
+
+    /*
+     * Happiness tests for axis. These look at the classpath and warn if things
+     * are missing. Normally addng this much code in a JSP page is mad
+     * but here we want to validate JSP compilation too, and have a drop-in
+     * page for easy re-use
+     * @author Steve 'configuration problems' Loughran
+     * @author dims
+     * @author Brian Ewins
+     */
+
+
+    /**
+     * Get a string providing install information.
+     * TODO: make this platform aware and give specific hints
+     */
+    public String getInstallHints(HttpServletRequest request) {
+
+        String hint=
+            "<B><I>Note:</I></B> On Tomcat 4.x and Java1.4, you may need to put libraries that contain "
+            +"java.* or javax.* packages into CATALINA_HOME/common/lib"
+            +"<br>jaxrpc.jar and saaj.jar are two such libraries.";
+        return hint;
+    }
+
+    /**
+     * test for a class existing
+     * @param classname
+     * @return class iff present
+     */
+    Class classExists(String classname) {
+        try {
+            return Class.forName(classname);
+        } catch (ClassNotFoundException e) {
+            return null;
+        }
+    }
+
+    /**
+     * test for resource on the classpath
+     * @param resource
+     * @return true iff present
+     */
+    boolean resourceExists(String resource) {
+        boolean found;
+        InputStream instream=this.getClass().getResourceAsStream(resource);
+        found=instream!=null;
+        if(instream!=null) {
+            try {
+                instream.close();
+            } catch (IOException e) {
+            }
+        }
+        return found;
+    }
+
+    /**
+     * probe for a class, print an error message is missing
+     * @param out stream to print stuff
+     * @param category text like "warning" or "error"
+     * @param classname class to look for
+     * @param jarFile where this class comes from
+     * @param errorText extra error text
+     * @param homePage where to d/l the library
+     * @return the number of missing classes
+     * @throws IOException
+     */
+    int probeClass(JspWriter out,
+                   String category,
+                   String classname,
+                   String jarFile,
+                   String description,
+                   String errorText,
+                   String homePage) throws IOException {
+        try {
+            Class clazz = classExists(classname);
+            if(clazz == null)  {
+               String url="";
+               if(homePage!=null) {
+                  url="<br>  See <a href="+homePage+">"+homePage+"</a>";
+               }
+               out.write("<p>"+category+": could not find class "+classname
+                   +" from file <b>"+jarFile
+                   +"</b><br>  "+errorText
+                   +url
+                   +"<p>");
+               return 1;
+            } else {
+               String location = getLocation(out, clazz);
+               if(location == null) {
+                  out.write("Found "+ description + " (" + classname + ")<br>");
+               }
+               else {
+                  out.write("Found "+ description + " (" + classname + ") at " + location + "<br>");
+               }
+               return 0;
+            }
+        } catch(NoClassDefFoundError ncdfe) { 
+            String url="";
+            if(homePage!=null) {
+                url="<br>  See <a href="+homePage+">"+homePage+"</a>";
+            }
+            out.write("<p>"+category+": could not find a dependency"
+                    +" of class "+classname
+                    +" from file <b>"+jarFile
+                    +"</b><br> "+errorText
+                    +url
+                    +"<br>The root cause was: "+ncdfe.getMessage()
+                    +"<br>This can happen e.g. if "+classname+" is in" 
+                    +" the 'common' classpath, but a dependency like "
+                    +" activation.jar is only in the webapp classpath."
+                    +"<p>");
+            return 1;
+        }
+    }
+
+    /**
+     * get the location of a class
+     * @param out
+     * @param clazz
+     * @return the jar file or path where a class was found
+     */
+
+    String getLocation(JspWriter out,
+                       Class clazz) {
+        try {
+            java.net.URL url = clazz.getProtectionDomain().getCodeSource().getLocation();
+            String location = url.toString();
+            if(location.startsWith("jar")) {
+                url = ((java.net.JarURLConnection)url.openConnection()).getJarFileURL();
+                location = url.toString();
+            } 
+            
+            if(location.startsWith("file")) {
+                java.io.File file = new java.io.File(url.getFile());
+                return file.getAbsolutePath();
+            } else {
+                return url.toString();
+            }
+        } catch (Throwable t){
+        }
+        return "an unknown location";
+    }
+
+    /**
+     * a class we need if a class is missing
+     * @param out stream to print stuff
+     * @param classname class to look for
+     * @param jarFile where this class comes from
+     * @param errorText extra error text
+     * @param homePage where to d/l the library
+     * @throws IOException when needed
+     * @return the number of missing libraries (0 or 1)
+     */
+    int needClass(JspWriter out,
+                   String classname,
+                   String jarFile,
+                   String description,
+                   String errorText,
+                   String homePage) throws IOException {
+        return probeClass(out,
+                "<b>Error</b>",
+                classname,
+                jarFile,
+                description,
+                errorText,
+                homePage);
+    }
+
+    /**
+     * print warning message if a class is missing
+     * @param out stream to print stuff
+     * @param classname class to look for
+     * @param jarFile where this class comes from
+     * @param errorText extra error text
+     * @param homePage where to d/l the library
+     * @throws IOException when needed
+     * @return the number of missing libraries (0 or 1)
+     */
+    int wantClass(JspWriter out,
+                   String classname,
+                   String jarFile,
+                   String description,
+                   String errorText,
+                   String homePage) throws IOException {
+        return probeClass(out,
+                "<b>Warning</b>",
+                classname,
+                jarFile,
+                description,
+                errorText,
+                homePage);
+    }
+
+    /**
+     * probe for a resource existing,
+     * @param out
+     * @param resource
+     * @param errorText
+     * @throws Exception
+     */
+    int wantResource(JspWriter out,
+                      String resource,
+                      String errorText) throws Exception {
+        if(!resourceExists(resource)) {
+            out.write("<p><b>Warning</b>: could not find resource "+resource
+                        +"<br>"
+                        +errorText);
+            return 0;
+        } else {
+            out.write("found "+resource+"<br>");
+            return 1;
+        }
+    }
+
+
+    /**
+     *  get servlet version string
+     *
+     */
+
+    public String getServletVersion() {
+        ServletContext context=getServletConfig().getServletContext();
+        int major = context.getMajorVersion();
+        int minor = context.getMinorVersion();
+        return Integer.toString(major) + '.' + Integer.toString(minor);
+    }
+
+
+
+    /**
+     * what parser are we using.
+     * @return the classname of the parser
+     */
+    private String getParserName() {
+        SAXParser saxParser = getSAXParser();
+        if (saxParser == null) {
+            return "Could not create an XML Parser";
+        }
+
+        // check to what is in the classname
+        String saxParserName = saxParser.getClass().getName();
+        return saxParserName;
+    }
+
+    /**
+     * Create a JAXP SAXParser
+     * @return parser or null for trouble
+     */
+    private SAXParser getSAXParser() {
+        SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
+        if (saxParserFactory == null) {
+            return null;
+        }
+        SAXParser saxParser = null;
+        try {
+            saxParser = saxParserFactory.newSAXParser();
+        } catch (Exception e) {
+        }
+        return saxParser;
+    }
+
+    /**
+     * get the location of the parser
+     * @return path or null for trouble in tracking it down
+     */
+
+    private String getParserLocation(JspWriter out) {
+        SAXParser saxParser = getSAXParser();
+        if (saxParser == null) {
+            return null;
+        }
+        String location = getLocation(out,saxParser.getClass());
+        return location;
+    }
+    %>
+<html><head><title>Axis Happiness Page</title></head>
+<body>
+<h1>Axis Happiness Page</h1>
+<h2>Examining webapp configuration</h2>
+
+<p>
+<h3>Needed Components</h3>
+<%
+    int needed=0,wanted=0;
+
+    /**
+     * the essentials, without these Axis is not going to work
+     */
+    needed=needClass(out, "javax.xml.soap.SOAPMessage",
+            "saaj.jar",
+            "SAAJ API",
+            "Axis will not work",
+            "http://xml.apache.org/axis/");
+
+    needed+=needClass(out, "javax.xml.rpc.Service",
+            "jaxrpc.jar",
+            "JAX-RPC API",
+            "Axis will not work",
+            "http://xml.apache.org/axis/");
+
+    needed+=needClass(out, "org.apache.axis.transport.http.AxisServlet",
+            "axis.jar",
+            "Apache-Axis",
+            "Axis will not work",
+            "http://xml.apache.org/axis/");
+
+    needed+=needClass(out, "org.apache.commons.discovery.Resource",
+            "commons-discovery.jar",
+            "Jakarta-Commons Discovery",
+            "Axis will not work",
+            "http://jakarta.apache.org/commons/discovery.html");
+
+    needed+=needClass(out, "org.apache.commons.logging.Log",
+            "commons-logging.jar",
+            "Jakarta-Commons Logging",
+            "Axis will not work",
+            "http://jakarta.apache.org/commons/logging.html");
+
+    needed+=needClass(out, "org.apache.log4j.Layout",
+            "log4j-1.2.8.jar",
+            "Log4j",
+            "Axis may not work",
+            "http://jakarta.apache.org/log4j");
+
+    //should we search for a javax.wsdl file here, to hint that it needs
+    //to go into an approved directory? because we dont seem to need to do that.
+    needed+=needClass(out, "com.ibm.wsdl.factory.WSDLFactoryImpl",
+            "wsdl4j.jar",
+            "IBM's WSDL4Java",
+            "Axis will not work",
+            null);
+
+    needed+=needClass(out, "javax.xml.parsers.SAXParserFactory",
+            "xerces.jar",
+            "JAXP implementation",
+            "Axis will not work",
+            "http://xml.apache.org/xerces-j/");
+
+    needed+=needClass(out,"javax.activation.DataHandler",
+            "activation.jar",
+            "Activation API",
+            "Axis will not work",
+            "http://java.sun.com/products/javabeans/glasgow/jaf.html");
+%>
+<h3>Optional Components</h3>
+<%
+    /*
+     * now the stuff we can live without
+     */
+    wanted+=wantClass(out,"javax.mail.internet.MimeMessage",
+            "mail.jar",
+            "Mail API",
+            "Attachments will not work",
+            "http://java.sun.com/products/javamail/");
+
+    wanted+=wantClass(out,"org.apache.xml.security.Init",
+            "xmlsec.jar",
+            "XML Security API",
+            "XML Security is not supported",
+            "http://xml.apache.org/security/");
+
+    wanted += wantClass(out, "javax.net.ssl.SSLSocketFactory",
+            "jsse.jar or java1.4+ runtime",
+            "Java Secure Socket Extension",
+            "https is not supported",
+            "http://java.sun.com/products/jsse/");
+    /*
+     * resources on the classpath path
+     */
+    /* broken; this is a file, not a resource
+    wantResource(out,"/server-config.wsdd",
+            "There is no server configuration file;"
+            +"run AdminClient to create one");
+    */
+    /* add more libraries here */
+
+    out.write("<h3>");
+    //is everythng we need here
+    if(needed==0) {
+       //yes, be happy
+        out.write("<i>The core axis libraries are present. </i>");
+    } else {
+        //no, be very unhappy
+        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+        out.write("<i>"
+                +needed
+                +" core axis librar"
+                +(needed==1?"y is":"ies are")
+                +" missing</i>");
+    }
+    //now look at wanted stuff
+    if(wanted>0) {
+        out.write("<i>"
+                +wanted
+                +" optional axis librar"
+                +(wanted==1?"y is":"ies are")
+                +" missing</i>");
+    } else {
+        out.write("The optional components are present.");
+    }
+    out.write("</h3>");
+    //hint if anything is missing
+    if(needed>0 || wanted>0 ) {
+        out.write(getInstallHints(request));
+    }
+
+    %>
+    <p>
+    <B><I>Note:</I></B> Even if everything this page probes for is present, there is no guarantee your
+    web service will work, because there are many configuration options that we do
+    not check for. These tests are <i>necessary</i> but not <i>sufficient</i>
+    <hr>
+
+    <h2>Examining Application Server</h2>
+    <%
+        String servletVersion=getServletVersion();
+        String xmlParser=getParserName();
+        String xmlParserLocation = getParserLocation(out);
+
+    %>
+    <table>
+        <tr><td>Servlet version</td><td><%= servletVersion %></td></tr>
+        <tr><td>XML Parser</td><td><%= xmlParser %></td></tr>
+        <tr><td>XML ParserLocation</td><td><%= xmlParserLocation %></td></tr>
+    </table>
+<% if(xmlParser.indexOf("crimson")>=0) { %>
+    <p>
+    <b>We recommend <a href="http://xml.apache.org/xerces2-j/">Xerces 2</a>
+        over Crimson as the XML parser for Axis</b>
+    </p>
+<%    } %>
+
+    <h2>Examining System Properties</h2>
+<%
+    /** 
+     * Dump the system properties
+     */
+    java.util.Enumeration e=null;
+    try {
+        e= System.getProperties().propertyNames();
+    } catch (SecurityException se) {
+    }
+    if(e!=null) {
+        out.write("<pre>");
+        for (;e.hasMoreElements();) {
+            String key = (String) e.nextElement();
+            out.write(key + "=" + System.getProperty(key)+"\n");
+        }
+        out.write("</pre><p>");
+    } else {
+        out.write("System properties are not accessible<p>");
+    }
+%>
+    <hr>
+    Platform: <%= getServletConfig().getServletContext().getServerInfo()  %>
+</body>
+</html>
+
+

Added: incubator/hermes/trunk/src/webapp/index.html
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/webapp/index.html?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/webapp/index.html	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,48 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type"
+content="text/html; charset=iso-8859-1">
+<title>Apache-Axis</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+<h1 align="center">Apache-AXIS</h1>
+
+<p>Hello! <em>Welcome</em> to Apache-Axis.</p>
+
+<p>What do you want to do today?</p>
+
+<ul>
+    <li><a href="happyaxis.jsp">Validate</a>
+        the local installation's configuration<br>
+        <i>see below if this does not work.</i></li>
+    <li><a href="servlet/AxisServlet">View</a>
+        the list of deployed Web services</li>
+    <li><a href="EchoHeaders.jws?method=list">
+        Call a local endpoint</a> that list's the caller's
+        http headers (or see its
+        <a href="EchoHeaders.jws?wsdl">WSDL</a>). 
+    <li><a href="http://xml.apache.org/axis">Visit</a>
+        the Apache-Axis Home Page</li>
+    <li><a href="servlet/AdminServlet">Administer Axis</a> <br>
+        [disabled by default for security reasons]</li>
+    <li><a href="SOAPMonitor">SOAPMonitor</a> <br>
+        [disabled by default for security reasons]</li>
+</ul>
+To enable the disabled features, uncomment the appropriate declarations in 
+WEB-INF/web.xml in the webapplication and restart it.
+<h3>Validating Axis</h3>
+
+If the "happyaxis" validation page displays an exception instead of a 
+status page, the likely cause is that you have multiple XML parsers in 
+your classpath. Clean up your classpath by eliminating extraneous parsers. 
+
+<p>
+If you have problems getting Axis to work, consult the Axis 
+<a
+href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages">Wiki</a>
+and then try the Axis user mailing list. 
+</body>
+</html>

Added: incubator/hermes/trunk/src/wsdl/SubscriptionManager.wsdl
Url: http://svn.apache.org/viewcvs/incubator/hermes/trunk/src/wsdl/SubscriptionManager.wsdl?view=auto&rev=126323
==============================================================================
--- (empty file)
+++ incubator/hermes/trunk/src/wsdl/SubscriptionManager.wsdl	Mon Jan 24 14:50:22 2005
@@ -0,0 +1,166 @@
+<?xml version="1.0"?>
+
+<wsdl:definitions name="SubscriptionManagerDefinitions"
+                  targetNamespace="http://ws.apache.org/notification/base/service/SubscriptionManager"
+                  xmlns="http://schemas.xmlsoap.org/wsdl/" 
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+                  xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" 
+                  xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" 
+                  xmlns:wsnt="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd"
+                  xmlns:wsntw="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl" 
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+                  xmlns:tns="http://ws.apache.org/notification/base/service/SubscriptionManager">
+   
+   <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" 
+           location="../spec/wsrf/WS-ResourceProperties-1_2.wsdl"/>
+   
+   <import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" 
+           location="../spec/wsrf/WS-ResourceLifetime-1_2.wsdl"/>
+   
+   <import namespace="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl" 
+           location="../spec/wsn/WS-BaseNotification-1_2.wsdl"/>
+   
+   <wsdl:portType name="SubscriptionManagerPortType" wsrp:ResourceProperties="wsnt:SubscriptionManagerRP">
+      
+      <!-- === operations from wsrpw:ResourceProperties portType === -->
+      <wsdl:operation name="GetResourceProperty">
+         <wsdl:input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest"/>
+         <wsdl:output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse"/>
+         <wsdl:fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
+         <wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
+      </wsdl:operation>
+      
+      <!-- === operations from wsrlw:ImmediateResourceTermination portType === -->
+      <wsdl:operation name="Destroy">
+         <wsdl:input message="wsrlw:DestroyRequest"/>
+         <wsdl:output message="wsrlw:DestroyResponse"/>
+         <wsdl:fault name="ResourceUnknownFault" message="wsrlw:ResourceUnknownFault"/>
+         <wsdl:fault name="ResourceNotDestroyedFault" message="wsrlw:ResourceNotDestroyedFault"/>
+      </wsdl:operation>
+      
+      <!-- === operations from wsrlw:ScheduledResourceTermination portType === -->
+      <wsdl:operation name="SetTerminationTime">
+         <wsdl:input message="wsrlw:SetTerminationTimeRequest"/>
+         <wsdl:output message="wsrlw:SetTerminationTimeResponse"/>
+         <wsdl:fault name="ResourceUnknownFault" message="wsrlw:ResourceUnknownFault"/>
+         <wsdl:fault name="UnableToSetTerminationTimeFault" message="wsrlw:UnableToSetTerminationTimeFault"/>
+         <wsdl:fault name="TerminationTimeChangeRejectedFault" message="wsrlw:TerminationTimeChangeRejectedFault"/>
+      </wsdl:operation>
+      
+      <!-- === operations from wsntw:SubscriptionManager portType === -->
+      <wsdl:operation name="PauseSubcription">
+         <wsdl:input message="wsntw:PauseSubscriptionRequest"/>
+         <wsdl:output message="wsntw:PauseSubscriptionResponse"/>
+         <wsdl:fault name="ResourceUnknownFault" message="wsntw:ResourceUnknownFault"/>
+         <wsdl:fault name="PauseFailedFault" message="wsntw:PauseFailedFault"/>
+      </wsdl:operation>
+      
+      <wsdl:operation name="ResumeSubscription">
+         <wsdl:input message="wsntw:ResumeSubscriptionRequest"/>
+         <wsdl:output message="wsntw:ResumeSubscriptionResponse"/>
+         <wsdl:fault name="ResourceUnknownFault" message="wsntw:ResourceUnknownFault"/>
+         <wsdl:fault name="ResumeFailedFault" message="wsntw:ResumeFailedFault"/>
+      </wsdl:operation>
+      
+   </wsdl:portType>
+   
+   <wsdl:binding name="SubscriptionManagerHttpBinding" type="tns:SubscriptionManagerPortType">
+      
+      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+      
+      <wsdl:operation name="GetResourceProperty">
+         <soap:operation style="document"/>
+         <wsdl:input>
+            <soap:body use="literal"/>
+         </wsdl:input>
+         <wsdl:output>
+            <soap:body use="literal"/>
+         </wsdl:output>
+         <wsdl:fault name="ResourceUnknownFault">
+            <soap:fault name="ResourceUnknownFault" use="literal"/>
+         </wsdl:fault>
+         <wsdl:fault name="InvalidResourcePropertyQNameFault">
+            <soap:fault name="InvalidResourcePropertyQNameFault" use="literal"/>
+         </wsdl:fault>
+      </wsdl:operation>
+      
+      <wsdl:operation name="Destroy">
+         <soap:operation style="document"/>
+         <wsdl:input>
+            <soap:body use="literal"/>
+         </wsdl:input>
+         <wsdl:output>
+            <soap:body use="literal"/>
+         </wsdl:output>
+         <wsdl:fault name="ResourceUnknownFault">
+            <soap:fault name="ResourceUnknownFault" use="literal"/>
+         </wsdl:fault>
+         <wsdl:fault name="ResourceNotDestroyedFault">
+            <soap:fault name="ResourceNotDestroyedFault" use="literal"/>
+         </wsdl:fault>
+      </wsdl:operation>
+      
+      <wsdl:operation name="SetTerminationTime">
+         <soap:operation style="document"/>
+         <wsdl:input>
+            <soap:body use="literal"/>
+         </wsdl:input>
+         <wsdl:output>
+            <soap:body use="literal"/>
+         </wsdl:output>
+         <wsdl:fault name="ResourceUnknownFault">
+            <soap:fault name="ResourceUnknownFault" use="literal"/>
+         </wsdl:fault>
+         <wsdl:fault name="UnableToSetTerminationTimeFault">
+            <soap:fault name="UnableToSetTerminationTimeFault" use="literal"/>
+         </wsdl:fault>
+         <wsdl:fault name="TerminationTimeChangeRejectedFault">
+            <soap:fault name="TerminationTimeChangeRejectedFault" use="literal"/>
+         </wsdl:fault>
+      </wsdl:operation>
+      
+      <wsdl:operation name="PauseSubcription">
+         <soap:operation style="document"/>
+         <wsdl:input>
+            <soap:body use="literal"/>
+         </wsdl:input>
+         <wsdl:output>
+            <soap:body use="literal"/>
+         </wsdl:output>
+         <wsdl:fault name="ResourceUnknownFault">
+            <soap:fault name="ResourceUnknownFault" use="literal"/>
+         </wsdl:fault>
+         <wsdl:fault name="PauseFailedFault">
+            <soap:fault name="PauseFailedFault" use="literal"/>
+         </wsdl:fault>
+      </wsdl:operation>
+      
+      <wsdl:operation name="ResumeSubscription">
+         <soap:operation style="document"/>
+         <wsdl:input>
+            <soap:body use="literal"/>
+         </wsdl:input>
+         <wsdl:output>
+            <soap:body use="literal"/>
+         </wsdl:output>
+         <wsdl:fault name="ResourceUnknownFault">
+            <soap:fault name="ResourceUnknownFault" use="literal"/>
+         </wsdl:fault>
+         <wsdl:fault name="ResumeFailedFault">
+            <soap:fault name="ResumeFailedFault" use="literal"/>
+         </wsdl:fault>
+      </wsdl:operation>
+      
+   </wsdl:binding>
+   
+   <wsdl:service name="SubscriptionManagerService">
+      
+      <wsdl:port name="subscriptionManager" binding="tns:SubscriptionManagerHttpBinding">
+         <soap:address location="http://localhost:8080/wsrf/services/subscriptionManager"/>
+      </wsdl:port>      
+      
+   </wsdl:service>
+   
+</wsdl:definitions>

---------------------------------------------------------------------
To unsubscribe, e-mail: hermes-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: hermes-dev-help@ws.apache.org