Hi dims:

I am pretty uncomfortable with this. First off, "typemappingVersion=1.3" doesn't really mean anything, whereas "jaxrpc11Compliance" is pretty clear as to what's intended. Second, is it really true that the ONLY thing that we will need to do for JAX-RPC compliance is affect the typemapping?

I'd still greatly prefer the "JAX-RPC mode" flag, settable via command line options on the tools and also via WSDD for the engines.

Sorry I haven't had time to look into these latest changes more deeply - we have another full day of WSDL meetings today in Melbourne, and I've got a lunch meeting too, but I'll try to start looking into this on the plane to Sydney tonight.

--Glen

----- Original Message ----- From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 21, 2005 1:18 AM
Subject: cvs commit: ws-axis/java/src/org/apache/axis/deployment/wsdd WSDDService.java



dims        2005/01/20 06:18:06

Modified: java/src/org/apache/axis AxisEngine.java
java/src/org/apache/axis/encoding
DefaultTypeMappingImpl.java
TypeMappingRegistryImpl.java
java/src/org/apache/axis/wsdl/toJava Emitter.java
JavaDeployWriter.java JavaServiceImplWriter.java
java/src/org/apache/axis/wsdl Java2WSDL.java
java/src/org/apache/axis/client Service.java
java/src/org/apache/axis/deployment/wsdd WSDDService.java
Log:
- Eliminate the axis.jaxrpc11Compliance flag
- Support typeMappingVersion setting per service
- At codegen time, add more information in deploy.wsdd and Locator for setting typemappingversion


 Notes:
 - Glen/Tom, PLEASE review the code.
 - Still check/need to fix wrong xsi:types at runtime for JAXRPC11
 - Need to run TCK.

 Revision  Changes    Path
 1.118     +0 -13     ws-axis/java/src/org/apache/axis/AxisEngine.java

 Index: AxisEngine.java
 ===================================================================
 RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/AxisEngine.java,v
 retrieving revision 1.117
 retrieving revision 1.118
 diff -u -r1.117 -r1.118
 --- AxisEngine.java 10 Jan 2005 19:02:30 -0000 1.117
 +++ AxisEngine.java 20 Jan 2005 14:18:05 -0000 1.118
 @@ -120,19 +120,6 @@
       */
      private ArrayList actorURIs = new ArrayList();

- /** Are we in JAX-RPC 1.1 compatibility mode? */
- public static boolean jaxrpc11Compliance = false;
- static {
- try {
- // We check a system property, but we can use use switches
- // to control this in WSDL2Java and at runtime.
- jaxrpc11Compliance =
- System.getProperty("axis.jaxrpc11Compliance", "false")
- .equalsIgnoreCase("true");
- } catch (Throwable t) {
- }
- }
-
/**
* Thread local storage used for locating the active message context.
* This information is only valid for the lifetime of this request.




1.86 +3 -8 ws-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java

Index: DefaultTypeMappingImpl.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -r1.85 -r1.86
--- DefaultTypeMappingImpl.java 18 Jan 2005 03:38:02 -0000 1.85
+++ DefaultTypeMappingImpl.java 20 Jan 2005 14:18:05 -0000 1.86
@@ -17,7 +17,6 @@
package org.apache.axis.encoding;


  import org.apache.axis.Constants;
 -import org.apache.axis.AxisEngine;
  import org.apache.axis.attachments.OctetStream;
  import org.apache.axis.encoding.ser.ArrayDeserializerFactory;
  import org.apache.axis.encoding.ser.ArraySerializerFactory;
 @@ -27,6 +26,8 @@
  import org.apache.axis.encoding.ser.BeanSerializerFactory;
  import org.apache.axis.encoding.ser.DateDeserializerFactory;
  import org.apache.axis.encoding.ser.DateSerializerFactory;
 +import org.apache.axis.encoding.ser.DocumentDeserializerFactory;
 +import org.apache.axis.encoding.ser.DocumentSerializerFactory;
  import org.apache.axis.encoding.ser.ElementDeserializerFactory;
  import org.apache.axis.encoding.ser.ElementSerializerFactory;
  import org.apache.axis.encoding.ser.HexDeserializerFactory;
 @@ -41,8 +42,6 @@
  import org.apache.axis.encoding.ser.SimpleSerializerFactory;
  import org.apache.axis.encoding.ser.VectorDeserializerFactory;
  import org.apache.axis.encoding.ser.VectorSerializerFactory;
 -import org.apache.axis.encoding.ser.DocumentDeserializerFactory;
 -import org.apache.axis.encoding.ser.DocumentSerializerFactory;
  import org.apache.axis.schema.SchemaVersion;
  import org.apache.axis.types.HexBinary;
  import org.apache.axis.utils.JavaUtils;
 @@ -82,11 +81,7 @@
       */
      public static synchronized TypeMapping getSingleton() {
          if (tm == null) {
 -            if(AxisEngine.jaxrpc11Compliance) {
 -                tm = new DefaultJAXRPC11TypeMappingImpl();
 -            } else {
 -                tm = new DefaultTypeMappingImpl();
 -            }
 +            tm = new DefaultTypeMappingImpl();
          }
          return tm;
      }



1.27 +9 -1 ws-axis/java/src/org/apache/axis/encoding/TypeMappingRegistryImpl.java

Index: TypeMappingRegistryImpl.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/TypeMappingRegistryImpl.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- TypeMappingRegistryImpl.java 25 Feb 2004 14:02:36 -0000 1.26
+++ TypeMappingRegistryImpl.java 20 Jan 2005 14:18:05 -0000 1.27
@@ -130,7 +130,15 @@
private HashMap mapTM; // Type Mappings keyed with Namespace URI
private TypeMapping defaultDelTM; // Delegate to default Type Mapping


-
+ /**
+ * Construct TypeMappingRegistry
+ * @param tm
+ */
+ public TypeMappingRegistryImpl(TypeMapping tm) {
+ mapTM = new HashMap();
+ defaultDelTM = tm;
+ register(Constants.URI_SOAP11_ENC, new DefaultSOAPEncodingTypeMappingImpl());
+ }


      /**
       * Construct TypeMappingRegistry



1.78 +10 -3 ws-axis/java/src/org/apache/axis/wsdl/toJava/Emitter.java

Index: Emitter.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/toJava/Emitter.java,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- Emitter.java 18 Jan 2005 03:38:03 -0000 1.77
+++ Emitter.java 20 Jan 2005 14:18:05 -0000 1.78
@@ -15,12 +15,11 @@
*/
package org.apache.axis.wsdl.toJava;


 +import org.apache.axis.encoding.DefaultJAXRPC11TypeMappingImpl;
  import org.apache.axis.encoding.DefaultSOAPEncodingTypeMappingImpl;
 -import org.apache.axis.encoding.TypeMapping;
  import org.apache.axis.encoding.DefaultTypeMappingImpl;
 -import org.apache.axis.encoding.DefaultJAXRPC11TypeMappingImpl;
 +import org.apache.axis.encoding.TypeMapping;
  import org.apache.axis.enum.Scope;
 -import org.apache.axis.enum.Use;
  import org.apache.axis.i18n.Messages;
  import org.apache.axis.utils.ClassUtils;
  import org.apache.axis.utils.JavaUtils;
 @@ -749,6 +748,13 @@
      }    // getNStoPkgFromPropsFile

/**
+ * Get the typemapping version
+ */
+ public String getTypeMappingVersion() {
+ return typeMappingVersion;
+ }
+
+ /**
* Method setTypeMappingVersion
*
* @param typeMappingVersion
@@ -766,6 +772,7 @@
} else {
throw new RuntimeException(org.apache.axis.utils.Messages.getMessage("j2wBadTypeMapping00"));
}
+ this.typeMappingVersion = typeMappingVersion;
setDefaultTypeMapping(defaultTM);
}
baseTypeMapping = new BaseTypeMapping() {




1.87 +10 -2 ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java

Index: JavaDeployWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -r1.86 -r1.87
--- JavaDeployWriter.java 6 Jul 2004 23:19:40 -0000 1.86
+++ JavaDeployWriter.java 20 Jan 2005 14:18:05 -0000 1.87
@@ -47,11 +47,11 @@
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
-import java.util.HashMap;


  /**
   * This is Wsdl2java's deploy Writer.  It writes the deploy.wsdd file.
 @@ -64,6 +64,9 @@
      /** Field symbolTable */
      protected SymbolTable symbolTable;

 +    /** Field emitter */
 +    protected Emitter emitter;
 +
      /**
       * Constructor.
       *
 @@ -75,7 +78,8 @@
                              SymbolTable symbolTable) {

          super(emitter, "deploy");
 -
 +
 +        this.emitter = emitter;
          this.definition = definition;
          this.symbolTable = symbolTable;
      }    // ctor
 @@ -400,6 +404,10 @@

pw.println(" <parameter name=\"className\" value=\"" + className
+ "\"/>");
+
+ pw.println(" <parameter name=\"typeMappingVersion\" value=\""
+ + emitter.getTypeMappingVersion() + "\"/>");
+
pw.println(" <parameter name=\"wsdlPortType\" value=\""
+ binding.getPortType().getQName().getLocalPart() + "\"/>");





1.43 +3 -2 ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaServiceImplWriter.java


Index: JavaServiceImplWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaServiceImplWriter.java,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- JavaServiceImplWriter.java 21 Dec 2004 20:17:01 -0000 1.42
+++ JavaServiceImplWriter.java 20 Jan 2005 14:18:05 -0000 1.43
@@ -27,8 +27,6 @@
import javax.wsdl.Port;
import javax.wsdl.Service;
import javax.xml.namespace.QName;
-import javax.xml.rpc.ServiceException;
-
import java.io.IOException;
import java.io.PrintWriter;
import java.net.MalformedURLException;
@@ -278,6 +276,7 @@
pw.println();
pw.println(" public " + Utils.getJavaLocalName(sEntry.getName())
+ "Locator() {");
+ pw.println(" setTypeMappingVersion(\"" + emitter.getTypeMappingVersion() + "\");");
pw.println(" }");
pw.println();


@@ -286,6 +285,7 @@
pw.println(" public " + Utils.getJavaLocalName(sEntry.getName())
+ "Locator(org.apache.axis.EngineConfiguration config) {");
pw.println(" super(config);");
+ pw.println(" setTypeMappingVersion(\"" + emitter.getTypeMappingVersion() + "\");");
pw.println(" }");


//Write a constructor that accepts String wsdl location + Service QName
@@ -294,6 +294,7 @@
+ "Locator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) "
+ "throws " + javax.xml.rpc.ServiceException.class.getName() + " {");
pw.println(" super(wsdlLoc, sName);");
+ pw.println(" setTypeMappingVersion(\"" + emitter.getTypeMappingVersion() + "\");");
pw.println(" }");
}





1.47 +0 -3 ws-axis/java/src/org/apache/axis/wsdl/Java2WSDL.java

Index: Java2WSDL.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/Java2WSDL.java,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- Java2WSDL.java 18 Jan 2005 03:38:03 -0000 1.46
+++ Java2WSDL.java 20 Jan 2005 14:18:05 -0000 1.47
@@ -15,9 +15,6 @@
*/
package org.apache.axis.wsdl;


 -import org.apache.axis.encoding.DefaultSOAPEncodingTypeMappingImpl;
 -import org.apache.axis.encoding.DefaultTypeMappingImpl;
 -import org.apache.axis.encoding.DefaultJAXRPC11TypeMappingImpl;
  import org.apache.axis.utils.CLArgsParser;
  import org.apache.axis.utils.CLOption;
  import org.apache.axis.utils.CLOptionDescriptor;



 1.102     +48 -26    ws-axis/java/src/org/apache/axis/client/Service.java

Index: Service.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/client/Service.java,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -r1.101 -r1.102
--- Service.java 24 Nov 2004 17:09:29 -0000 1.101
+++ Service.java 20 Jan 2005 14:18:06 -0000 1.102
@@ -16,19 +16,21 @@


  package org.apache.axis.client;

 -import java.io.InputStream;
 -import java.io.Serializable;
 -import java.lang.reflect.Constructor;
 -import java.lang.reflect.Proxy;
 -import java.net.MalformedURLException;
 -import java.net.URL;
 -import java.rmi.Remote;
 -import java.util.HashMap;
 -import java.util.Hashtable;
 -import java.util.Iterator;
 -import java.util.List;
 -import java.util.Map;
 -import java.util.Vector;
 +import org.apache.axis.AxisEngine;
 +import org.apache.axis.EngineConfiguration;
 +import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
 +import org.apache.axis.encoding.DefaultJAXRPC11TypeMappingImpl;
 +import org.apache.axis.encoding.DefaultSOAPEncodingTypeMappingImpl;
 +import org.apache.axis.encoding.DefaultTypeMappingImpl;
 +import org.apache.axis.utils.ClassUtils;
 +import org.apache.axis.utils.Messages;
 +import org.apache.axis.utils.WSDLUtils;
 +import org.apache.axis.utils.XMLUtils;
 +import org.apache.axis.wsdl.gen.Parser;
 +import org.apache.axis.wsdl.symbolTable.BindingEntry;
 +import org.apache.axis.wsdl.symbolTable.ServiceEntry;
 +import org.apache.axis.wsdl.symbolTable.SymbolTable;
 +import org.w3c.dom.Document;

  import javax.naming.Reference;
  import javax.naming.Referenceable;
 @@ -40,21 +42,22 @@
  import javax.wsdl.extensions.soap.SOAPAddress;
  import javax.xml.namespace.QName;
  import javax.xml.rpc.ServiceException;
 +import javax.xml.rpc.encoding.TypeMapping;
  import javax.xml.rpc.encoding.TypeMappingRegistry;
  import javax.xml.rpc.handler.HandlerRegistry;
 -
 -import org.apache.axis.AxisEngine;
 -import org.apache.axis.EngineConfiguration;
 -import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
 -import org.apache.axis.utils.ClassUtils;
 -import org.apache.axis.utils.Messages;
 -import org.apache.axis.utils.WSDLUtils;
 -import org.apache.axis.utils.XMLUtils;
 -import org.apache.axis.wsdl.gen.Parser;
 -import org.apache.axis.wsdl.symbolTable.BindingEntry;
 -import org.apache.axis.wsdl.symbolTable.ServiceEntry;
 -import org.apache.axis.wsdl.symbolTable.SymbolTable;
 -import org.w3c.dom.Document;
 +import java.io.InputStream;
 +import java.io.Serializable;
 +import java.lang.reflect.Constructor;
 +import java.lang.reflect.Proxy;
 +import java.net.MalformedURLException;
 +import java.net.URL;
 +import java.rmi.Remote;
 +import java.util.HashMap;
 +import java.util.Hashtable;
 +import java.util.Iterator;
 +import java.util.List;
 +import java.util.Map;
 +import java.util.Vector;

/**
* Axis' JAXRPC Dynamic Invoation Interface implementation of the Service
@@ -898,4 +901,23 @@
return (Transport) transportImpls.get(url.toString());
}


+ /**
+ * Set the typemapping version
+ * @param version
+ */
+ public void setTypeMappingVersion(String version) {
+ TypeMapping tm = null;
+ if (version.equals("1.0")) {
+ tm = DefaultSOAPEncodingTypeMappingImpl.create();
+ } else if (version.equals("1.1")) {
+ tm = DefaultTypeMappingImpl.getSingleton();
+ } else if (version.equals("1.2")) {
+ tm = DefaultSOAPEncodingTypeMappingImpl.createWithDelegate();
+ } else if (version.equals("1.3")) {
+ tm = DefaultJAXRPC11TypeMappingImpl.createWithDelegate();
+ } else {
+ throw new RuntimeException(org.apache.axis.utils.Messages.getMessage("j2wBadTypeMapping00"));
+ }
+ getTypeMappingRegistry().registerDefault(tm);
+ }
}




1.108 +26 -3 ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java

Index: WSDDService.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -r1.107 -r1.108
--- WSDDService.java 25 May 2004 19:41:44 -0000 1.107
+++ WSDDService.java 20 Jan 2005 14:18:06 -0000 1.108
@@ -27,6 +27,9 @@
import org.apache.axis.attachments.AttachmentsImpl;
import org.apache.axis.description.JavaServiceDesc;
import org.apache.axis.description.ServiceDesc;
+import org.apache.axis.encoding.DefaultJAXRPC11TypeMappingImpl;
+import org.apache.axis.encoding.DefaultSOAPEncodingTypeMappingImpl;
+import org.apache.axis.encoding.DefaultTypeMappingImpl;
import org.apache.axis.encoding.DeserializerFactory;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.encoding.SerializerFactory;
@@ -48,9 +51,9 @@
import javax.xml.namespace.QName;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;
-import java.util.List;


  /**
   * A service represented in WSDD.
 @@ -240,7 +243,7 @@
          // If not created, construct a tmr
          // and populate it with the type mappings.
          if (tmr == null) {
 -            tmr = new TypeMappingRegistryImpl();
 +            createTMR();
              for (int i=0; i<typeMappings.size(); i++) {
                  deployTypeMapping((WSDDTypeMapping)
                                    typeMappings.get(i));
 @@ -248,6 +251,26 @@
          }
      }

+ private void createTMR() {
+ String version = getParameter("typeMappingVersion");
+ if(version != null) {
+ TypeMapping tm = null;
+ if (version.equals("1.0")) {
+ tm = DefaultSOAPEncodingTypeMappingImpl.create();
+ } else if (version.equals("1.1")) {
+ tm = DefaultTypeMappingImpl.getSingleton();
+ } else if (version.equals("1.2")) {
+ tm = DefaultSOAPEncodingTypeMappingImpl.createWithDelegate();
+ } else if (version.equals("1.3")) {
+ tm = DefaultJAXRPC11TypeMappingImpl.createWithDelegate();
+ } else {
+ throw new RuntimeException(org.apache.axis.utils.Messages.getMessage("j2wBadTypeMapping00"));
+ }
+ tmr = new TypeMappingRegistryImpl(tm);
+ } else {
+ tmr = new TypeMappingRegistryImpl();
+ }
+ }


/**
* This method can be used for dynamic deployment using new WSDDService()
@@ -500,7 +523,7 @@
typeMappings.add(mapping);
}
if (tmr == null) {
- tmr = new TypeMappingRegistryImpl();
+ createTMR();
}
try {
// Get the encoding style from the mapping, if it isn't set






Reply via email to