Author: ulhasbhole Date: Thu Jul 24 02:12:41 2008 New Revision: 679316 URL: http://svn.apache.org/viewvc?rev=679316&view=rev Log: Merged revisions 679247 via svnmerge from https://svn.eu.apache.org/repos/asf/cxf/trunk
........ r679247 | ulhasbhole | 2008-07-24 01:37:00 +0100 (Thu, 24 Jul 2008) | 5 lines * Fix for JIRA : https://issues.apache.org/jira/browse/CXF-1701 and https://issues.apache.org/jira/browse/CXF-1704 * Removed dead methods from JMSTransportBase. * Updated System Test. ........ Added: cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplDocBase.java - copied unchanged from r679247, cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplDocBase.java cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/JmsDestPubSubImpl.java - copied unchanged from r679247, cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jms/JmsDestPubSubImpl.java cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/SoapService6SoapPort6Impl.java - copied unchanged from r679247, cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jms/SoapService6SoapPort6Impl.java cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java - copied unchanged from r679247, cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jms/TwoWayJMSImplBase.java Modified: cxf/branches/2.0.x-fixes/ (props changed) cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSProviderHub.java cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportBase.java cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/META-INF/cxf/extensions.xml cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterByteMessageImpl.java cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplDoc.java cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplTwoWayJMS.java cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/Server.java cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/hello_world_doc_lit.wsdl cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/jms_test.wsdl Propchange: cxf/branches/2.0.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSProviderHub.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSProviderHub.java?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSProviderHub.java (original) +++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSProviderHub.java Thu Jul 24 02:12:41 2008 @@ -23,6 +23,7 @@ import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.QueueConnectionFactory; +import javax.jms.Session; import javax.jms.TopicConnectionFactory; import javax.naming.Context; import javax.naming.NamingException; @@ -65,13 +66,14 @@ throws JMSException, NamingException { AddressType addrDetails = jmsTransport.getJMSAddress(); + boolean isQueue = JMSConstants.JMS_QUEUE.equals(addrDetails.getDestinationStyle().value()); // get JMS connection resources and destination // Context context = JMSUtils.getInitialContext(addrDetails); Connection connection = null; - if (JMSConstants.JMS_QUEUE.equals(addrDetails.getDestinationStyle().value())) { + if (isQueue) { QueueConnectionFactory qcf = (QueueConnectionFactory)context.lookup(addrDetails.getJndiConnectionFactoryName()); if (addrDetails.isSetConnectionUserName()) { @@ -100,11 +102,47 @@ } connection.start(); - Destination requestDestination = - (Destination)context.lookup(addrDetails.getJndiDestinationName()); - - Destination replyDestination = (null != addrDetails.getJndiReplyDestinationName()) - ? (Destination)context.lookup(addrDetails.getJndiReplyDestinationName()) : null; + Destination requestDestination = null; + try { + //see if jndiDestination is set + if (addrDetails.getJndiDestinationName() != null) { + requestDestination = + (Destination)context.lookup(addrDetails.getJndiDestinationName()); + } + + //if no jndiDestination or it fails see if jmsDestination is set and try to create it. + if (requestDestination == null && addrDetails.getJmsDestinationName() != null) { + if (isQueue) { + requestDestination = connection.createSession(false, Session.AUTO_ACKNOWLEDGE) + .createQueue(addrDetails.getJmsDestinationName()); + } else { + requestDestination = connection.createSession(false, Session.AUTO_ACKNOWLEDGE) + .createTopic(addrDetails.getJmsDestinationName()); + } + } + + if (requestDestination == null) { + //fail to locate or create requestDestination throw Exception. + throw new JMSException("Failed to lookup or create requestDestination"); + } + + } catch (NamingException ne) { + //Propogate NamingException. + throw ne; + } + + Destination replyDestination = null; + + //Reply Destination is used (if present) only if the session is point-to-point session + if (isQueue) { + if (addrDetails.getJndiReplyDestinationName() != null) { + replyDestination = (Destination)context.lookup(addrDetails.getJndiReplyDestinationName()); + } + if (replyDestination == null && addrDetails.getJmsReplyDestinationName() != null) { + replyDestination = connection.createSession(false, Session.AUTO_ACKNOWLEDGE) + .createQueue(addrDetails.getJmsReplyDestinationName()); + } + } // create session factory to manage session, reply destination, // producer and consumer pooling Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportBase.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportBase.java?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportBase.java (original) +++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSTransportBase.java Thu Jul 24 02:12:41 2008 @@ -231,21 +231,6 @@ } } - protected String getAddrUriFromJMSAddrPolicy() { - AddressType jmsAddressPolicy = transport.getJMSAddress(); - return "jms:" + jmsAddressPolicy.getJndiConnectionFactoryName() - + "#" - + jmsAddressPolicy.getJndiDestinationName(); - } - - protected String getReplyTotAddrUriFromJMSAddrPolicy() { - AddressType jmsAddressPolicy = transport.getJMSAddress(); - return "jms:" - + jmsAddressPolicy.getJndiConnectionFactoryName() - + "#" - + jmsAddressPolicy.getJndiReplyDestinationName(); - } - protected boolean isDestinationStyleQueue() { return JMSConstants.JMS_QUEUE.equals( transport.getJMSAddress().getDestinationStyle().value()); Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/META-INF/cxf/extensions.xml URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/META-INF/cxf/extensions.xml?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/META-INF/cxf/extensions.xml (original) +++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/META-INF/cxf/extensions.xml Thu Jul 24 02:12:41 2008 @@ -23,4 +23,7 @@ <entry key="org.apache.cxf.transport.jms-1">javax.wsdl.Port=org.apache.cxf.transport.jms.AddressType</entry> <entry key="org.apache.cxf.transport.jms-2">javax.wsdl.Port=org.apache.cxf.transport.jms.ClientBehaviorPolicyType</entry> <entry key="org.apache.cxf.transport.jms-3">javax.wsdl.Port=org.apache.cxf.transport.jms.ServerBehaviorPolicyType</entry> + <entry key="org.apache.cxf.transport.jms-4">javax.wsdl.Port=org.apache.cxf.transport.jms.ClientConfig</entry> + <entry key="org.apache.cxf.transport.jms-5">javax.wsdl.Port=org.apache.cxf.transport.jms.ServerConfig</entry> + <entry key="org.apache.cxf.transport.jms-6">javax.wsdl.Port=org.apache.cxf.transport.jms.SessionPoolType</entry> </properties> Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd (original) +++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd Thu Jul 24 02:12:41 2008 @@ -33,23 +33,36 @@ <xs:element name="clientConfig" type="jms:ClientConfig"/> <xs:element name="serverConfig" type="jms:ServerConfig"/> <xs:element name="address" type="jms:AddressType"/> + <xs:element name="sessionPool" type="jms:SessionPoolType"/> <xs:complexType name="SessionPoolType"> <xs:annotation> <xs:documentation>JMS Session pool configuration policy</xs:documentation> </xs:annotation> - <xs:attribute name="lowWaterMark" type="xs:int" default="20"/> - <xs:attribute name="highWaterMark" type="xs:int" default="500" /> + <xs:complexContent> + <xs:extension base="wsdl:tExtensibilityElement"> + <xs:attribute name="lowWaterMark" type="xs:int" default="20"/> + <xs:attribute name="highWaterMark" type="xs:int" default="500" /> + </xs:extension> + </xs:complexContent> </xs:complexType> <xs:complexType name="ClientConfig"> - <xs:attribute name="clientReceiveTimeout" type="xs:long" default="2000"/> - <xs:attribute name="messageTimeToLive" type="xs:long" default="0" /> + <xs:complexContent> + <xs:extension base="wsdl:tExtensibilityElement"> + <xs:attribute name="clientReceiveTimeout" type="xs:long" default="2000"/> + <xs:attribute name="messageTimeToLive" type="xs:long" default="0" /> + </xs:extension> + </xs:complexContent> </xs:complexType> <xs:complexType name="ServerConfig"> - <xs:attribute name="messageTimeToLive" type="xs:long" default="0" /> - <xs:attribute name="durableSubscriptionClientId" type="xs:string" /> + <xs:complexContent> + <xs:extension base="wsdl:tExtensibilityElement"> + <xs:attribute name="messageTimeToLive" type="xs:long" default="0" /> + <xs:attribute name="durableSubscriptionClientId" type="xs:string" /> + </xs:extension> + </xs:complexContent> </xs:complexType> <xs:complexType name="JMSPropertyType"> @@ -132,6 +145,7 @@ </xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="jndiConnectionFactoryName" type="xs:string" use="required"> <xs:annotation> <xs:documentation> @@ -139,13 +153,22 @@ </xs:documentation> </xs:annotation> </xs:attribute> - <xs:attribute name="jndiDestinationName" type="xs:string" use="required"> + <xs:attribute name="jndiDestinationName" type="xs:string"> <xs:annotation> <xs:documentation> Name of the JNDI Destination queue or topic. </xs:documentation> </xs:annotation> </xs:attribute> + + <xs:attribute name="jmsDestinationName" type="xs:string"> + <xs:annotation> + <xs:documentation> + JMS destination queue name or topic name. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="jndiReplyDestinationName" type="xs:string"> <xs:annotation> <xs:documentation> @@ -153,6 +176,15 @@ </xs:documentation> </xs:annotation> </xs:attribute> + + <xs:attribute name="jmsReplyDestinationName" type="xs:string"> + <xs:annotation> + <xs:documentation> + JMS Replyto destination queue name when using static queues for reply. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="connectionUserName" type="xs:string"> <xs:annotation> <xs:documentation> Modified: cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterByteMessageImpl.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterByteMessageImpl.java?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterByteMessageImpl.java (original) +++ cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterByteMessageImpl.java Thu Jul 24 02:12:41 2008 @@ -18,21 +18,8 @@ */ package org.apache.cxf.systest.jms; -import javax.annotation.Resource; import javax.jws.WebService; -import javax.xml.ws.WebServiceContext; -import javax.xml.ws.handler.MessageContext; -import org.apache.cxf.hello_world_jms.BadRecordLitFault; -import org.apache.cxf.hello_world_jms.HelloWorldPortType; -import org.apache.cxf.hello_world_jms.NoSuchCodeLitFault; -import org.apache.cxf.hello_world_jms.types.BadRecordLit; -import org.apache.cxf.hello_world_jms.types.ErrorCode; -import org.apache.cxf.hello_world_jms.types.NoSuchCodeLit; -import org.apache.cxf.hello_world_jms.types.TestRpcLitFaultResponse; -import org.apache.cxf.transport.jms.JMSConstants; -import org.apache.cxf.transport.jms.JMSMessageHeadersType; -import org.apache.cxf.transport.jms.JMSPropertyType; @@ -41,57 +28,6 @@ endpointInterface = "org.apache.cxf.hello_world_jms.HelloWorldPortType", targetNamespace = "http://cxf.apache.org/hello_world_jms", wsdlLocation = "testutils/jms_test.wsdl") -public class GreeterByteMessageImpl implements HelloWorldPortType { - @Resource - protected WebServiceContext wsContext; - public String greetMe(String me) { - MessageContext mc = wsContext.getMessageContext(); - JMSMessageHeadersType headers = - (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_REQUEST_HEADERS); - System.out.println("get the message headers JMSCorrelationID" + headers.getJMSCorrelationID()); - System.out.println("Reached here :" + me); - - // set reply header custom property - JMSPropertyType testProperty = new JMSPropertyType(); - testProperty.setName("Test_Prop"); - testProperty.setValue("some return value " + me); - - System.out.println("found property in request headers at index: " - + headers.getProperty().indexOf(testProperty)); - - JMSMessageHeadersType responseHeaders = - (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS); - responseHeaders.getProperty().add(testProperty); - - return "Hello " + me; - } - - public String sayHi() { - return "Bonjour"; - } - - public void greetMeOneWay(String requestType) { - System.out.println("********* greetMeOneWay: " + requestType); - } - - public TestRpcLitFaultResponse testRpcLitFault(String faultType) - throws BadRecordLitFault, NoSuchCodeLitFault { - BadRecordLit badRecord = new BadRecordLit(); - badRecord.setReason("BadRecordLitFault"); - if (faultType.equals(BadRecordLitFault.class.getSimpleName())) { - throw new BadRecordLitFault("TestBadRecordLit", badRecord); - } - if (faultType.equals(NoSuchCodeLitFault.class.getSimpleName())) { - ErrorCode ec = new ErrorCode(); - ec.setMajor((short)1); - ec.setMinor((short)1); - NoSuchCodeLit nscl = new NoSuchCodeLit(); - nscl.setCode(ec); - throw new NoSuchCodeLitFault("TestNoSuchCodeLit", nscl); - } - - return new TestRpcLitFaultResponse(); - } - +public class GreeterByteMessageImpl extends TwoWayJMSImplBase { } Modified: cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplDoc.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplDoc.java?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplDoc.java (original) +++ cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplDoc.java Thu Jul 24 02:12:41 2008 @@ -20,38 +20,12 @@ import javax.jws.WebService; -import org.apache.hello_world_doc_lit.Greeter; -import org.apache.hello_world_doc_lit.PingMeFault; -import org.apache.hello_world_doc_lit.types.FaultDetail; - @WebService(serviceName = "SOAPService2", portName = "SoapPort2", endpointInterface = "org.apache.hello_world_doc_lit.Greeter", targetNamespace = "http://apache.org/hello_world_doc_lit", wsdlLocation = "testutils/hello_world_doc_lit.wsdl") -public class GreeterImplDoc implements Greeter { - - public String sayHi() { - System.out.println("Call sayHi here "); - return "Bonjour"; - } - - public String greetMe(String requestType) { - System.out.println("Reached here :" + requestType); - return "Hello " + requestType; - } - - public void greetMeOneWay(String requestType) { - System.out.println("********* greetMeOneWay: " + requestType); - } - - public void pingMe() throws PingMeFault { - FaultDetail faultDetail = new FaultDetail(); - faultDetail.setMajor((short)2); - faultDetail.setMinor((short)1); - throw new PingMeFault("PingMeFault raised by server", faultDetail); - - } +public class GreeterImplDoc extends GreeterImplDocBase { } Modified: cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplTwoWayJMS.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplTwoWayJMS.java?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplTwoWayJMS.java (original) +++ cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/GreeterImplTwoWayJMS.java Thu Jul 24 02:12:41 2008 @@ -18,21 +18,7 @@ */ package org.apache.cxf.systest.jms; -import javax.annotation.Resource; import javax.jws.WebService; -import javax.xml.ws.WebServiceContext; -import javax.xml.ws.handler.MessageContext; - -import org.apache.cxf.hello_world_jms.BadRecordLitFault; -import org.apache.cxf.hello_world_jms.HelloWorldPortType; -import org.apache.cxf.hello_world_jms.NoSuchCodeLitFault; -import org.apache.cxf.hello_world_jms.types.BadRecordLit; -import org.apache.cxf.hello_world_jms.types.ErrorCode; -import org.apache.cxf.hello_world_jms.types.NoSuchCodeLit; -import org.apache.cxf.hello_world_jms.types.TestRpcLitFaultResponse; -import org.apache.cxf.transport.jms.JMSConstants; -import org.apache.cxf.transport.jms.JMSMessageHeadersType; -import org.apache.cxf.transport.jms.JMSPropertyType; @@ -41,57 +27,6 @@ endpointInterface = "org.apache.cxf.hello_world_jms.HelloWorldPortType", targetNamespace = "http://cxf.apache.org/hello_world_jms", wsdlLocation = "testutils/jms_test.wsdl") -public class GreeterImplTwoWayJMS implements HelloWorldPortType { - @Resource - protected WebServiceContext wsContext; - public String greetMe(String me) { - MessageContext mc = wsContext.getMessageContext(); - JMSMessageHeadersType headers = - (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_REQUEST_HEADERS); - System.out.println("get the message headers JMSCorrelationID" + headers.getJMSCorrelationID()); - System.out.println("Reached here :" + me); - - // set reply header custom property - JMSPropertyType testProperty = new JMSPropertyType(); - testProperty.setName("Test_Prop"); - testProperty.setValue("some return value " + me); - - System.out.println("found property in request headers at index: " - + headers.getProperty().indexOf(testProperty)); - - JMSMessageHeadersType responseHeaders = - (JMSMessageHeadersType) mc.get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS); - responseHeaders.getProperty().add(testProperty); - - return "Hello " + me; - } - - public String sayHi() { - return "Bonjour"; - } - - public void greetMeOneWay(String requestType) { - System.out.println("********* greetMeOneWay: " + requestType); - } - - public TestRpcLitFaultResponse testRpcLitFault(String faultType) - throws BadRecordLitFault, NoSuchCodeLitFault { - BadRecordLit badRecord = new BadRecordLit(); - badRecord.setReason("BadRecordLitFault"); - if (faultType.equals(BadRecordLitFault.class.getSimpleName())) { - throw new BadRecordLitFault("TestBadRecordLit", badRecord); - } - if (faultType.equals(NoSuchCodeLitFault.class.getSimpleName())) { - ErrorCode ec = new ErrorCode(); - ec.setMajor((short)1); - ec.setMinor((short)1); - NoSuchCodeLit nscl = new NoSuchCodeLit(); - nscl.setCode(ec); - throw new NoSuchCodeLitFault("TestNoSuchCodeLit", nscl); - } - - return new TestRpcLitFaultResponse(); - } - +public class GreeterImplTwoWayJMS extends TwoWayJMSImplBase { } Modified: cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java (original) +++ cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/JMSClientServerTest.java Thu Jul 24 02:12:41 2008 @@ -128,6 +128,49 @@ } @Test + public void docBasicJmsDestinationTest() throws Exception { + QName serviceName = getServiceName(new QName("http://apache.org/hello_world_doc_lit", + "SOAPService6")); + QName portName = getPortName(new QName("http://apache.org/hello_world_doc_lit", "SoapPort6")); + URL wsdl = getWSDLURL("/wsdl/hello_world_doc_lit.wsdl"); + assertNotNull(wsdl); + + SOAPService2 service = new SOAPService2(wsdl, serviceName); + assertNotNull(service); + + String response1 = new String("Hello Milestone-"); + String response2 = new String("Bonjour"); + try { + Greeter greeter = service.getPort(portName, Greeter.class); + for (int idx = 0; idx < 5; idx++) { + + greeter.greetMeOneWay("test String"); + + String greeting = greeter.greetMe("Milestone-" + idx); + assertNotNull("no response received from service", greeting); + String exResponse = response1 + idx; + assertEquals(exResponse, greeting); + + + + String reply = greeter.sayHi(); + assertNotNull("no response received from service", reply); + assertEquals(response2, reply); + + try { + greeter.pingMe(); + fail("Should have thrown FaultException"); + } catch (PingMeFault ex) { + assertNotNull(ex.getFaultInfo()); + } + + } + } catch (UndeclaredThrowableException ex) { + throw (Exception)ex.getCause(); + } + } + + @Test public void testBasicConnection() throws Exception { QName serviceName = getServiceName(new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldService")); @@ -200,7 +243,7 @@ throw (Exception)ex.getCause(); } } - + @Test public void testOneWayTopicConnection() throws Exception { QName serviceName = getServiceName(new QName("http://cxf.apache.org/hello_world_jms", @@ -225,6 +268,30 @@ } } + @Test + public void testJmsDestTopicConnection() throws Exception { + QName serviceName = getServiceName(new QName("http://cxf.apache.org/hello_world_jms", + "JmsDestinationPubSubService")); + QName portName = getPortName(new QName("http://cxf.apache.org/hello_world_jms", + "JmsDestinationPubSubPort")); + URL wsdl = getClass().getResource("/wsdl/jms_test.wsdl"); + assertNotNull(wsdl); + + HelloWorldPubSubService service = new HelloWorldPubSubService(wsdl, serviceName); + assertNotNull(service); + + try { + HelloWorldPubSubPort greeter = service.getPort(portName, HelloWorldPubSubPort.class); + for (int idx = 0; idx < 5; idx++) { + greeter.greetMeOneWay("JMS:PubSub:Milestone-" + idx); + } + //Give some time to complete one-way calls. + Thread.sleep(100L); + } catch (UndeclaredThrowableException ex) { + throw (Exception)ex.getCause(); + } + } + @Test public void testConnectionsWithinSpring() throws Exception { ClassPathXmlApplicationContext ctx = Modified: cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/Server.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/Server.java?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/Server.java (original) +++ cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/jms/Server.java Thu Jul 24 02:12:41 2008 @@ -31,12 +31,17 @@ Object impl3 = new GreeterImplTopicOneWay(); Object impleDoc = new GreeterImplDoc(); Object impl4 = new GreeterByteMessageImpl(); + Object impl5 = new SoapService6SoapPort6Impl(); + Object impl6 = new JmsDestPubSubImpl(); + Endpoint.publish(null, impleDoc); String address = "http://localhost:9000/SoapContext/SoapPort"; Endpoint.publish(address, implementor); Endpoint.publish("http://testaddr.not.required/", impl2); Endpoint.publish("http://testaddr.not.required.topic/", impl3); Endpoint.publish("http://testaddr.not.required.byte/", impl4); + Endpoint.publish("http://testaddr.not.required.jms/", impl5); + Endpoint.publish("http://ignore", impl6); } Modified: cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/hello_world_doc_lit.wsdl URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/hello_world_doc_lit.wsdl?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/hello_world_doc_lit.wsdl (original) +++ cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/hello_world_doc_lit.wsdl Thu Jul 24 02:12:41 2008 @@ -227,6 +227,17 @@ <soap:address location="http://localhost:9002/SOAPService5/SoapPort5"/> </wsdl:port> </wsdl:service> + <wsdl:service name="SOAPService6"> + <wsdl:port name="SoapPort6" binding="tns:Greeter_SOAPBinding"> + <jms:address + jndiConnectionFactoryName="ConnectionFactory" + jmsDestinationName="dynamicQueues/routertest.SOAPService6Q.text" + jmsReplyDestinationName="dynamicQueues/SoapService6.reply.queue"> + <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/> + <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61500"/> + </jms:address> + </wsdl:port> + </wsdl:service> <!-- XML Binding based Services--> <wsdl:service name="XMLService1"> Modified: cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/jms_test.wsdl URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/jms_test.wsdl?rev=679316&r1=679315&r2=679316&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/jms_test.wsdl (original) +++ cxf/branches/2.0.x-fixes/testutils/src/main/resources/wsdl/jms_test.wsdl Thu Jul 24 02:12:41 2008 @@ -335,7 +335,7 @@ <jms:server durableSubscriberName="CXF_subscriber"/> </port> </service> - + <service name="HelloWorldService"> <port binding="tns:HelloWorldPortBinding" name="HelloWorldPort"> <jms:address @@ -378,6 +378,7 @@ <jms:server durableSubscriberName="CXF_subscriber"/> </port> </service> + <service name="HWByteMsgService"> <port binding="tns:HelloWorldPortBinding" name="HWSByteMsgPort"> <jms:address @@ -432,7 +433,19 @@ </jms:address> </port> </service> - + + <service name="JmsDestinationPubSubService"> + <port binding="tns:HelloWorldPubSubBinding" name="JmsDestinationPubSubPort"> + <jms:address + destinationStyle="topic" + jndiConnectionFactoryName="ConnectionFactory" + jmsDestinationName="dynamicTopics/test.jmstransport.oneway.topic.jmsdest"> + <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/> + <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61500"/> + </jms:address> + </port> + </service> + <service name="JMSSOAPServiceAddressing"> <port binding="tns:HWJMSAddressingBinding" name="HWJMSAddressingPort"> <jms:address
