You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/10/16 12:38:41 UTC

svn commit: r464442 - in /webservices/axis2/branches/java/1_1/modules: adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java kernel/src/org/apache/axis2/util/SchemaUtil.java xmlbeans/src/org/apache/axis2/xmlbeans/CodeGenerationUtility.java

Author: dims
Date: Mon Oct 16 03:38:30 2006
New Revision: 464442

URL: http://svn.apache.org/viewvc?view=rev&rev=464442
Log:
Fix for AXIS2-1291 - WSDL2Java should not create ExtensionMapper in package axis2.apache.org

Modified:
    webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
    webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java
    webservices/axis2/branches/java/1_1/modules/xmlbeans/src/org/apache/axis2/xmlbeans/CodeGenerationUtility.java

Modified: webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?view=diff&rev=464442&r1=464441&r2=464442
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java (original)
+++ webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java Mon Oct 16 03:38:30 2006
@@ -7,6 +7,7 @@
 import org.apache.axis2.schema.util.SchemaPropertyLoader;
 import org.apache.axis2.schema.writer.BeanWriter;
 import org.apache.axis2.util.URLProcessor;
+import org.apache.axis2.util.SchemaUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.commons.schema.XmlSchema;
@@ -228,6 +229,14 @@
                 //mapper namespace
                 for (int i = 0; nsp == null && i < schemalist.size(); i++) {
                     nsp = ((XmlSchema) schemalist.get(i)).getTargetNamespace();
+                    if (nsp != null)
+                        break;
+                    XmlSchema[] schemas = SchemaUtil.getAllSchemas((XmlSchema) schemalist.get(i));
+                    for (int j = 0; schemas != null && j < schemas.length; j++) {
+                        nsp = schemas[j].getTargetNamespace();
+                        if (nsp != null)
+                            break;
+                    }
                 }
                 if(nsp == null) {
                     nsp = URLProcessor.DEFAULT_PACKAGE;

Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java?view=diff&rev=464442&r1=464441&r2=464442
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java Mon Oct 16 03:38:30 2006
@@ -26,16 +26,50 @@
 import org.apache.ws.commons.schema.XmlSchemaParticle;
 import org.apache.ws.commons.schema.XmlSchemaSequence;
 import org.apache.ws.commons.schema.XmlSchemaType;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
+import org.apache.ws.commons.schema.XmlSchemaImport;
+import org.apache.ws.commons.schema.XmlSchemaInclude;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.xml.namespace.QName;
 import java.util.Iterator;
 import java.util.Map;
-
+import java.util.HashMap;
 /**
  * 
  */
 public class SchemaUtil {
+
+    public static XmlSchema[] getAllSchemas(XmlSchema schema) {
+        HashMap map = new HashMap();
+        traverseSchemas(schema, map);
+        return (XmlSchema[]) map.values().toArray(new XmlSchema[map.values().size()]);
+    }
+
+    private static void traverseSchemas(XmlSchema schema, HashMap map) {
+        String key = schema.getTargetNamespace() + ":" + schema.getSourceURI();
+        if (map.containsKey(key)) {
+            return;
+        }
+        map.put(key, schema);
+
+        XmlSchemaObjectCollection includes = schema.getIncludes();
+        if (includes != null) {
+            Iterator tempIterator = includes.getIterator();
+            while (tempIterator.hasNext()) {
+                Object o = tempIterator.next();
+                if (o instanceof XmlSchemaImport) {
+                    XmlSchema schema1 = ((XmlSchemaImport) o).getSchema();
+                    if (schema1 != null) traverseSchemas(schema1, map);
+                }
+                if (o instanceof XmlSchemaInclude) {
+                    XmlSchema schema1 = ((XmlSchemaInclude) o).getSchema();
+                    if (schema1 != null) traverseSchemas(schema1, map);
+                }
+            }
+        }
+    }
 
     /**
      * This method is designed for REST handling. Parameter of a REST request comes in the URL or in

Modified: webservices/axis2/branches/java/1_1/modules/xmlbeans/src/org/apache/axis2/xmlbeans/CodeGenerationUtility.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/xmlbeans/src/org/apache/axis2/xmlbeans/CodeGenerationUtility.java?view=diff&rev=464442&r1=464441&r2=464442
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/xmlbeans/src/org/apache/axis2/xmlbeans/CodeGenerationUtility.java (original)
+++ webservices/axis2/branches/java/1_1/modules/xmlbeans/src/org/apache/axis2/xmlbeans/CodeGenerationUtility.java Mon Oct 16 03:38:30 2006
@@ -21,6 +21,7 @@
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.util.URLProcessor;
 import org.apache.axis2.util.XMLUtils;
+import org.apache.axis2.util.SchemaUtil;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
@@ -128,7 +129,7 @@
                 XmlOptions options = new XmlOptions();
                 options.setLoadAdditionalNamespaces(
                         nameSpacesMap); //add the namespaces
-                XmlSchema[] allSchemas = getAllSchemas(schema);
+                XmlSchema[] allSchemas = SchemaUtil.getAllSchemas(schema);
                 for (int j = 0; j < allSchemas.length; j++) {
                     completeSchemaList.add(allSchemas[j]);
                 }
@@ -458,36 +459,6 @@
         return (SchemaDocument.Schema[])
                 uniqueSchemas.toArray(
                         new SchemaDocument.Schema[uniqueSchemas.size()]);
-    }
-
-    private static XmlSchema[] getAllSchemas(XmlSchema schema) {
-        HashMap map = new HashMap();
-        traverseSchemas(schema, map);
-        return (XmlSchema[]) map.values().toArray(new XmlSchema[map.values().size()]);
-    }
-
-    private static void traverseSchemas(XmlSchema schema, HashMap map) {
-        String key = schema.getTargetNamespace() + ":" + schema.getSourceURI();
-        if (map.containsKey(key)) {
-            return;
-        }
-        map.put(key, schema);
-
-        XmlSchemaObjectCollection includes = schema.getIncludes();
-        if (includes != null) {
-            Iterator tempIterator = includes.getIterator();
-            while (tempIterator.hasNext()) {
-                Object o = tempIterator.next();
-                if (o instanceof XmlSchemaImport) {
-                    XmlSchema schema1 = ((XmlSchemaImport) o).getSchema();
-                    if (schema1 != null) traverseSchemas(schema1, map);
-                }
-                if (o instanceof XmlSchemaInclude) {
-                    XmlSchema schema1 = ((XmlSchemaInclude) o).getSchema();
-                    if (schema1 != null) traverseSchemas(schema1, map);
-                }
-            }
-        }
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org