antelder 2002/10/15 05:13:11 Added: java/test/jms Timeouts.wsdl JMSTimeoutTest.java Log: testcase for specifying timouts to be specified for each operation request Revision Changes Path 1.1 xml-axis-wsif/java/test/jms/Timeouts.wsdl Index: Timeouts.wsdl =================================================================== <?xml version="1.0" ?> <definitions targetNamespace="http://wsifservice.addressbook/" xmlns:tns="http://wsifservice.addressbook/" xmlns:typens="http://wsiftypes.addressbook/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:format="http://schemas.xmlsoap.org/wsdl/formatbinding/" xmlns:java="http://schemas.xmlsoap.org/wsdl/java/" xmlns:jms="http://schemas.xmlsoap.org/wsdl/jms/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <!-- type defs --> <types> <xsd:schema targetNamespace="http://wsiftypes.addressbook/" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <xsd:complexType name="phone"> <xsd:element name="areaCode" type="xsd:int"/> <xsd:element name="exchange" type="xsd:string"/> <xsd:element name="number" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="address"> <xsd:element name="streetNum" type="xsd:int"/> <xsd:element name="streetName" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:int"/> <xsd:element name="phoneNumber" type="typens:phone"/> </xsd:complexType> </xsd:schema> </types> <!-- message declns --> <message name="AddEntryWholeNameRequestMessage"> <part name="name" type="xsd:string"/> <part name="address" type="typens:address"/> </message> <message name="AddEntryFirstAndLastNamesRequestMessage"> <part name="firstName" type="xsd:string"/> <part name="lastName" type="xsd:string"/> <part name="address" type="typens:address"/> </message> <message name="GetAddressFromNameRequestMessage"> <part name="name" type="xsd:string"/> </message> <message name="GetAddressFromNameResponseMessage"> <part name="address" type="typens:address"/> </message> <!-- port type declns --> <portType name="AddressBook"> <operation name="addEntry"> <input name="AddEntryWholeNameRequest" message="tns:AddEntryWholeNameRequestMessage"/> </operation> <operation name="addEntry"> <input name="AddEntryFirstAndLastNamesRequest" message="tns:AddEntryFirstAndLastNamesRequestMessage"/> </operation> <operation name="getAddressFromName"> <input name="GetAddressFromNameRequest" message="tns:GetAddressFromNameRequestMessage"/> <output name="GetAddressFromNameResponse" message="tns:GetAddressFromNameResponseMessage"/> </operation> </portType> <!-- binding declns --> <binding name="SOAPJmsBinding1" type="tns:AddressBook"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/jms"/> <operation name="addEntry"> <soap:operation soapAction=""/> <input name="AddEntryWholeNameRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> </operation> <operation name="addEntry"> <soap:operation soapAction=""/> <input name="AddEntryFirstAndLastNamesRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> </operation> <operation name="getAddressFromName"> <soap:operation soapAction=""/> <input name="GetAddressFromNameRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="7000"/> <jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="11000"/> </input> <output name="GetAddressFromNameResponse"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <binding name="SOAPJmsBinding2" type="tns:AddressBook"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/jms"/> <operation name="addEntry"> <soap:operation soapAction=""/> <input name="AddEntryWholeNameRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> </operation> <operation name="addEntry"> <soap:operation soapAction=""/> <input name="AddEntryFirstAndLastNamesRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> </operation> <operation name="getAddressFromName"> <soap:operation soapAction=""/> <input name="GetAddressFromNameRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <jms:property name="wsif.syncrequest.timeout" part="syncTimeout"/> <jms:property name="wsif.asyncrequest.timeout" part="asyncTimeout"/> </input> <output name="GetAddressFromNameResponse"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <binding name="SOAPJmsBinding3" type="tns:AddressBook"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/jms"/> <operation name="addEntry"> <soap:operation soapAction=""/> <input name="AddEntryWholeNameRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> </operation> <operation name="addEntry"> <soap:operation soapAction=""/> <input name="AddEntryFirstAndLastNamesRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> </operation> <operation name="getAddressFromName"> <soap:operation soapAction=""/> <input name="GetAddressFromNameRequest"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output name="GetAddressFromNameResponse"> <soap:body use="encoded" namespace="http://wsifservice.addressbook/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <binding name="NativeJmsBinding1" type="tns:AddressBook"> <jms:binding type="ObjectMessage"/> <format:typeMapping encoding="Java" style="Java"> <format:typeMap typeName="typens:address" formatType="com.ibm.www.namespace.wsif.samples.ab.types.Address" /> <format:typeMap typeName="xsd:string" formatType="java.lang.String" /> </format:typeMapping> <operation name="addEntry"> <input name="AddEntryWholeNameRequest"> <jms:input parts="name address"/> </input> </operation> <operation name="addEntry"> <input name="AddEntryFirstAndLastNamesRequest"/> </operation> <operation name="getAddressFromName"> <input name="GetAddressFromNameRequest"> <jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="7000"/> <jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="11000"/> </input> <output name="GetAddressFromNameResponse"/> </operation> </binding> <binding name="NativeJmsBinding2" type="tns:AddressBook"> <jms:binding type="ObjectMessage"/> <format:typeMapping encoding="Java" style="Java"> <format:typeMap typeName="typens:address" formatType="com.ibm.www.namespace.wsif.samples.ab.types.Address" /> <format:typeMap typeName="xsd:string" formatType="java.lang.String" /> </format:typeMapping> <operation name="addEntry"> <input name="AddEntryWholeNameRequest"> <jms:input parts="name address"/> </input> </operation> <operation name="addEntry"> <input name="AddEntryFirstAndLastNamesRequest"/> </operation> <operation name="getAddressFromName"> <input name="GetAddressFromNameRequest"> <jms:property name="wsif.syncrequest.timeout" part="syncTimeout"/> <jms:property name="wsif.asyncrequest.timeout" part="asyncTimeout"/> </input> <output name="GetAddressFromNameResponse"/> </operation> </binding> <binding name="NativeJmsBinding3" type="tns:AddressBook"> <jms:binding type="ObjectMessage"/> <format:typeMapping encoding="Java" style="Java"> <format:typeMap typeName="typens:address" formatType="com.ibm.www.namespace.wsif.samples.ab.types.Address" /> <format:typeMap typeName="xsd:string" formatType="java.lang.String" /> </format:typeMapping> <operation name="addEntry"> <input name="AddEntryWholeNameRequest"> <jms:input parts="name address"/> </input> </operation> <operation name="addEntry"> <input name="AddEntryFirstAndLastNamesRequest"/> </operation> <operation name="getAddressFromName"> <input name="GetAddressFromNameRequest"/> <output name="GetAddressFromNameResponse"/> </operation> </binding> <!-- service decln --> <service name="AddressBookService"> <!-- jms:propertyValue timeouts --> <port name="SOAPJMSPort1" binding="tns:SOAPJmsBinding1"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <!-- jms:property timeouts --> <port name="SOAPJMSPort2" binding="tns:SOAPJmsBinding2"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <!-- context timeouts --> <port name="SOAPJMSPort3" binding="tns:SOAPJmsBinding3"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <!-- wsif.properties timeouts --> <port name="SOAPJMSPort4" binding="tns:SOAPJmsBinding3"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <!-- jms:address jms:propertyValue --> <port name="SOAPJMSPort5" binding="tns:SOAPJmsBinding3"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> <jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="25000"/> <jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="27000"/> </jms:address> </port> <!-- context overiders jms:property --> <port name="SOAPJMSPort6" binding="tns:SOAPJmsBinding2"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> <jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="99000"/> <jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="99000"/> </jms:address> </port> <port name="NativeJmsPort1" binding="tns:NativeJmsBinding1"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <port name="NativeJmsPort2" binding="tns:NativeJmsBinding2"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <port name="NativeJmsPort3" binding="tns:NativeJmsBinding3"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <port name="NativeJmsPort4" binding="tns:NativeJmsBinding3"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> </jms:address> </port> <port name="NativeJmsPort5" binding="tns:NativeJmsBinding3"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> <jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="25000"/> <jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="27000"/> </jms:address> </port> <port name="NativeJmsPort6" binding="tns:NativeJmsBinding2"> <jms:address jndiDestinationName="NativeJmsRequestQueue" destinationStyle="queue" jndiConnectionFactoryName="WSIFSampleQCF" initialContextFactory="com.sun.jndi.fscontext.RefFSContextFactory" jndiProviderURL="file:///JNDI-Directory"> <jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="99000"/> <jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="99000"/> </jms:address> </port> </service> </definitions> 1.1 xml-axis-wsif/java/test/jms/JMSTimeoutTest.java Index: JMSTimeoutTest.java =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "WSIF" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 2001, 2002, International * Business Machines, Inc., http://www.apache.org. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package jms; import java.text.DateFormat; import java.util.Date; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.apache.wsif.WSIFConstants; import org.apache.wsif.WSIFCorrelationId; import org.apache.wsif.WSIFException; import org.apache.wsif.WSIFMessage; import org.apache.wsif.WSIFOperation; import org.apache.wsif.WSIFPort; import org.apache.wsif.WSIFService; import org.apache.wsif.WSIFServiceFactory; import org.apache.wsif.util.WSIFProperties; import util.AddressUtility; import util.TestUtilities; import addressbook.wsifservice.AddressBook; import addressbook.wsiftypes.Address; import addressbook.wsiftypes.Phone; import async.AsyncResponseHandler; /** * Junit test to test out the JMS sync and async timeouts. * This doesn't work so well yet and you have to run each test * manually and check the timeout is correct. the only way to * do this for async ops is to add a system.out.println to the * correlation service to show what timeout value its using. * * @author <a href="mailto:[EMAIL PROTECTED]">Ant Elder</a> */ public class JMSTimeoutTest extends TestCase { String wsdlLocation = TestUtilities.getWsdlPath("java\\test\\jms") + "Timeouts.wsdl"; private static final long sps1 = 7000; private static final long spa1 = 11000; private static final long sps2 = 12000; private static final long spa2 = 14000; private static final long sps3 = 15000; private static final long spa3 = 18000; private static final long sps4 = 3000; // wsif.properties private static final long spa4 = 10000; // wsif.properties private static final long sps5 = 25000; private static final long spa5 = 27000; private static final long sps6 = 15000; private static final long spa6 = 18000; public JMSTimeoutTest(String name) { super(name); } public static void main(String[] args) { // TestUtilities.startListeners(); <***** don't listen so it times out junit.textui.TestRunner.run(suite()); // TestUtilities.stopListeners(); } public static Test suite() { return new TestSuite(JMSTimeoutTest.class); } public void setUp() { TestUtilities.setUpExtensionsAndProviders(); } // public void testDynamicAxisJms1() { // doitDyn("SOAPJMSPort1", "soap"); // } //xxx public void testDynamicAxisJms2() { // doitDyn("SOAPJMSPort2", "soap"); // } // public void testDynamicAxisJms3() { // doitDyn("SOAPJMSPort3", "soap"); // } // public void testDynamicAxisJms4() { // doitDyn("SOAPJMSPort4", "soap"); // } // public void testDynamicAxisJms5() { // doitDyn("SOAPJMSPort5", "soap"); // } // public void testDynamicAxisJms6() { // doitDyn("SOAPJMSPort6", "soap"); // } // public void testDynamicAxisJms1() { // testAsyncOPs("SOAPJMSPort1", "soap"); // } // public void testDynamicAxisJms2() { // testAsyncOPs("SOAPJMSPort2", "soap"); // } // public void testDynamicAxisJms3() { // testAsyncOPs("SOAPJMSPort3", "soap"); // } // public void testDynamicAxisJms4() { // testAsyncOPs("SOAPJMSPort4", "soap"); // } // public void testDynamicAxisJms5() { // testAsyncOPs("SOAPJMSPort5", "soap"); // } // public void testDynamicAxisJms6() { // testAsyncOPs("SOAPJMSPort6", "soap"); // } // public void testDynamicAxisJms1() { // doitDyn("SOAPJMSPort1", "axis"); // } // public void testDynamicAxisJms2() { // doitDyn("SOAPJMSPort2", "axis"); // } // public void testDynamicAxisJms3() { // doitDyn("SOAPJMSPort3", "axis"); // } // public void testDynamicAxisJms4() { // doitDyn("SOAPJMSPort4", "axis"); // } // public void testDynamicAxisJms5() { // doitDyn("SOAPJMSPort5", "axis"); // } // public void testDynamicAxisJms6() { // doitDyn("SOAPJMSPort6", "axis"); // } // public void testDynamicAxisJms1() { // testAsyncOPs("SOAPJMSPort1", "axis"); // } // public void testDynamicAxisJms2() { // testAsyncOPs("SOAPJMSPort2", "axis"); // } // public void testDynamicAxisJms3() { // testAsyncOPs("SOAPJMSPort3", "axis"); // } // public void testDynamicAxisJms4() { // testAsyncOPs("SOAPJMSPort4", "axis"); // } // public void testDynamicAxisJms5() { // testAsyncOPs("SOAPJMSPort5", "axis"); // } public void testDynamicAxisJms6() { testAsyncOPs("SOAPJMSPort6", "axis"); } // public void testDynamicNativeJms() { // doitDyn("NativeJmsPort1", "" ); // } // public void testDynamicNativeJms() { // doitDyn("NativeJmsPort2", "" ); // } // public void testDynamicNativeJms() { // doitDyn("NativeJmsPort3", "" ); // } // public void testDynamicNativeJms() { // doitDyn("NativeJmsPort4", "" ); // } // public void testDynamicNativeJms() { // doitDyn("NativeJmsPort5", "" ); // } // public void testDynamicNativeJms() { // doitDyn("NativeJmsPort6", "" ); // } //public void testDynamicNativeJms() { // testAsyncOPs("NativeJmsPort1", ""); //} // public void testDynamicNativeJms() { // testAsyncOPs("NativeJmsPort2", "" ); // } // public void testDynamicNativeJms() { // testAsyncOPs("NativeJmsPort3", "" ); // } // public void testDynamicNativeJms() { // testAsyncOPs("NativeJmsPort4", "" ); // } // public void testDynamicNativeJms() { // testAsyncOPs("NativeJmsPort5", "" ); // } // public void testDynamicNativeJms() { // testAsyncOPs("NativeJmsPort6", "" ); // } private void doitDyn(String portName, String protocol) { if (portName.toUpperCase().indexOf("JMS") != -1 && !TestUtilities.areWeTesting("jms")) return; TestUtilities.setProviderForProtocol(protocol); try { WSIFServiceFactory factory = WSIFServiceFactory.newInstance(); WSIFService service = factory.getService( wsdlLocation, null, null, "http://wsifservice.addressbook/", "AddressBook"); service.mapType( new javax.xml.namespace.QName( "http://wsiftypes.addressbook/", "address"), Class.forName("addressbook.wsiftypes.Address")); service.mapType( new javax.xml.namespace.QName( "http://wsiftypes.addressbook/", "phone"), Class.forName("addressbook.wsiftypes.Phone")); WSIFPort port = service.getPort(portName); WSIFOperation operation = port.createOperation("getAddressFromName"); // Create the messages WSIFMessage inputMessage = operation.createInputMessage(); WSIFMessage outputMessage = operation.createOutputMessage(); WSIFMessage faultMessage = operation.createFaultMessage(); // Set the name to find in the addressbook String nameToLookup = "Chris P. Bacon"; inputMessage.setObjectPart("name", nameToLookup); if ("SOAPJMSPort2".equals(portName) || "NativeJmsPort2".equals(portName)) { inputMessage.setObjectPart("syncTimeout", "" + sps2); } if ("SOAPJMSPort3".equals(portName) || "NativeJmsPort3".equals(portName) || "SOAPJMSPort6".equals(portName) || "NativeJmsPort6".equals(portName)) { WSIFMessage context = operation.getContext(); context.setObjectPart( WSIFConstants.WSIF_PROP_SYNC_TIMEOUT, "" + sps3); operation.setContext(context); } // Execute the operation Date first = new Date(); boolean operationSucceeded = operation.executeRequestResponseOperation( inputMessage, outputMessage, faultMessage); if (operationSucceeded) { assertTrue("it didn't timeout!!", false); } else { Date second = new Date(); DateFormat df = DateFormat.getDateTimeInstance(); long diff = second.getTime() - first.getTime(); System.out.println("diff=" + diff); // assertTrue("lookup op failed!!", false); } } catch (Exception e) { e.printStackTrace(); assertTrue("exception running tests-" + e.getMessage(), false); } } private void testAsyncOPs(String portName, String protocol) { if (portName.toUpperCase().indexOf("JMS") != -1 && !TestUtilities.areWeTesting("jms")) return; TestUtilities.setProviderForProtocol(protocol); try { WSIFServiceFactory factory = WSIFServiceFactory.newInstance(); WSIFService service = factory.getService( wsdlLocation, null, null, "http://wsifservice.addressbook/", "AddressBook"); service.mapType( new javax.xml.namespace.QName( "http://wsiftypes.addressbook/", "address"), Class.forName("addressbook.wsiftypes.Address")); service.mapType( new javax.xml.namespace.QName( "http://wsiftypes.addressbook/", "phone"), Class.forName("addressbook.wsiftypes.Phone")); WSIFPort port = (portName == null) ? service.getPort() : service.getPort(portName); if (!port.supportsAsync()) { return; } WSIFOperation op = port.createOperation("getAddressFromName"); AsyncResponseHandler abHandler = new AsyncResponseHandler(1); // 1 async call WSIFMessage inMsg = op.createInputMessage(); inMsg.setObjectPart("name", "fred"); WSIFMessage outmsg = op.createOutputMessage(); WSIFMessage faultMsg = op.createFaultMessage(); WSIFMessage context = op.getContext(); context.setObjectPart( WSIFConstants.CONTEXT_JMS_PREFIX + "JMSReplyTo", TestUtilities.getWsifProperty("wsif.async.replytoq")); if ("SOAPJMSPort2".equals(portName) || "NativeJmsPort2".equals(portName)) { inMsg.setObjectPart("asyncTimeout", "" + spa2); } if ("SOAPJMSPort3".equals(portName) || "NativeJmsPort3".equals(portName) || "SOAPJMSPort6".equals(portName) || "NativeJmsPort6".equals(portName)) { context.setObjectPart( WSIFConstants.WSIF_PROP_ASYNC_TIMEOUT, "" + spa3); } op.setContext(context); WSIFCorrelationId id = op.executeRequestResponseAsync(inMsg, abHandler); assertTrue( "null correlation id returned from async request!", id != null); int i = 30; while (i-- > 0 && !abHandler.isDone()) { System.out.println("waiting for async responses - " + i); try { Thread.sleep(1000); } catch (InterruptedException ex) { } } } catch (Exception ex) { ex.printStackTrace(); assertTrue("exception making async request!!", false); } } /* Date first = new Date(); try { stub.addEntry(name, addr, deliveryMode); } catch (WSIFException we) { System.out.println("Caught expected " + we); caught = true; } assertTrue(caught); Date second = new Date(); DateFormat df = DateFormat.getDateTimeInstance(); System.out.println("first date was " + df.format(first)); System.out.println("second date was " + df.format(second)); // getTime() returns milliseconds. long firstTime = first.getTime(); long secondTime = second.getTime(); System.out.println("first time was " + firstTime); System.out.println("second time was " + secondTime); long timeout = WSIFProperties.getSyncTimeout(); assertTrue(firstTime<secondTime); assertTrue((secondTime-firstTime)>timeout); assertTrue((secondTime-firstTime)<(timeout*2)); */ }