axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From antel...@apache.org
Subject cvs commit: xml-axis-wsif/java/test/interop InteropDocTest.java
Date Tue, 21 Jan 2003 17:34:09 GMT
antelder    2003/01/21 09:34:09

  Modified:    java/src/org/apache/wsif/base WSIFClientProxy.java
               java/src/org/apache/wsif/providers/soap/apacheaxis
                        WSIFOperation_ApacheAxis.java
               java/src/org/apache/wsif WSIFConstants.java
               java/test/interop InteropDocTest.java
  Log:
  Bugzilla 15780 - part 2 of this fix enabling the forcing of the use of 'wrapped' to allow
stubs to work properly with wrapped  doc/lit.
  
  Revision  Changes    Path
  1.16      +27 -1     xml-axis-wsif/java/src/org/apache/wsif/base/WSIFClientProxy.java
  
  Index: WSIFClientProxy.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/base/WSIFClientProxy.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- WSIFClientProxy.java	3 Jan 2003 14:39:15 -0000	1.15
  +++ WSIFClientProxy.java	21 Jan 2003 17:34:08 -0000	1.16
  @@ -76,6 +76,7 @@
   import javax.wsdl.PortType;
   import javax.xml.namespace.QName;
   
  +import org.apache.wsif.WSIFConstants;
   import org.apache.wsif.WSIFException;
   import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFOperation;
  @@ -293,7 +294,13 @@
               Iterator partIt = inputParts.iterator();
               for (int argIndex = 0; partIt.hasNext(); argIndex++) {
                   Part part = (Part) partIt.next();
  -                String partName = part.getName();
  +                String partName;
  +                if (isWrappedInContext()) {
  +                    QName qn = part.getElementName();
  +                    partName = (qn == null) ? "" : qn.getLocalPart(); 
  +                } else {
  +                    partName = part.getName();
  +                }
                   wsifInputMessage.setObjectPart(partName, args[argIndex]);
               }
           }
  @@ -646,6 +653,25 @@
   			parts.remove(p);
   			parts.addAll(unWrappedParts);
   		}
  +	}
  +	
  +	private boolean isWrappedInContext() throws WSIFException {
  +        WSIFMessage context = wsifport.getContext();
  +        String style = null;
  +        try {
  +            style =
  +                (String) context.getObjectPart(
  +                    WSIFConstants.CONTEXT_OPERATION_STYLE);
  +        } catch (WSIFException e) {
  +        	Trc.ignoredException(e);
  +        }
  +        boolean wrappedInContext; 
  +        if (WSIFConstants.CONTEXT_OPERATION_STYLE_WRAPPED.equals(style)) {
  +        	wrappedInContext = true;
  +        } else {
  +        	wrappedInContext = false;
  +        }
  +		return wrappedInContext;
   	}
   
       public String deep() {
  
  
  
  1.68      +17 -2     xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java
  
  Index: WSIFOperation_ApacheAxis.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- WSIFOperation_ApacheAxis.java	21 Jan 2003 12:05:05 -0000	1.67
  +++ WSIFOperation_ApacheAxis.java	21 Jan 2003 17:34:09 -0000	1.68
  @@ -1450,8 +1450,22 @@
        *          the unwrapped SOAP parts, otherwise false
        */
   	private boolean isInputMessageUnWrapped(WSIFMessage msg) {
  -		boolean unWrapped = (inputUnwrappedSOAPParts != null);
  -		if (unWrapped) {
  +		boolean unWrapped = true;
  +
  +        Object style = null; 
  +        try {
  +            WSIFMessage context = getContext();
  +    	    style = context.getObjectPart(WSIFConstants.CONTEXT_OPERATION_STYLE);
  +        } catch (WSIFException e) {
  +            Trc.ignoredException(e);
  +        }
  +        if (WSIFConstants.CONTEXT_OPERATION_STYLE_WRAPPED.equals(style)) {
  +           	unWrapped = true;
  +        } else if (WSIFConstants.CONTEXT_OPERATION_STYLE_UNWRAPPED.equals(style)) {
  +           	unWrapped = false;
  +        } else if (inputUnwrappedSOAPParts != null 
  +        && inputUnwrappedSOAPParts.size() > 0) {
  +           	unWrapped = true;
   			for (Iterator i=inputUnwrappedSOAPParts.iterator(); i.hasNext() && unWrapped;
) {
                   Part p = (Part) i.next();
   				try {
  @@ -1461,6 +1475,7 @@
   				}
   			}
   		}
  +
   		return unWrapped;
   	}
   
  
  
  
  1.17      +18 -0     xml-axis-wsif/java/src/org/apache/wsif/WSIFConstants.java
  
  Index: WSIFConstants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/WSIFConstants.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- WSIFConstants.java	20 Jan 2003 13:53:55 -0000	1.16
  +++ WSIFConstants.java	21 Jan 2003 17:34:09 -0000	1.17
  @@ -149,6 +149,24 @@
       public static final String CONTEXT_JMS_PREFIX = "JMSProperty.";
   
       /**
  +     *  WSIF context part name for the AXIS operation style  
  +     */
  +    public static final String CONTEXT_OPERATION_STYLE =
  +        "org.apache.wsif.axis.operationStyle";
  +
  +    /**
  +     *  WSIF context value for AXIS wrapped operation style  
  +     */
  +    public static final String CONTEXT_OPERATION_STYLE_WRAPPED =
  +        "wrapped";
  +
  +    /**
  +     *  WSIF context value for AXIS unwrapped operation style  
  +     */
  +    public static final String CONTEXT_OPERATION_STYLE_UNWRAPPED =
  +        "unwrapped";
  +
  +    /**
        *  SOAP faults WSIFMessage part name for the fault code
        */
       public static final String SOAP_FAULT_MSG_NAME =
  
  
  
  1.4       +185 -12   xml-axis-wsif/java/test/interop/InteropDocTest.java
  
  Index: InteropDocTest.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/test/interop/InteropDocTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- InteropDocTest.java	3 Jan 2003 14:55:36 -0000	1.3
  +++ InteropDocTest.java	21 Jan 2003 17:34:09 -0000	1.4
  @@ -57,29 +57,24 @@
   
   package interop;
   
  -import interop.wsifserviceWrapped.ArrayOfSimpleDocument;
  -import interop.wsifserviceWrapped.ChildDocument;
  -import interop.wsifserviceWrapped.ComplexDocument_Type;
  -import interop.wsifserviceWrapped.Doc_TestPortType;
  -import interop.wsifserviceWrapped.SimpleDocument_Type;
  -import interop.wsifserviceWrapped.SingleTagResponse;
  -import interop.wsifserviceWrapped.SingleTag_ElemType;
  -import interop.wsifserviceWrapped.SingleTag_Type;
  -import java.io.StringWriter;
  +import interop.wsifservice.ArrayOfSimpleDocument;
  +import interop.wsifservice.ChildDocument;
  +import interop.wsifservice.ComplexDocument_Type;
  +import interop.wsifservice.Doc_TestPortType;
  +import interop.wsifservice.SimpleDocument_Type;
  +import interop.wsifservice.SingleTag_Type;
   
   import junit.framework.Test;
   import junit.framework.TestCase;
   import junit.framework.TestSuite;
   
  +import org.apache.wsif.WSIFConstants;
   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.xml.serialize.OutputFormat;
  -import org.apache.xml.serialize.XMLSerializer;
  -import org.w3c.dom.Element;
   import util.TestUtilities;
   
   /**
  @@ -132,6 +127,15 @@
   	public void testComplexDocumentDII() {
   		doitComplexDocumentDII("interopDocPort", "axis");
   	}
  +	public void testSingleTagStub() {
  +		doitSingleTagStub("interopDocPort", "axis");
  +	}
  +	public void testSimpleDocumentStub() {
  +		doitSimpleDocumentStub("interopDocPort", "axis");
  +	}
  +	public void testComplexDocumentStub() {
  +		doitComplexDocumentStub("interopDocPort", "axis");
  +	}
   
   	private void doitSingleTagDII(String portName, String protocol) {
   		if (portName.toUpperCase().indexOf("JMS") != -1
  @@ -337,6 +341,175 @@
   			    "response part has wrong type: " + o.getClass(), 
   			    ComplexDocument_Type.class.isAssignableFrom(o.getClass()));
   			checkComplexDocument((ComplexDocument_Type)o);
  +
  +		} catch (Exception ex) {
  +			ex.printStackTrace();
  +			assertTrue(
  +				"InteropDocTest.doitComplexDocumentDII("
  +					+ portName
  +					+ ") caught exception "
  +					+ ex.getLocalizedMessage(),
  +				false);
  +		}
  +	}
  +
  +	private void doitSingleTagStub(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://soapinterop.org/",
  +					"Doc_TestPortType");
  +
  +            service.mapPackage("http://soapinterop.org/", "interop.wsifservice");
  +
  +            service.mapType(
  +               new javax.xml.namespace.QName(
  +                   "http://soapinterop.org/", 
  +                   "SingleTag"),
  +               SingleTag_Type.class );
  +
  +            // force to use a 'wrapped' type operation
  +            WSIFMessage context = service.getContext();
  +            context.setObjectPart(WSIFConstants.CONTEXT_OPERATION_STYLE, WSIFConstants.CONTEXT_OPERATION_STYLE_WRAPPED);
  +            service.setContext(context);
  +
  +            Doc_TestPortType stub = (Doc_TestPortType) service.getStub(portName, Doc_TestPortType.class);
  +
  +            SingleTag_Type stet = new SingleTag_Type();
  +
  +            SingleTag_Type response = stub.singleTag(stet);
  +
  +			assertNotNull("response is null!!!", response);
  +
  +		} catch (Exception ex) {
  +			ex.printStackTrace();
  +			assertTrue(
  +				"InteropDocTest.doitSingleTagDII("
  +					+ portName
  +					+ ") caught exception "
  +					+ ex.getLocalizedMessage(),
  +				false);
  +		}
  +	}
  +
  +	private void doitSimpleDocumentStub(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://soapinterop.org/",
  +					"Doc_TestPortType");
  +
  +            service.mapPackage("http://soapinterop.org/", "interop.wsifservice");
  +
  +            service.mapType(
  +               new javax.xml.namespace.QName(
  +                   "http://soapinterop.org/", 
  +                   "SimpleDocument"),
  +               SimpleDocument_Type.class );
  +
  +            // force to use a 'wrapped' type operation
  +            WSIFMessage context = service.getContext();
  +            context.setObjectPart(WSIFConstants.CONTEXT_OPERATION_STYLE, WSIFConstants.CONTEXT_OPERATION_STYLE_WRAPPED);
  +            service.setContext(context);
  +
  +            Doc_TestPortType stub = (Doc_TestPortType) service.getStub(portName, Doc_TestPortType.class);
  +
  +            SimpleDocument_Type sdt = new SimpleDocument_Type();
  +            sdt.setValue("petra");
  +
  +            SimpleDocument_Type response = stub.simpleDocument(sdt);
  +
  +			assertNotNull("response is null!!!", response);
  +
  +			assertTrue(
  +			    "simpleDocument value wrong: " + response.getValue(), 
  +			    sdt.getValue().equals(response.getValue()));
  +
  +		} catch (Exception ex) {
  +			ex.printStackTrace();
  +			assertTrue(
  +				"InteropDocTest.doitSimpleDocumentDII("
  +					+ portName
  +					+ ") caught exception "
  +					+ ex.getLocalizedMessage(),
  +				false);
  +		}
  +	}
  +
  +	private void doitComplexDocumentStub(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://soapinterop.org/",
  +					"Doc_TestPortType");
  +
  +            service.mapPackage("http://soapinterop.org/", "interop.wsifservice");
  +
  +            service.mapType(
  +               new javax.xml.namespace.QName(
  +                   "http://soapinterop.org/", 
  +                   "ComplexDocument"),
  +               ComplexDocument_Type.class );
  +            service.mapType(
  +               new javax.xml.namespace.QName(
  +                   "http://soapinterop.org/", 
  +                   "ArrayOfSimpleDocument"),
  +               ArrayOfSimpleDocument.class );
  +            service.mapType(
  +               new javax.xml.namespace.QName(
  +                   "http://soapinterop.org/", 
  +                   "SimpleDocument"),
  +               SimpleDocument_Type.class );
  +            service.mapType(
  +               new javax.xml.namespace.QName(
  +                   "http://soapinterop.org/", 
  +                   "ChildDocument"),
  +               ChildDocument.class );
  +
  +            // force to use a 'wrapped' type operation
  +            WSIFMessage context = service.getContext();
  +            context.setObjectPart(WSIFConstants.CONTEXT_OPERATION_STYLE, WSIFConstants.CONTEXT_OPERATION_STYLE_WRAPPED);
  +            service.setContext(context);
  +
  +            Doc_TestPortType stub = (Doc_TestPortType) service.getStub(portName, Doc_TestPortType.class);
  +
  +            ComplexDocument_Type cdt = makeComplexDocument();
  +            checkComplexDocument(cdt);
  +                        
  +            ComplexDocument_Type response = stub.complexDocument(cdt);
  +			assertNotNull("response is null!!!", response);
  +
  +			checkComplexDocument(response);
   
   		} catch (Exception ex) {
   			ex.printStackTrace();
  
  
  

Mime
View raw message