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


Reply via email to