[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pubscribe-commits
Subject:    svn commit: r292768 [2/2] - in /webservices/pubscribe/trunk/src:
From:       ips () apache ! org
Date:       2005-09-30 15:16:28
Message-ID: 20050930151637.9246.qmail () minotaur ! apache ! org
[Download RAW message or body]

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/TopicExpressionEngine.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/expression/TopicExpressionEngine.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/TopicExpressionEngine.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/TopicExpressionEngine.java \
Fri Sep 30 08:16:05 2005 @@ -16,9 +16,6 @@
 package org.apache.ws.notification.topics.expression;
 
 import org.apache.ws.notification.topics.Topic;
-import org.apache.ws.notification.topics.TopicNamespaceRegistry;
-
-import java.net.URI;
 
 /**
  * The <code>TopicExpressionEngine</code> interface is used to map queries on a
@@ -45,13 +42,12 @@
     *
     * @return the list of supported dialects
     */
-   URI[] getSupportedDialects(  );
+   String[] getSupportedDialects(  );
 
    /**
     * Resolves a topic expression using the passed topic list. The appropraite
     * TopicExpressionEvaluator is used based on the dialect element.
     *
-    * @param topicNsRegistry       the topic list to apply the expression to
     * @param topicExpr topic expression
     * @return the set of topics the expression evaluated to
     * @throws org.apache.ws.notification.topics.expression.TopicPathDialectUnknownException
 @@ -64,8 +60,7 @@
     *                                  if the topic expression is invalid
     * @throws TopicExpressionException if any other error occurs
     */
-   Topic[] evaluateTopicExpression( TopicNamespaceRegistry   topicNsRegistry,
-                                    TopicExpression topicExpr )
+   Topic[] evaluateTopicExpression( TopicExpression topicExpr )
    throws TopicPathDialectUnknownException, 
           TopicExpressionResolutionException, 
           InvalidTopicExpressionException, 

Copied: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/AbstractTopicExpression.java \
(from r292052, webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/TopicExpressionImpl.java)
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/expression/impl/AbstractTopicExpression.java?p2=webservices/pubscr \
ibe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/AbstractTopicExpr \
ession.java&p1=webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/ \
expression/impl/TopicExpressionImpl.java&r1=292052&r2=292768&rev=292768&view=diff \
                ==============================================================================
                
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/TopicExpressionImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/AbstractTopicExpression.java \
Fri Sep 30 08:16:05 2005 @@ -15,22 +15,21 @@
  *=============================================================================*/
 package org.apache.ws.notification.topics.expression.impl;
 
-import org.apache.commons.lang.StringUtils;
 import org.apache.ws.notification.topics.expression.TopicExpression;
-import org.apache.ws.util.NameUtils;
-
-import javax.xml.namespace.QName;
 
 /**
- * TODO
+ * An abstract implementation of <code>TopicExpression</code> that
+ * can be extended by dialect-specific implementations.
+ *
+ * @author Ian Springer
  */
-public class TopicExpressionImpl implements TopicExpression
+public abstract class AbstractTopicExpression implements TopicExpression
 {
 
     private String m_dialect;
     private Object m_content;
 
-    public TopicExpressionImpl( String dialect, Object content )
+    public AbstractTopicExpression( String dialect, Object content )
     {
         m_dialect = dialect;
         m_content = content;
@@ -46,30 +45,9 @@
         return m_dialect;
     }
 
-    protected static String toString( QName topicPath )
-    {
-        StringBuffer strBuf = new StringBuffer( );
-        if ( StringUtils.isNotEmpty( topicPath.getNamespaceURI() ) )
-        {
-            strBuf.append( getPrefix( topicPath ) );
-            strBuf.append( ':' );
-        }
-        strBuf.append( topicPath.getLocalPart() );
-        return strBuf.toString();
-    }
-
-    protected static String getPrefix( QName qName )
+    public String toString()
     {
-        String prefix;
-        if ( StringUtils.isNotEmpty( qName.getPrefix() ) )
-        {
-            prefix = qName.getPrefix();
-        }
-        else
-        {
-            prefix = NameUtils.getNamespacePrefix( qName.getNamespaceURI() );
-        }
-        return prefix;
+        return m_content.toString();
     }
 
 }

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/TopicExpressionEngineImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/expression/impl/TopicExpressionEngineImpl.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/TopicExpressionEngineImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/expression/impl/TopicExpressionEngineImpl.java \
Fri Sep 30 08:16:05 2005 @@ -18,7 +18,6 @@
 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.TopicNamespaceRegistry;
 import org.apache.ws.notification.topics.expression.InvalidTopicExpressionException;
 import org.apache.ws.notification.topics.expression.TopicExpression;
 import org.apache.ws.notification.topics.expression.TopicExpressionEngine;
@@ -34,7 +33,6 @@
 import javax.naming.NameClassPair;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
-import java.net.URI;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -106,15 +104,14 @@
      *
      * @return DOCUMENT_ME
      */
-    public synchronized URI[] getSupportedDialects()
+    public synchronized String[] getSupportedDialects()
     {
-        return (URI[]) m_evaluators.keySet().toArray( new URI[m_evaluators.size()] \
); +        return (String[]) m_evaluators.keySet().toArray( new \
String[m_evaluators.size()] );  }
 
     /**
      * DOCUMENT_ME
      *
-     * @param topicNsRegistry DOCUMENT_ME
      * @param topicExpr       DOCUMENT_ME
      *
      * @return DOCUMENT_ME
@@ -129,9 +126,8 @@
      * @throws TopicPathDialectUnknownException
      *                                  DOCUMENT_ME
      */
-    public synchronized Topic[] evaluateTopicExpression( TopicNamespaceRegistry \
                topicNsRegistry,
-                                                         TopicExpression topicExpr )
-            throws org.apache.ws.notification.topics.expression.TopicPathDialectUnknownException,
 +    public synchronized Topic[] evaluateTopicExpression( TopicExpression topicExpr \
) +            throws TopicPathDialectUnknownException,
             TopicExpressionResolutionException,
             InvalidTopicExpressionException,
             TopicExpressionException

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/ResourcePropertyValueChangeListenerImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/impl/ResourcePropertyValueChangeListenerImpl.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/ResourcePropertyValueChangeListenerImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/ResourcePropertyValueChangeListenerImpl.java \
Fri Sep 30 08:16:05 2005 @@ -18,7 +18,7 @@
 import org.apache.ws.XmlObjectWrapper;
 import org.apache.ws.notification.base.NotificationProducerResource;
 import org.apache.ws.notification.base.impl.MessageTypeNotSupportedException;
-import org.apache.ws.notification.topics.TopicsTypeFactory;
+import org.apache.ws.notification.topics.expression.SimpleTopicExpression;
 import org.apache.ws.notification.topics.expression.TopicExpression;
 import org.apache.ws.notification.topics.expression.TopicExpressionException;
 import org.apache.ws.resource.properties.ResourceProperty;
@@ -45,7 +45,7 @@
                                                     ResourceProperty prop )
     {
         m_producerResource = producerResource;
-        m_topicExpr = TopicsTypeFactory.newInstance().createSimpleTopicExpression( \
prop.getMetaData().getName() ); +        m_topicExpr = new SimpleTopicExpression( \
prop.getMetaData().getName() );  }
 
     /**

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/ResourceTerminationListenerImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/impl/ResourceTerminationListenerImpl.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/ResourceTerminationListenerImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/ResourceTerminationListenerImpl.java \
Fri Sep 30 08:16:05 2005 @@ -17,7 +17,6 @@
 
 import org.apache.ws.notification.base.NotificationProducerResource;
 import org.apache.ws.notification.base.impl.MessageTypeNotSupportedException;
-import org.apache.ws.notification.topics.TopicsTypeFactory;
 import org.apache.ws.notification.topics.expression.SimpleTopicExpression;
 import org.apache.ws.notification.topics.expression.TopicExpressionException;
 import org.apache.ws.resource.lifetime.ResourceTerminationEvent;
@@ -55,7 +54,7 @@
         m_producerResource = producerResource;
         m_namespaceSet = namespaceSet;
         m_topicExpr =
-                TopicsTypeFactory.newInstance().createSimpleTopicExpression(
+                new SimpleTopicExpression(
                         new QName( m_namespaceSet.getLifetimeXsdNamespace(),
                                    ResourceTerminationListenerImpl.TOPIC_NAME,
                                    NSPREFIX_WSRL ) );

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSetImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/impl/TopicSetImpl.java?rev=292768&r1=292767&r2=292768&view=diff \
                ==============================================================================
                
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSetImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/impl/TopicSetImpl.java \
Fri Sep 30 08:16:05 2005 @@ -16,7 +16,6 @@
 package org.apache.ws.notification.topics.impl;
 
 import org.apache.ws.notification.topics.Topic;
-import org.apache.ws.notification.topics.TopicNamespaceRegistry;
 import org.apache.ws.notification.topics.TopicSet;
 import org.apache.ws.notification.topics.expression.TopicExpression;
 import org.apache.ws.notification.topics.expression.TopicExpressionEngine;
@@ -92,8 +91,7 @@
 
     public void addTopicExpression( TopicExpression topicExpr ) throws \
TopicExpressionException  {
-        Topic[] topics = TOPIC_EXPRESSION_ENGINE.evaluateTopicExpression( \
                TopicNamespaceRegistry.getInstance(),
-                topicExpr );
+        Topic[] topics = TOPIC_EXPRESSION_ENGINE.evaluateTopicExpression( topicExpr \
);  m_topicExprs.add( topicExpr );
         for ( int i = 0; i < topics.length; i++ )
         {
@@ -108,8 +106,7 @@
 
     public Topic[] evaluateTopicExpression( TopicExpression topicExpr ) throws \
TopicExpressionException  {
-        Topic[] topics = TOPIC_EXPRESSION_ENGINE.evaluateTopicExpression( \
                TopicNamespaceRegistry.getInstance(),
-                topicExpr );
+        Topic[] topics = TOPIC_EXPRESSION_ENGINE.evaluateTopicExpression( topicExpr \
);  return getSupportedTopics( topics );
     }
 

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeFactoryImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/v2004_06/TopicsTypeFactoryImpl.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeFactoryImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeFactoryImpl.java \
Fri Sep 30 08:16:05 2005 @@ -17,37 +17,13 @@
 
 import org.apache.ws.notification.topics.TopicNamespace;
 import org.apache.ws.notification.topics.TopicsTypeFactory;
-import org.apache.ws.notification.topics.expression.ConcreteTopicExpression;
-import org.apache.ws.notification.topics.expression.FullTopicExpression;
-import org.apache.ws.notification.topics.expression.SimpleTopicExpression;
-import org.apache.ws.notification.topics.expression.impl.ConcreteTopicExpressionImpl;
                
-import org.apache.ws.notification.topics.expression.impl.FullTopicExpressionImpl;
-import org.apache.ws.notification.topics.expression.impl.SimpleTopicExpressionImpl;
 import org.apache.ws.notification.topics.impl.TopicNamespaceImpl;
-import org.apache.ws.util.xml.NamespaceContext;
-
-import javax.xml.namespace.QName;
 
 /**
  * TODO
  */
 public class TopicsTypeFactoryImpl extends TopicsTypeFactory
 {
-
-    public SimpleTopicExpression createSimpleTopicExpression( QName topicPath )
-    {
-        return new SimpleTopicExpressionImpl( topicPath );
-    }
-
-    public ConcreteTopicExpression createConcreteTopicExpression( QName topicPath )
-    {
-        return new ConcreteTopicExpressionImpl( topicPath );
-    }
-
-    public FullTopicExpression createFullTopicExpression( QName[] topicPaths )
-    {
-        return new FullTopicExpressionImpl( topicPaths );
-    }
 
     public TopicNamespace createTopicNamespace( String targetNamespace )
     {

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeReaderImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/v2004_06/TopicsTypeReaderImpl.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeReaderImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeReaderImpl.java \
Fri Sep 30 08:16:05 2005 @@ -21,7 +21,13 @@
 import org.apache.ws.notification.topics.TopicsTypeFactory;
 import org.apache.ws.notification.topics.TopicsTypeReader;
 import org.apache.ws.notification.topics.expression.TopicExpression;
+import org.apache.ws.notification.topics.expression.SimpleTopicExpression;
+import org.apache.ws.notification.topics.expression.ConcreteTopicExpression;
+import org.apache.ws.notification.topics.expression.FullTopicExpression;
+import org.apache.ws.notification.topics.expression.InvalidTopicExpressionException;
 import org.apache.ws.util.XmlBeanUtils;
+import org.apache.ws.util.xml.NamespaceContext;
+import org.apache.ws.util.xml.impl.XmlBeansNamespaceContext;
 import org.apache.xmlbeans.XmlObject;
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionDocument;
  import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
 @@ -30,6 +36,7 @@
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSTopics12Draft01.TopicType;
 
 import javax.xml.namespace.QName;
+import java.util.StringTokenizer;
 
 /**
  * A topics type reader for the 2004/06 version of the WS-Topics specification.
@@ -37,7 +44,7 @@
 public class TopicsTypeReaderImpl extends TopicsTypeReader
 {
 
-    public TopicExpression toTopicExpression( XmlObject xBean )
+    public TopicExpression toTopicExpression( XmlObject xBean ) throws \
InvalidTopicExpressionException  {
         TopicExpressionType topicExprType = toTopicExpressionType( xBean );
         if ( !topicExprType.isSetDialect() )
@@ -48,22 +55,23 @@
         TopicExpression topicExpr;
         if ( dialect.equals( TopicsConstants.TOPIC_EXPR_DIALECT_SIMPLE ) )
         {
-            topicExpr =
-                    TopicsTypeFactory.newInstance().createSimpleTopicExpression(
-                            XmlBeanUtils.getValueAsQName( topicExprType ) );
+            topicExpr = new SimpleTopicExpression( XmlBeanUtils.getValueAsQName( \
topicExprType ) );  }
         else if ( dialect.equals( TopicsConstants.TOPIC_EXPR_DIALECT_CONCRETE ) )
         {
-            topicExpr =
-                    TopicsTypeFactory.newInstance().createConcreteTopicExpression(
-                            XmlBeanUtils.getValueAsQName( topicExprType ) );
+            topicExpr = new ConcreteTopicExpression( XmlBeanUtils.getValueAsQName( \
topicExprType ) );  }
         else if ( dialect.equals( TopicsConstants.TOPIC_EXPR_DIALECT_FULL ) )
         {
-            topicExpr =
-                    TopicsTypeFactory.newInstance().createFullTopicExpression(
-                            new QName[0]                             );
-            // TODO: finish this...
+            String expr = XmlBeanUtils.getValue( topicExprType );
+            StringTokenizer tokenizer = new StringTokenizer( expr, "|" );
+            QName[] topicPaths = new QName[tokenizer.countTokens()];
+            int i = 0;
+            while ( tokenizer.hasMoreTokens() )
+            {
+                topicPaths[i++] = toQName( tokenizer.nextToken(), new \
XmlBeansNamespaceContext( topicExprType ) ); +            }
+            topicExpr = new FullTopicExpression( topicPaths );
         }
         else
         {
@@ -135,5 +143,41 @@
             importTopics( topicType.getTopicArray(), topic );  // recurse
         }
     }
+
+    private QName toQName( String           topicPath,
+                             NamespaceContext nsContext )
+    throws InvalidTopicExpressionException
+    {
+       String prefix;
+       String localPart;
+       int    i = topicPath.indexOf( ':' );
+       if ( i == -1 ) // no prefix
+       {
+          prefix       = "";
+          localPart    = topicPath;
+       }
+       else if ( i == 0 )
+       {
+          throw new InvalidTopicExpressionException( "Topic path '" + topicPath + "' \
starts with a colon." ); +       }
+       else if ( i == ( topicPath.length(  ) - 1 ) )
+       {
+          throw new InvalidTopicExpressionException( "Topic path '" + topicPath + "' \
ends with a colon." ); +       }
+       else
+       {
+          prefix       = topicPath.substring( 0, i );
+          localPart    = topicPath.substring( i + 1 );
+          if ( localPart.indexOf( ':' ) != -1 )
+          {
+             throw new InvalidTopicExpressionException( "Local part of topic path '" \
+ topicPath +                                                        + "' contains a \
colon." ); +          }
+       }
+
+       String nsURI = nsContext.getNamespaceURI( prefix );
+       return new QName( nsURI, localPart, prefix );
+    }
+
 
 }

Modified: webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeWriterImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/java/org/apache/ws/ \
notification/topics/v2004_06/TopicsTypeWriterImpl.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeWriterImpl.java \
                (original)
+++ webservices/pubscribe/trunk/src/java/org/apache/ws/notification/topics/v2004_06/TopicsTypeWriterImpl.java \
Fri Sep 30 08:16:05 2005 @@ -15,12 +15,14 @@
  *=============================================================================*/
 package org.apache.ws.notification.topics.v2004_06;
 
+import org.apache.ws.notification.base.v2004_06.porttype.NotificationProducerPortType;
  import org.apache.ws.notification.topics.TopicNamespace;
 import org.apache.ws.notification.topics.TopicsTypeWriter;
 import org.apache.ws.notification.topics.expression.TopicExpression;
 import org.apache.xmlbeans.XmlObject;
-import org.apache.xmlbeans.XmlOptions;
+import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicDocument;
  import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionDocument;
 +import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
  import org.oasisOpen.docs.wsn.x2004.x06.wsnWSTopics12Draft01.TopicSpaceDocument;
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSTopics12Draft01.TopicSpaceType;
 
@@ -34,9 +36,17 @@
 
     public XmlObject toXmlObject( TopicExpression topicExpr, QName elemName )
     {
-        TopicExpressionDocument topicExpressionDoc = \
                TopicExpressionDocument.Factory.newInstance(
-                new XmlOptions().setLoadReplaceDocumentElement( elemName ) );
-        org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType \
topicExprType = topicExpressionDoc.addNewTopicExpression(); +        \
TopicExpressionType topicExprType; +        if ( elemName.equals( \
NotificationProducerPortType.PROP_QNAME_TOPIC ) ) +        {
+            TopicDocument topicDoc = TopicDocument.Factory.newInstance();
+            topicExprType = topicDoc.addNewTopic();
+        }
+        else
+        {
+            TopicExpressionDocument topicExprDoc = \
TopicExpressionDocument.Factory.newInstance(); +            topicExprType = \
topicExprDoc.addNewTopicExpression(); +        }
         topicExprType.setDialect( topicExpr.getDialect().toString() );
         copyContent( topicExpr, topicExprType );
         return topicExprType;

Copied: webservices/pubscribe/trunk/src/test/org/apache/ws/notification/RuntimeTester.java \
(from r292052, webservices/pubscribe/trunk/src/test/org/apache/ws/notification/RuntimeTestCase.java)
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/RuntimeTester.java?p2=webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/RuntimeTester.java&p1=webservices/pubscribe/trunk/src/test/org/apache/ws/notification/RuntimeTestCase.java&r1=292052&r2=292768&rev=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/test/org/apache/ws/notification/RuntimeTestCase.java \
                (original)
+++ webservices/pubscribe/trunk/src/test/org/apache/ws/notification/RuntimeTester.java \
Fri Sep 30 08:16:05 2005 @@ -17,25 +17,15 @@
 
 import junit.framework.TestCase;
 import org.apache.naming.java.javaURLContextFactory;
-import org.apache.ws.notification.base.v2004_06.impl.SubscriptionHome;
-import org.apache.ws.notification.base.v2004_06.porttype.NotificationProducerPortType;
                
-import org.apache.ws.notification.topics.expression.impl.SimpleTopicExpressionImpl;
 import org.apache.ws.resource.WsrfRuntime;
-import org.apache.ws.resource.example.filesystem.FilesystemHome;
-import org.apache.ws.resource.example.filesystem.FilesystemResource;
-import org.apache.ws.resource.properties.ResourceProperty;
-import org.apache.ws.util.XmlBeanUtils;
-import org.apache.xmlbeans.XmlObject;
 
 import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.xml.namespace.QName;
 import java.util.Properties;
 
 /**
  * @author Ian Springer
  */
-public class RuntimeTestCase extends TestCase
+public class RuntimeTester extends TestCase
 {
 
     static
@@ -56,26 +46,34 @@
         initProps.setProperty( WsrfRuntime.JNDI_CONFIG_DIALECT, \
                WsrfRuntime.CONFIG_DIALECT_SPRING_BEANS );
         initProps.setProperty( WsrfRuntime.JNDI_CONFIG_LOCATION, \
"spring-jndi-config.xml" );  runtime.init( initProps );
-        InitialContext initialContext = new InitialContext();
-        Object obj = initialContext.lookup( "wsrf/services/home/SubscriptionManager" \
); +        /*InitialContext initialContext = new InitialContext();
+        Object obj = initialContext.lookup( runtime.getHomeJndiName( \
"SubscriptionManager" ) );  assertNotNull( obj );
         assertTrue( obj instanceof SubscriptionHome );
-        //SubscriptionHome subHome = (SubscriptionHome) obj;
-        obj = initialContext.lookup( "wsrf/services/home/filesystem" );
+        SubscriptionHome subHome = (SubscriptionHome) obj;
+        obj = initialContext.lookup( runtime.getHomeJndiName( "filesystem" ) );
         assertNotNull( obj );
         assertTrue( obj instanceof FilesystemHome );
         FilesystemHome fsHome = (FilesystemHome) obj;
         assertTrue( fsHome.isInitialized() );
         FilesystemResource fsResource = (FilesystemResource) fsHome.find( \
FilesystemHome.LVOL1_ID ); +        assertEquals( 3, \
                fsResource.getTopicSet().getTopicExpressions().length );
         ResourceProperty prop = fsResource.getResourcePropertySet().get( \
NotificationProducerPortType.PROP_QNAME_TOPIC );  assertEquals( 3, prop.size() );
-        SimpleTopicExpressionImpl topic1 = new SimpleTopicExpressionImpl( \
QName.valueOf( "{http://example.org/topicSpace/example1}t1" ) ); +        \
SimpleTopicExpression topic1 = new SimpleTopicExpression( QName.valueOf( \
"{http://example.org/topicSpace/example1}t1" ) ); +        EndpointReference \
consumerEPR = new XmlBeansEndpointReference( "http://foo/foo", \
AddressingConstants.NSURI_ADDRESSING_SCHEMA ); +        EndpointReference \
subscriptionEPR = fsResource.subscribe( consumerEPR, topic1, null, null, null, null, \
null ); +        assertNotNull( subscriptionEPR );
+        Object subId = subHome.extractResourceIdentifier( subscriptionEPR );
+        Resource resource = subHome.find( subId );
+        assertNotNull( resource );
+        assertTrue( resource instanceof Subscription );
         fsResource.publish( topic1, XmlObject.Factory.parse( "<Notif>yo!</Notif>" ) \
);  Object currentMsg = fsResource.getCurrentMessage( topic1 );
         assertNotNull( currentMsg );
         assertTrue( currentMsg instanceof XmlObject );
         XmlObject msgXBean = (XmlObject) currentMsg;
-        assertEquals( new QName( "Notif" ), XmlBeanUtils.getName( msgXBean ) );
+        assertEquals( new QName( "Notif" ), XmlBeanUtils.getName( msgXBean ) );*/
     }
 
 }

Modified: webservices/pubscribe/trunk/src/test/org/apache/ws/notification/base/impl/UnitExampleHome.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/base/impl/UnitExampleHome.java?rev=292768&r1=292767&r2=292768&view=diff \
                ==============================================================================
                
--- webservices/pubscribe/trunk/src/test/org/apache/ws/notification/base/impl/UnitExampleHome.java \
                (original)
+++ webservices/pubscribe/trunk/src/test/org/apache/ws/notification/base/impl/UnitExampleHome.java \
Fri Sep 30 08:16:05 2005 @@ -74,7 +74,7 @@
    public UnitExampleHome(  )
    {
       setResourceIdentifierReferenceParameterName( RESOURCE_KEY_NAME.toString(  ) );
-      setResourceClassName( UnitResource.class.getName(  ) );
+      setResourceClass( UnitResource.class );
       try
       {
          init(  );

Modified: webservices/pubscribe/trunk/src/test/org/apache/ws/notification/base/impl/UnitResource.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/base/impl/UnitResource.java?rev=292768&r1=292767&r2=292768&view=diff \
                ==============================================================================
                
--- webservices/pubscribe/trunk/src/test/org/apache/ws/notification/base/impl/UnitResource.java \
                (original)
+++ webservices/pubscribe/trunk/src/test/org/apache/ws/notification/base/impl/UnitResource.java \
Fri Sep 30 08:16:05 2005 @@ -17,15 +17,19 @@
 
 import org.apache.ws.addressing.EndpointReference;
 import org.apache.ws.notification.base.NotificationProducerResource;
-import org.apache.ws.notification.topics.Topic;
 import org.apache.ws.notification.topics.expression.TopicExpression;
+import org.apache.ws.notification.topics.expression.InvalidTopicExpressionException;
+import org.apache.ws.notification.topics.expression.TopicPathDialectUnknownException;
  import org.apache.ws.resource.PropertiesResource;
 import org.apache.ws.resource.ResourceHome;
 import org.apache.ws.resource.lifetime.ResourceTerminationListener;
 import org.apache.ws.resource.properties.ResourcePropertySet;
+import org.apache.ws.resource.properties.query.QueryExpression;
 import org.apache.ws.resource.properties.impl.XmlBeansResourcePropertySet;
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.NotificationProducerRPDocument;
  
+import java.util.Calendar;
+
 /**
  * @author Sal Campana
  */
@@ -168,7 +172,7 @@
         // TODO
     }
 
-    public Object getCurrentMessage( Topic topic )
+    public Object getCurrentMessage( TopicExpression topicExpr )
     {
         return null;  //To change body of implemented methods use File | Settings | \
File Templates.  }
@@ -177,4 +181,13 @@
     {
         return null;  //To change body of implemented methods use File | Settings | \
File Templates.  }
+
+    public EndpointReference subscribe( EndpointReference consumerEPR, \
TopicExpression topicExpr, Boolean useNotify, +                                       \
QueryExpression precondition, QueryExpression selector, +                             \
Object subscriptionPolicy, Calendar initialTerminationtime ) +            throws \
SubscribeCreationFailedException, InvalidTopicExpressionException, \
TopicPathDialectUnknownException +    {
+        return null;  //To change body of implemented methods use File | Settings | \
File Templates. +    }
+    
 }

Added: webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/AbstractTopicExpressionEvaluatorTestCase.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/topics/impl/AbstractTopicExpressionEvaluatorTestCase.java?rev=292768&view=auto
 ==============================================================================
--- webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/AbstractTopicExpressionEvaluatorTestCase.java \
                (added)
+++ webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/AbstractTopicExpressionEvaluatorTestCase.java \
Fri Sep 30 08:16:05 2005 @@ -0,0 +1,99 @@
+/*=============================================================================*
+ *  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 junit.framework.TestCase;
+import org.apache.ws.notification.topics.Topic;
+import org.apache.ws.notification.topics.TopicNamespace;
+import org.apache.ws.notification.topics.TopicNamespaceRegistry;
+import org.apache.ws.notification.topics.TopicsTypeReader;
+import org.apache.ws.notification.topics.expression.InvalidTopicExpressionException;
+import org.apache.ws.notification.topics.expression.TopicExpressionEvaluator;
+import org.apache.ws.notification.topics.v2004_06.TopicsConstants;
+import org.apache.xmlbeans.XmlObject;
+
+import java.net.URI;
+
+/**
+ * Abstract test case for various {@link TopicExpressionEvaluator} impls.
+ */
+public abstract class AbstractTopicExpressionEvaluatorTestCase
+   extends TestCase
+{
+   protected static final URI      NSURI1    = URI.create( "http://ns1.com/" );
+   protected static final String      NSPREFIX1 = "ns1";
+   protected static final URI      NSURI2    = URI.create( "http://ns2.com/" );
+   protected static final String      NSPREFIX2 = "ns2";
+   protected TopicExpressionEvaluator m_evaluator;
+
+   /**
+    * DOCUMENT_ME
+    *
+    * @throws Exception DOCUMENT_ME
+    */
+   protected void setUp(  )
+   throws Exception
+   {
+       TopicNamespaceRegistry topicNsRegistry = \
TopicNamespaceRegistry.getInstance(); +
+       XmlObject topicNsXBean = XmlObject.Factory.parse( \
this.getClass().getClassLoader().getResourceAsStream( \
"org/apache/ws/notification/test-topicSpace.xml" ) ); +       TopicNamespace topicNs \
= TopicsTypeReader.newInstance( TopicsConstants.NSURI_WSTOP_SCHEMA \
).toTopicNamespace( topicNsXBean ); +       topicNsRegistry.addTopicNamespace( \
topicNs ); +       
+       topicNsXBean = XmlObject.Factory.parse( \
this.getClass().getClassLoader().getResourceAsStream( \
"org/apache/ws/notification/test2-topicSpace.xml" ) ); +       topicNs = \
TopicsTypeReader.newInstance( TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicNamespace( \
topicNsXBean ); +       topicNsRegistry.addTopicNamespace( topicNs );
+
+       topicNsXBean = XmlObject.Factory.parse( \
this.getClass().getClassLoader().getResourceAsStream( \
"org/apache/ws/notification/adHoc-topicSpace.xml" ) ); +       topicNs = \
TopicsTypeReader.newInstance( TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicNamespace( \
topicNsXBean ); +       topicNsRegistry.addTopicNamespace( topicNs );
+
+       m_evaluator = createTopicExpressionEvaluator();
+   }
+
+    protected abstract TopicExpressionEvaluator createTopicExpressionEvaluator();
+
+    protected void assertContainsTopic( Topic[] topics,
+                                     String  name )
+   {
+      boolean foundIt = false;
+      for ( int i = 0; i < topics.length; i++ )
+      {
+         if ( topics[i].getName(  ).equals( name ) )
+         {
+            foundIt = true;
+         }
+      }
+      assertTrue( foundIt );
+   }
+
+   protected void assertExpressionIsInvalid( String expr )
+   throws Exception
+   {
+      try
+      {
+         evaluate( expr );
+         fail(  );
+      }
+      catch ( InvalidTopicExpressionException itee )
+      {
+         // success!
+      }
+   }
+
+   protected abstract Topic[] evaluate( String expr ) throws Exception;
+
+}
\ No newline at end of file

Modified: webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/ConcreteTopicExpressionEvaluatorTestCase.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/topics/impl/ConcreteTopicExpressionEvaluatorTestCase.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/ConcreteTopicExpressionEvaluatorTestCase.java \
                (original)
+++ webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/ConcreteTopicExpressionEvaluatorTestCase.java \
Fri Sep 30 08:16:05 2005 @@ -15,137 +15,86 @@
  *=============================================================================*/
 package org.apache.ws.notification.topics.impl;
 
-import junit.framework.TestCase;
 import org.apache.ws.notification.topics.Topic;
-import org.apache.ws.notification.topics.TopicNamespace;
-import org.apache.ws.notification.topics.TopicNamespaceRegistry;
 import org.apache.ws.notification.topics.TopicsTypeReader;
-import org.apache.ws.notification.topics.expression.InvalidTopicExpressionException;
-import org.apache.ws.notification.topics.expression.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.expression.TopicExpression;
+import org.apache.ws.notification.topics.expression.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.expression.impl.ConcreteTopicExpressionEvaluator;
  import org.apache.ws.notification.topics.v2004_06.TopicsConstants;
 import org.apache.xmlbeans.XmlObject;
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionDocument;
  import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
  
-import java.net.URI;
-
 /**
  * Test case for {@link ConcreteTopicExpressionEvaluator}.
  */
 public class ConcreteTopicExpressionEvaluatorTestCase
-   extends TestCase
+        extends AbstractTopicExpressionEvaluatorTestCase
 {
-   private static final URI      NSURI1    = URI.create( "http://ns1.com/" );
-   private static final String      NSPREFIX1 = "ns1";
-   private static final URI      NSURI2    = URI.create( "http://ns2.com/" );
-   private static final String      NSPREFIX2 = "ns2";
-   private TopicExpressionEvaluator m_evaluator;
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @throws Exception DOCUMENT_ME
-    */
-   public void testEvaluateInvalid(  )
-   throws Exception
-   {
-      // check expressions that do not conform to the Concrete Topic Expression \
                grammar defined by the WS-Topics spec
-      assertExpressionIsInvalid( NSPREFIX1 + ":" );
-      //assertExpressionIsInvalid( ":sports" );
-      assertExpressionIsInvalid( NSPREFIX1 + "::sports" );
-      //assertExpressionIsInvalid( NSPREFIX1 + ":sports:tennis" );
-      assertExpressionIsInvalid( NSPREFIX1 + ":sports/*" );
-      assertExpressionIsInvalid( NSPREFIX1 + ":sports/." );
-      assertExpressionIsInvalid( NSPREFIX1 + ":sports//tennis" );
-      //assertExpressionIsInvalid( NSPREFIX1 + ":sports|" + NSPREFIX2 + ":bands" );
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @throws Exception DOCUMENT_ME
-    */
-   public void testEvaluateValid(  )
-   throws Exception
-   {
-      Topic[] resultTopics = evaluate( "celebs" );
-      assertEquals( 1, resultTopics.length );
-
-      resultTopics = evaluate( NSPREFIX1 + ":sports" );
-      assertEquals( 1, resultTopics.length );
-      assertContainsTopic( resultTopics, "sports" );
-
-      resultTopics = evaluate( NSPREFIX1 + ":bands" );
-      assertEquals( 0, resultTopics.length );
-
-      resultTopics = evaluate( NSPREFIX1 + ":sports/tennis" );
-      assertEquals( 1, resultTopics.length );
-      assertContainsTopic( resultTopics, "tennis" );
-
-      resultTopics = evaluate( NSPREFIX1 + ":sports/baseball" );
-      assertEquals( 0, resultTopics.length );
-   }
-
-   /**
-    * DOCUMENT_ME
-    *
-    * @throws Exception DOCUMENT_ME
-    */
-   protected void setUp(  )
-   throws Exception
-   {
-       TopicNamespaceRegistry topicNsRegistry = \
                TopicNamespaceRegistry.getInstance();
-       XmlObject topicNsXBean = XmlObject.Factory.parse( \
this.getClass().getClassLoader().getResourceAsStream( \
                "org/apache/ws/notification/test-topicSpace.xml" ) );
-       TopicNamespace topicNs = TopicsTypeReader.newInstance( \
                TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicNamespace( topicNsXBean \
                );
-       topicNsRegistry.addTopicNamespace( topicNs );
-       topicNsXBean = XmlObject.Factory.parse( \
this.getClass().getClassLoader().getResourceAsStream( \
                "org/apache/ws/notification/adHoc-topicSpace.xml" ) );
-       topicNs = TopicsTypeReader.newInstance( TopicsConstants.NSURI_WSTOP_SCHEMA \
                ).toTopicNamespace( topicNsXBean );
-       topicNsRegistry.addTopicNamespace( topicNs );
-       m_evaluator = new ConcreteTopicExpressionEvaluator(  );
-   }
-
-   private void assertContainsTopic( Topic[] topics,
-                                     String  name )
-   {
-      boolean foundIt = false;
-      for ( int i = 0; i < topics.length; i++ )
-      {
-         if ( topics[i].getName(  ).equals( name ) )
-         {
-            foundIt = true;
-         }
-      }
-
-      assertTrue( foundIt );
-   }
-
-   private void assertExpressionIsInvalid( String expr )
-   throws Exception
-   {
-      try
-      {
-         evaluate( expr );
-         fail(  );
-      }
-      catch ( InvalidTopicExpressionException itee )
-      {
-         // success!
-      }
-   }
-
-   private Topic[] evaluate( String expr )
-   throws Exception
-   {
-      TopicExpressionType topicExprType =
-         ( (TopicExpressionDocument) XmlObject.Factory.parse( "<wsnt:TopicExpression \
xmlns:wsnt='http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd' \
                "
-                                                              + "xmlns:" + NSPREFIX1 \
                + "='" + NSURI1 + "' xmlns:"
-                                                              + NSPREFIX2 + "='" + \
                NSURI2
-                                                              + "' \
                Dialect='http://docs.oasis-open.org/wsn/2004/06/TopicExpression/Concrete'>"
                
-                                                              + expr + \
                "</wsnt:TopicExpression>" ) )
-         .getTopicExpression(  );
-      TopicExpression topicExpr = TopicsTypeReader.newInstance( \
                TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicExpression( topicExprType \
                );
-      return m_evaluator.evaluate( topicExpr );
-   }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @throws Exception DOCUMENT_ME
+     */
+    public void testEvaluateInvalid()
+            throws Exception
+    {
+        // check expressions that do not conform to the Concrete Topic Expression \
grammar defined by the WS-Topics spec +        assertExpressionIsInvalid( NSPREFIX1 + \
":" ); +        //assertExpressionIsInvalid( ":sports" );
+        assertExpressionIsInvalid( NSPREFIX1 + "::sports" );
+        //assertExpressionIsInvalid( NSPREFIX1 + ":sports:tennis" );
+        assertExpressionIsInvalid( NSPREFIX1 + ":sports/*" );
+        assertExpressionIsInvalid( NSPREFIX1 + ":sports/." );
+        assertExpressionIsInvalid( NSPREFIX1 + ":sports//tennis" );
+        //assertExpressionIsInvalid( NSPREFIX1 + ":sports|" + NSPREFIX2 + ":bands" \
); +    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @throws Exception DOCUMENT_ME
+     */
+    public void testEvaluateValid()
+            throws Exception
+    {
+        Topic[] resultTopics = evaluate( "candy/nerds" );  // topic from ad-hoc ns
+        assertEquals( 1, resultTopics.length );
+
+        resultTopics = evaluate( NSPREFIX1 + ":sports" );
+        assertEquals( 1, resultTopics.length );
+        assertContainsTopic( resultTopics, "sports" );
+
+        resultTopics = evaluate( NSPREFIX1 + ":bands" );
+        assertEquals( 0, resultTopics.length );
+
+        resultTopics = evaluate( NSPREFIX1 + ":sports/tennis" );
+        assertEquals( 1, resultTopics.length );
+        assertContainsTopic( resultTopics, "tennis" );
+
+        resultTopics = evaluate( NSPREFIX1 + ":sports/baseball" );
+        assertEquals( 0, resultTopics.length );
+    }
+
+    protected Topic[] evaluate( String expr )
+            throws Exception
+    {
+        TopicExpressionType topicExprType =
+                ( (TopicExpressionDocument) XmlObject.Factory.parse( \
"<wsnt:TopicExpression \
xmlns:wsnt='http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd' \
" +                + "xmlns:" + NSPREFIX1 + "='" + NSURI1 +
+                "' xmlns:"
+                + NSPREFIX2 + "='" + NSURI2
+                + "' \
Dialect='http://docs.oasis-open.org/wsn/2004/06/TopicExpression/Concrete'>" +         \
+ expr + "</wsnt:TopicExpression>" ) ) +                .getTopicExpression();
+        TopicExpression topicExpr = TopicsTypeReader.newInstance( \
TopicsConstants.NSURI_WSTOP_SCHEMA ) +                .toTopicExpression( \
topicExprType ); +        return m_evaluator.evaluate( topicExpr );
+    }
+
+    protected TopicExpressionEvaluator createTopicExpressionEvaluator()
+    {
+        return new ConcreteTopicExpressionEvaluator();
+    }
 }

Modified: webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/FullTopicExpressionEvaluatorTestCase.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/topics/impl/FullTopicExpressionEvaluatorTestCase.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/FullTopicExpressionEvaluatorTestCase.java \
                (original)
+++ webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/FullTopicExpressionEvaluatorTestCase.java \
Fri Sep 30 08:16:05 2005 @@ -15,50 +15,23 @@
  *=============================================================================*/
 package org.apache.ws.notification.topics.impl;
 
-import junit.framework.TestCase;
 import org.apache.ws.notification.topics.Topic;
-import org.apache.ws.notification.topics.TopicNamespace;
-import org.apache.ws.notification.topics.TopicNamespaceRegistry;
 import org.apache.ws.notification.topics.TopicsTypeReader;
-import org.apache.ws.notification.topics.expression.InvalidTopicExpressionException;
-import org.apache.ws.notification.topics.expression.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.expression.TopicExpression;
+import org.apache.ws.notification.topics.expression.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.expression.impl.FullTopicExpressionEvaluator;
  import org.apache.ws.notification.topics.v2004_06.TopicsConstants;
 import org.apache.xmlbeans.XmlObject;
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionDocument;
  import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
  
-import java.net.URI;
-
 /**
  * Test case for {@link FullTopicExpressionEvaluator}.
  */
 public class FullTopicExpressionEvaluatorTestCase
-        extends TestCase
+        extends AbstractTopicExpressionEvaluatorTestCase
 {
 
-    private static final URI NSURI1 = URI.create( "http://ns1.com/" );
-    private static final String NSPREFIX1 = "ns1";
-    private static final URI NSURI2 = URI.create( "http://ns2.com/" );
-    private static final String NSPREFIX2 = "ns2";
-    private TopicExpressionEvaluator m_evaluator;
-
-    /**
-     * DOCUMENT_ME
-     *
-     * @throws Exception DOCUMENT_ME
-     */
-    public void testEvaluateConjoined()
-            throws Exception
-    {
-        Topic[] resultTopics = evaluate( NSPREFIX1 + ":sports/tennis|" + NSPREFIX2 + \
                ":bands/*" );
-        assertEquals( 3, resultTopics.length );
-        assertContainsTopic( resultTopics, "tennis" );
-        assertContainsTopic( resultTopics, "beatles" );
-        assertContainsTopic( resultTopics, "kinks" );
-    }
-
     /**
      * DOCUMENT_ME
      *
@@ -85,6 +58,31 @@
      *
      * @throws Exception DOCUMENT_ME
      */
+    public void testEvaluateSimple()
+            throws Exception
+    {
+        Topic[] resultTopics;
+
+        resultTopics = evaluate( "candy/nerds" );
+        assertEquals( 1, resultTopics.length );
+
+        resultTopics = evaluate( NSPREFIX1 + ":sports" );
+        assertEquals( 1, resultTopics.length );
+        assertContainsTopic( resultTopics, "sports" );
+
+        resultTopics = evaluate( NSPREFIX1 + ":sports/tennis" );
+        assertEquals( 1, resultTopics.length );
+        assertContainsTopic( resultTopics, "tennis" );
+
+        resultTopics = evaluate( NSPREFIX1 + ":sports/baseball" );
+        assertEquals( 0, resultTopics.length );
+    }
+
+    /**
+     * DOCUMENT_ME
+     *
+     * @throws Exception DOCUMENT_ME
+     */
     public void testEvaluateRecursive()
             throws Exception
     {
@@ -121,33 +119,15 @@
      *
      * @throws Exception DOCUMENT_ME
      */
-    public void testEvaluateSimple()
+    public void testEvaluateWildcard()
             throws Exception
     {
-        Topic[] resultTopics = evaluate( "celebs" );
-        assertEquals( 1, resultTopics.length );
+        Topic[] resultTopics;
 
-        resultTopics = evaluate( NSPREFIX1 + ":sports" );
-        assertEquals( 1, resultTopics.length );
-        assertContainsTopic( resultTopics, "sports" );
-
-        resultTopics = evaluate( NSPREFIX1 + ":sports/tennis" );
-        assertEquals( 1, resultTopics.length );
-        assertContainsTopic( resultTopics, "tennis" );
-
-        resultTopics = evaluate( NSPREFIX1 + ":sports/baseball" );
-        assertEquals( 0, resultTopics.length );
-    }
+        resultTopics = evaluate( "candy/*" );
+        assertEquals( 2, resultTopics.length );
 
-    /**
-     * DOCUMENT_ME
-     *
-     * @throws Exception DOCUMENT_ME
-     */
-    public void testEvaluateWildcard()
-            throws Exception
-    {
-        Topic[] resultTopics = evaluate( NSPREFIX1 + ":*" );
+        resultTopics = evaluate( NSPREFIX1 + ":*" );
         assertEquals( 2, resultTopics.length );
         assertContainsTopic( resultTopics, "sports" );
         assertContainsTopic( resultTopics, "games" );
@@ -192,59 +172,17 @@
      *
      * @throws Exception DOCUMENT_ME
      */
-    protected void setUp()
+    public void testEvaluateConjoined()
             throws Exception
     {
-        TopicNamespaceRegistry topicNsRegistry = \
                TopicNamespaceRegistry.getInstance();
-        XmlObject topicNsXBean = XmlObject.Factory.parse(
-                this.getClass().getClassLoader().getResourceAsStream( \
                "org/apache/ws/notification/test-topicSpace.xml" ) );
-        TopicNamespace topicNs = TopicsTypeReader.newInstance( \
                TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicNamespace(
-                topicNsXBean );
-        topicNsRegistry.addTopicNamespace( topicNs );
-        topicNsXBean =
-                XmlObject.Factory.parse(
-                        this.getClass().getClassLoader().getResourceAsStream(
-                                "org/apache/ws/notification/test2-topicSpace.xml" ) \
                );
-        topicNs = TopicsTypeReader.newInstance( TopicsConstants.NSURI_WSTOP_SCHEMA \
                ).toTopicNamespace( topicNsXBean );
-        topicNsRegistry.addTopicNamespace( topicNs );
-        topicNsXBean =
-                XmlObject.Factory.parse( \
                this.getClass().getClassLoader().getResourceAsStream(
-                        "org/apache/ws/notification/adHoc-topicSpace.xml" ) );
-        topicNs = TopicsTypeReader.newInstance( TopicsConstants.NSURI_WSTOP_SCHEMA \
                ).toTopicNamespace( topicNsXBean );
-        topicNsRegistry.addTopicNamespace( topicNs );
-        m_evaluator = new FullTopicExpressionEvaluator();
-    }
-
-    private void assertContainsTopic( Topic[] topics,
-                                      String name )
-    {
-        boolean foundIt = false;
-        for ( int i = 0; i < topics.length; i++ )
-        {
-            if ( topics[i].getName().equals( name ) )
-            {
-                foundIt = true;
-            }
-        }
-
-        assertTrue( foundIt );
-    }
-
-    private void assertExpressionIsInvalid( String expr )
-            throws Exception
-    {
-        try
-        {
-            evaluate( expr );
-            fail();
-        }
-        catch ( InvalidTopicExpressionException itee )
-        {
-            // success!
-        }
+        Topic[] resultTopics = evaluate( NSPREFIX1 + ":sports/tennis|" + NSPREFIX2 + \
":bands/*" ); +        assertEquals( 3, resultTopics.length );
+        assertContainsTopic( resultTopics, "tennis" );
+        assertContainsTopic( resultTopics, "beatles" );
+        assertContainsTopic( resultTopics, "kinks" );
     }
 
-    private Topic[] evaluate( String expr )
+    protected Topic[] evaluate( String expr )
             throws Exception
     {
         TopicExpressionType topicExprType =
@@ -255,7 +193,14 @@
                 + "' \
Dialect='http://docs.oasis-open.org/wsn/2004/06/TopicExpression/Full'>"  + expr + \
                "</wsnt:TopicExpression>" ) )
                 .getTopicExpression();
-        TopicExpression topicExpr = TopicsTypeReader.newInstance( \
TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicExpression( topicExprType ); +        \
TopicExpression topicExpr = TopicsTypeReader.newInstance( \
TopicsConstants.NSURI_WSTOP_SCHEMA ) +                .toTopicExpression( \
topicExprType );  return m_evaluator.evaluate( topicExpr );
     }
+
+    protected TopicExpressionEvaluator createTopicExpressionEvaluator()
+    {
+        return new FullTopicExpressionEvaluator();
+    }
+
 }

Modified: webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluatorTestCase.java
                
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/org/apache/ws/ \
notification/topics/impl/SimpleTopicExpressionEvaluatorTestCase.java?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluatorTestCase.java \
                (original)
+++ webservices/pubscribe/trunk/src/test/org/apache/ws/notification/topics/impl/SimpleTopicExpressionEvaluatorTestCase.java \
Fri Sep 30 08:16:05 2005 @@ -15,33 +15,22 @@
  *=============================================================================*/
 package org.apache.ws.notification.topics.impl;
 
-import junit.framework.TestCase;
 import org.apache.ws.notification.topics.Topic;
-import org.apache.ws.notification.topics.TopicNamespace;
-import org.apache.ws.notification.topics.TopicNamespaceRegistry;
 import org.apache.ws.notification.topics.TopicsTypeReader;
-import org.apache.ws.notification.topics.expression.InvalidTopicExpressionException;
-import org.apache.ws.notification.topics.expression.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.expression.TopicExpression;
+import org.apache.ws.notification.topics.expression.TopicExpressionEvaluator;
 import org.apache.ws.notification.topics.expression.impl.SimpleTopicExpressionEvaluator;
  import org.apache.ws.notification.topics.v2004_06.TopicsConstants;
 import org.apache.xmlbeans.XmlObject;
 import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionDocument;
  import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.TopicExpressionType;
  
-import java.net.URI;
-
 /**
  * Test case for {@link SimpleTopicExpressionEvaluator}.
  */
 public class SimpleTopicExpressionEvaluatorTestCase
-        extends TestCase
+        extends AbstractTopicExpressionEvaluatorTestCase
 {
-    private static final URI NSURI1 = URI.create( "http://ns1.com/" );
-    private static final String NSPREFIX1 = "ns1";
-    private static final URI NSURI2 = URI.create( "http://ns2.com/" );
-    private static final String NSPREFIX2 = "ns2";
-    private TopicExpressionEvaluator m_evaluator;
 
     /**
      * DOCUMENT_ME
@@ -71,7 +60,7 @@
     public void testEvaluateValid()
             throws Exception
     {
-        Topic[] resultTopics = evaluate( "celebs" );
+        Topic[] resultTopics = evaluate( "candy" );
         assertEquals( 1, resultTopics.length );
 
         resultTopics = evaluate( NSPREFIX1 + ":sports" );
@@ -82,58 +71,7 @@
         assertEquals( 0, resultTopics.length );
     }
 
-    /**
-     * DOCUMENT_ME
-     *
-     * @throws Exception DOCUMENT_ME
-     */
-    protected void setUp()
-            throws Exception
-    {
-        TopicNamespaceRegistry topicNsRegistry = \
                TopicNamespaceRegistry.getInstance();
-        XmlObject topicNsXBean = XmlObject.Factory.parse(
-                this.getClass().getClassLoader().getResourceAsStream( \
                "org/apache/ws/notification/test-topicSpace.xml" ) );
-        TopicNamespace topicNs = TopicsTypeReader.newInstance( \
                TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicNamespace(
-                topicNsXBean );
-        topicNsRegistry.addTopicNamespace( topicNs );
-        topicNsXBean =
-                XmlObject.Factory.parse(
-                        this.getClass().getClassLoader().getResourceAsStream(
-                                "org/apache/ws/notification/adHoc-topicSpace.xml" ) \
                );
-        topicNs = TopicsTypeReader.newInstance( TopicsConstants.NSURI_WSTOP_SCHEMA \
                ).toTopicNamespace( topicNsXBean );
-        topicNsRegistry.addTopicNamespace( topicNs );
-        m_evaluator = new SimpleTopicExpressionEvaluator();
-    }
-
-    private void assertContainsTopic( Topic[] topics,
-                                      String name )
-    {
-        boolean foundIt = false;
-        for ( int i = 0; i < topics.length; i++ )
-        {
-            if ( topics[i].getName().equals( name ) )
-            {
-                foundIt = true;
-            }
-        }
-        assertTrue( foundIt );
-    }
-
-    private void assertExpressionIsInvalid( String expr )
-            throws Exception
-    {
-        try
-        {
-            evaluate( expr );
-            fail();
-        }
-        catch ( InvalidTopicExpressionException itee )
-        {
-            // success!
-        }
-    }
-
-    private Topic[] evaluate( String expr )
+    protected Topic[] evaluate( String expr )
             throws Exception
     {
         TopicExpressionType topicExprType =
@@ -147,4 +85,10 @@
         TopicExpression topicExpr = TopicsTypeReader.newInstance( \
TopicsConstants.NSURI_WSTOP_SCHEMA ).toTopicExpression( topicExprType );  return \
m_evaluator.evaluate( topicExpr );  }
+
+    protected TopicExpressionEvaluator createTopicExpressionEvaluator()
+    {
+        return new SimpleTopicExpressionEvaluator();
+    }
+
 }

Modified: webservices/pubscribe/trunk/src/test/spring-jndi-config.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/test/spring-jndi-config.xml?rev=292768&r1=292767&r2=292768&view=diff
 ==============================================================================
--- webservices/pubscribe/trunk/src/test/spring-jndi-config.xml (original)
+++ webservices/pubscribe/trunk/src/test/spring-jndi-config.xml Fri Sep 30 08:16:05 \
2005 @@ -53,15 +53,15 @@
     </constructor-arg>
   </bean>
 
-  <bean name="services/home/SubscriptionManager" \
                class="org.apache.ws.notification.base.v2004_06.impl.SubscriptionHome">
                
-    <property name="serviceClassName"><value>org.apache.ws.notification.base.v2004_06.impl.SubscriptionService</value></property>
                
-    <property name="resourceClassName"><value>org.apache.ws.notification.base.v2004_06.impl.SubscriptionResource</value></property>
 +  <bean name="resource/SubscriptionManager" \
class="org.apache.ws.notification.base.v2004_06.impl.SubscriptionHome" \
init-method="init"> +    <property \
name="serviceClass"><value>org.apache.ws.notification.base.v2004_06.impl.SubscriptionService</value></property>
 +    <property name="resourceClass"><value>org.apache.ws.notification.base.v2004_06.impl.SubscriptionResource</value></property>
  <property name="resourceIdentifierReferenceParameterName"><value>{http://ws.apache.o \
rg/notification/base/service/SubscriptionManager}ResourceIdentifier</value></property>
  </bean>
 
-  <bean name="services/home/filesystem" \
                class="org.apache.ws.resource.example.filesystem.FilesystemHome" \
                init-method="init">
-    <property name="serviceClassName"><value>org.apache.ws.resource.example.filesystem.FilesystemService</value></property>
                
-    <property name="resourceClassName"><value>org.apache.ws.resource.example.filesystem.FilesystemResource</value></property>
 +  <bean name="resource/filesystem" \
class="org.apache.ws.resource.example.filesystem.FilesystemHome" init-method="init"> \
+    <property name="serviceClass"><value>org.apache.ws.resource.example.filesystem.FilesystemService</value></property>
 +    <property name="resourceClass"><value>org.apache.ws.resource.example.filesystem.FilesystemResource</value></property>
                
     <property name="resourceIdentifierReferenceParameterName"><value>{http://ws.apache.org/resource/example/filesystem}ResourceIdentifier</value></property>
  </bean>
 
@@ -70,13 +70,13 @@
       <bean class="org.apache.ws.notification.topics.impl.TopicSetImpl">
         <constructor-arg>
           <set>
-            <bean class="org.apache.ws.notification.topics.expression.impl.SimpleTopicExpressionImpl">
 +            <bean class="org.apache.ws.notification.topics.expression.SimpleTopicExpression">
  <constructor-arg><value>{http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd}ResourceTermination</value></constructor-arg>
  </bean>
-            <bean class="org.apache.ws.notification.topics.expression.impl.SimpleTopicExpressionImpl">
 +            <bean class="org.apache.ws.notification.topics.expression.SimpleTopicExpression">
                
               <constructor-arg><value>{http://example.org/topicSpace/example1}t1</value></constructor-arg>
  </bean>
-            <bean class="org.apache.ws.notification.topics.expression.impl.ConcreteTopicExpressionImpl">
 +            <bean class="org.apache.ws.notification.topics.expression.ConcreteTopicExpression">
                
               <constructor-arg><value>{http://example.org/topicSpace/example1}t4/t5</value></constructor-arg>
  </bean>
           </set>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic