You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by as...@apache.org on 2008/11/15 17:11:12 UTC

svn commit: r717873 [4/4] - in /webservices/commons/trunk/scratch/asankha/transport/modules: base/src/main/java/org/apache/axis2/transport/base/ jms/ jms/src/main/java/org/apache/axis2/transport/jms/ tests/ tests/src/test/java/org/apache/axis2/transpor...

Added: webservices/commons/trunk/scratch/asankha/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/package.html
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/asankha/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/package.html?rev=717873&view=auto
==============================================================================
--- webservices/commons/trunk/scratch/asankha/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/package.html (added)
+++ webservices/commons/trunk/scratch/asankha/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/package.html Sat Nov 15 08:11:11 2008
@@ -0,0 +1,111 @@
+<html>
+<title>JMS Transport Documentation</title>
+<body>
+
+<h2>JMS Listener Configuration (axis2.xml)</h2>
+
+e.g:
+    <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
+        <parameter name="myTopicConnectionFactory">
+        	<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+        	<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+        	<parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
+		    <parameter name="transport.jms.ConnectionFactoryType">topic</parameter>
+		    <parameter name="transport.jms.JMSSpecVersion">1.0.2b</parameter>
+        </parameter>
+
+        <parameter name="myQueueConnectionFactory">
+        	<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+        	<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+        	<parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+		    <parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
+		    <parameter name="transport.jms.JMSSpecVersion">1.1</parameter>
+        </parameter>
+
+        <parameter name="default">
+        	<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+        	<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+        	<parameter name="transport.jms.ConnectionFactoryJNDIName">ConnectionFactory</parameter>
+        </parameter>
+    </transportReceiver>
+
+    <transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender">
+
+        <parameter name="myTopicConnectionFactory">
+            <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
+            <parameter name="transport.jms.JMSSpecVersion">1.0.2b</parameter>
+        </parameter>
+
+        <parameter name="myQueueConnectionFactory">
+            <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+            <parameter name="transport.jms.JMSSpecVersion">1.0.2b</parameter>
+        </parameter>
+
+        <parameter name="default">
+            <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter name="transport.jms.ConnectionFactoryJNDIName">ConnectionFactory</parameter>
+        </parameter>
+    </transportSender>
+
+<p>
+    The Transport Listener and Sender both allows the user to configure one or more JMS Connection
+    Factories, which are named definitions 
+</p>
+transport.jms.ConnectionFactoryType - queue | topc
+transport.jms.ConnectionFactoryJNDIName
+
+services.xml / Proxy service parameters for Synapse
+
+Operation - operation name - default urn:mediate
+Wrapper - binary and text wrapper element
+
+transport.jms.ConnectionFactory
+transport.jms.Destination
+transport.jms.DestinationType - queue | topic
+transport.jms.DefaultReplyDestination
+transport.jms.DefaultReplyDestinationType - queue| topic
+
+transport.jms.ReconnectTimeoutInitial
+transport.jms.ReconnectTimeoutFactor
+transport.jms.ReconnectTimeoutMaximum
+transport.jms.JMSSpecVersion - 1.0.2b| 1.1
+
+transport.jms.SessionTransacted - true | false
+transport.jms.SessionAcknowledgement - AUTO_ACKNOWLEDGE* | CLIENT_ACKNOWLEDGE | DUPS_OK_ACKNOWLEDGE | SESSION_TRANSACTED
+
+transport.jms.MessageSelector
+transport.jms.SubscriptionDurable - true | false
+transport.jms.DurableSubscriberName
+transport.jms.CacheLevel - none | connection | session | consumer | producer | auto*
+transport.jms.PubSubNoLocal - true* | false
+transport.jms.ReceiveTimeout - negative means wait forever
+transport.jms.ConcurrentConsumers - should be 1 for topics
+transport.jms.MaxConcurrentConsumers - should be 1 for topics
+transport.jms.IdleTaskLimit
+transport.jms.MaxMessagesPerTask
+
+transport.jms.InitialReconnectDuration
+transport.jms.ReconnectProgressFactor
+transport.jms.MaxReconnectDuration
+
+transport.Transactionality - none | local | jta
+transport.UserTxnJNDIName
+transport.CacheUserTxn - true | false
+
+
+
+transport.jms.PublishEPR - one or more EPR's could be specified. If none specified, defaults to
+the legacy EPR. If legacy URL is included as an option with other URLs, specify as "LEGACY" and
+specify the other URLs
+
+axis2 message context properties set by listener
+JMSConstants.JMS_COORELATION_ID
+
+
+</body>
+</html>
\ No newline at end of file

Modified: webservices/commons/trunk/scratch/asankha/transport/modules/tests/log4j.properties
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/asankha/transport/modules/tests/log4j.properties?rev=717873&r1=717872&r2=717873&view=diff
==============================================================================
--- webservices/commons/trunk/scratch/asankha/transport/modules/tests/log4j.properties (original)
+++ webservices/commons/trunk/scratch/asankha/transport/modules/tests/log4j.properties Sat Nov 15 08:11:11 2008
@@ -21,6 +21,8 @@
 
 log4j.rootCategory=DEBUG, CONSOLE
 
+log4j.category.org.apache.axis2.transport.jms=TRACE
+
 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
 log4j.appender.CONSOLE.threshold=ERROR
 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

Modified: webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSChannel.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSChannel.java?rev=717873&r1=717872&r2=717873&view=diff
==============================================================================
--- webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSChannel.java (original)
+++ webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSChannel.java Sat Nov 15 08:11:11 2008
@@ -137,8 +137,8 @@
     }
 
     public void setupService(AxisService service, boolean isClientSide) throws Exception {
-        service.addParameter(JMSConstants.CONFAC_PARAM, connectionFactoryName);
-        service.addParameter(JMSConstants.DEST_PARAM_TYPE, destinationType);
-        service.addParameter(JMSConstants.DEST_PARAM, jndiName);
+        service.addParameter(JMSConstants.PARAM_JMS_CONFAC, connectionFactoryName);
+        service.addParameter(JMSConstants.PARAM_DEST_TYPE, destinationType);
+        service.addParameter(JMSConstants.PARAM_DESTINATION, jndiName);
     }
 }

Modified: webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseChannel.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseChannel.java?rev=717873&r1=717872&r2=717873&view=diff
==============================================================================
--- webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseChannel.java (original)
+++ webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseChannel.java Sat Nov 15 08:11:11 2008
@@ -63,8 +63,8 @@
     @Override
     public void setupService(AxisService service, boolean isClientSide) throws Exception {
         super.setupService(service, isClientSide);
-        service.addParameter(JMSConstants.REPLY_PARAM_TYPE, replyDestinationType);
-        service.addParameter(JMSConstants.REPLY_PARAM, replyJndiName);
+        service.addParameter(JMSConstants.PARAM_REPLY_DEST_TYPE, replyDestinationType);
+        service.addParameter(JMSConstants.PARAM_REPLY_DESTINATION, replyJndiName);
     }
 
     public void setupRequestMessageContext(MessageContext msgContext) {
@@ -74,7 +74,7 @@
     @Override
     public EndpointReference getEndpointReference() throws Exception {
         String address = super.getEndpointReference().getAddress();
-        return new EndpointReference(address + "&" + JMSConstants.REPLY_PARAM_TYPE + "=" + replyDestinationType + "&" + JMSConstants.REPLY_PARAM + "=" + replyJndiName);
+        return new EndpointReference(address + "&" + JMSConstants.PARAM_REPLY_DEST_TYPE + "=" + replyDestinationType + "&" + JMSConstants.PARAM_REPLY_DESTINATION + "=" + replyJndiName);
     }
 
     @Key("replyDestType")

Modified: webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportDescriptionFactory.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportDescriptionFactory.java?rev=717873&r1=717872&r2=717873&view=diff
==============================================================================
--- webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportDescriptionFactory.java (original)
+++ webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportDescriptionFactory.java Sat Nov 15 08:11:11 2008
@@ -47,6 +47,7 @@
     
     private final boolean singleCF;
     private final boolean cfOnSender;
+    private final int concurrentConsumers;
     private @Transient Context context;
     
     /**
@@ -58,9 +59,10 @@
      *                   should also be configured on the sender. This switch allows
      *                   us to build regression tests for SYNAPSE-448. 
      */
-    public JMSTransportDescriptionFactory(boolean singleCF, boolean cfOnSender) {
+    public JMSTransportDescriptionFactory(boolean singleCF, boolean cfOnSender, int concurrentConsumers) {
         this.singleCF = singleCF;
         this.cfOnSender = cfOnSender;
+        this.concurrentConsumers = concurrentConsumers;
     }
 
     @Setup @SuppressWarnings("unused")
@@ -108,18 +110,20 @@
         OMElement element = createParameterElement(JMSConstants.DEFAULT_CONFAC_NAME, null);
         element.addChild(createParameterElement(Context.INITIAL_CONTEXT_FACTORY,
                 MockContextFactory.class.getName()));
-        element.addChild(createParameterElement(JMSConstants.CONFAC_JNDI_NAME_PARAM,
+        element.addChild(createParameterElement(JMSConstants.PARAM_CONFAC_JNDI_NAME,
                 connFactName));
         if (type != null) {
-            element.addChild(createParameterElement(JMSConstants.CONFAC_TYPE, type));
+            element.addChild(createParameterElement(JMSConstants.PARAM_CONFAC_TYPE, type));
         }
+        element.addChild(createParameterElement(JMSConstants.PARAM_CONCURRENT_CONSUMERS,
+            Integer.toString(concurrentConsumers)));
         trpDesc.addParameter(new Parameter(name, element));
     }
     
     private void setupTransport(ParameterInclude trpDesc) throws AxisFault {
         if (singleCF) {
             // TODO: setting the type to "queue" is nonsense, but required by the transport (see SYNAPSE-439)
-            setupConnectionFactoryConfig(trpDesc, "default", CONNECTION_FACTORY, "queue");
+            setupConnectionFactoryConfig(trpDesc, "default", CONNECTION_FACTORY, null);
         } else {
             setupConnectionFactoryConfig(trpDesc, "queue", QUEUE_CONNECTION_FACTORY, "queue");
             setupConnectionFactoryConfig(trpDesc, "topic", TOPIC_CONNECTION_FACTORY, "topic");

Modified: webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportTest.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportTest.java?rev=717873&r1=717872&r2=717873&view=diff
==============================================================================
--- webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportTest.java (original)
+++ webservices/commons/trunk/scratch/asankha/transport/modules/tests/src/test/java/org/apache/axis2/transport/jms/JMSTransportTest.java Sat Nov 15 08:11:11 2008
@@ -51,14 +51,18 @@
         
         // SYNAPSE-436:
         suite.addExclude("(&(test=EchoXML)(replyDestType=topic)(endpoint=axis))");
-        
+
+        // Example to run a few use cases.. please leave these commented out - asankha
+        //suite.addExclude("(|(test=EchoXML)(destType=queue)(broker=qpid)(cfOnSender=true)(singleCF=false)(destType=queue)(client=jms)(endpoint=mock))");
+        //suite.addExclude("(|(test=EchoXML)(test=AsyncXML)(test=AsyncSwA)(test=AsyncTextPlain)(test=AsyncBinary)(test=AsyncSOAPLarge)(broker=qpid))");
+
         TransportTestSuiteBuilder builder = new TransportTestSuiteBuilder(suite);
 
         JMSTestEnvironment[] environments = new JMSTestEnvironment[] { new QpidTestEnvironment(), new ActiveMQTestEnvironment() };
         for (boolean singleCF : new boolean[] { false, true }) {
             for (boolean cfOnSender : new boolean[] { false, true }) {
                 for (JMSTestEnvironment env : environments) {
-                    builder.addEnvironment(env, new JMSTransportDescriptionFactory(singleCF, cfOnSender));
+                    builder.addEnvironment(env, new JMSTransportDescriptionFactory(singleCF, cfOnSender, 1));
                 }
             }
         }
@@ -87,12 +91,12 @@
         
         builder.addEchoEndpoint(new MockEchoEndpoint());
         builder.addEchoEndpoint(new AxisEchoEndpoint());
-        
+
         for (JMSTestEnvironment env : new JMSTestEnvironment[] { new QpidTestEnvironment(), new ActiveMQTestEnvironment() }) {
             suite.addTest(new MinConcurrencyTest(new AsyncChannel[] {
                     new JMSAsyncChannel("endpoint1", JMSConstants.DESTINATION_TYPE_QUEUE, ContentTypeMode.TRANSPORT),
                     new JMSAsyncChannel("endpoint2", JMSConstants.DESTINATION_TYPE_QUEUE, ContentTypeMode.TRANSPORT) },
-                    2, false, env, new JMSTransportDescriptionFactory(false, false)));
+                    2, false, env, new JMSTransportDescriptionFactory(false, false, 2)));
         }