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))); }
