You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2007/06/04 06:47:42 UTC

svn commit: r544049 - in /webservices/axis2/trunk/java/modules: java2wsdl/src/org/apache/ws/java2wsdl/ java2wsdl/src/org/apache/ws/java2wsdl/utils/ kernel/src/org/apache/axis2/deployment/util/ kernel/src/org/apache/axis2/description/ kernel/src/org/apa...

Author: dims
Date: Sun Jun  3 21:47:40 2007
New Revision: 544049

URL: http://svn.apache.org/viewvc?view=rev&rev=544049
Log:
Thinking about adding a JAXB-RI based Schema Generator, so starting down the path of making the SchemaGenerator pluggable by introducing an interface.


Added:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java   (contents, props changed)
      - copied, changed from r544041, webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java
Modified:
    webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java
    webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java
    webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLTask.java
    webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java

Modified: webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java?view=diff&rev=544049&r1=544048&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java Sun Jun  3 21:47:40 2007
@@ -2,10 +2,11 @@
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
-import org.apache.axis2.description.java2wsdl.SchemaGenerator;
+import org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator;
 import org.apache.axis2.description.java2wsdl.NamespaceGenerator;
 import org.apache.axis2.description.java2wsdl.DefaultNamespaceGenerator;
 import org.apache.axis2.description.java2wsdl.Java2WSDLUtils;
+import org.apache.axis2.description.java2wsdl.SchemaGenerator;
 import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.AxisService2WSDL11;
@@ -18,9 +19,9 @@
 
 import java.io.OutputStream;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Map;
 import java.util.HashMap;
+
 /*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
@@ -66,6 +67,7 @@
     private Map pkg2nsMap = null;
     private boolean pretty = true;
     private String wsdlVersion = WSDL_VERSION_1;
+    private String schemaGenClassName = null;
 
     public String getSchemaTargetNamespace() throws Exception {
         if ( schemaTargetNamespace == null ) {
@@ -165,7 +167,7 @@
      * @throws Exception
      */
     public void generateWSDL() throws Exception {
-        SchemaGenerator schemaGenerator = new SchemaGenerator(classLoader,
+        SchemaGenerator schemaGenerator = resolveSchemaGen(classLoader,
                                                     className,
                                                     getSchemaTargetNamespace(), 
                                                     getSchemaTargetNamespacePrefix());
@@ -272,6 +274,14 @@
         this.nsGenClassName = nsGenClassName;
     }
 
+    public String getSchemaGenClassName() {
+        return schemaGenClassName;
+    }
+
+    public void setSchemaGenClassName(String schemaGenClassName) {
+        this.schemaGenClassName = schemaGenClassName;
+    }
+
     public Map getPkg2nsMap() {
         return pkg2nsMap;
     }
@@ -292,6 +302,24 @@
             }
         }
         return nsGen;
+    }
+
+    private SchemaGenerator resolveSchemaGen(ClassLoader loader, String className,
+                           String schematargetNamespace,
+                           String schematargetNamespacePrefix) throws Exception {
+        SchemaGenerator schemaGen = null;
+        if(this.schemaGenClassName == null){
+            schemaGen = new DefaultSchemaGenerator(loader, className, schematargetNamespace, schematargetNamespacePrefix);
+        } else {
+            try {
+                schemaGen = (DefaultSchemaGenerator) Class.forName(this.nsGenClassName).getConstructor(
+                        new Class[]{ClassLoader.class, String.class, String.class, String.class}).newInstance(
+                            new Object[]{loader, className, schematargetNamespace, schematargetNamespacePrefix});
+            } catch ( Exception e ) {
+                schemaGen = new DefaultSchemaGenerator(loader, className, schematargetNamespace, schematargetNamespacePrefix);
+            }
+        }
+        return schemaGen;
     }
 
     public boolean isPretty() {

Modified: webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java?view=diff&rev=544049&r1=544048&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java (original)
+++ webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java Sun Jun  3 21:47:40 2007
@@ -193,6 +193,12 @@
             java2WsdlBuilder.setNsGenClassName(option.getOptionValue());
         }
         
+        option = loadOption(Java2WSDLConstants.SCHEMA_GENERATOR_OPTION,
+                            Java2WSDLConstants.SCHEMA_GENERATOR_OPTION_LONG, optionsMap);
+        if ( option != null ) {
+            java2WsdlBuilder.setSchemaGenClassName(option.getOptionValue());
+        }
+
         option = loadOption(Java2WSDLConstants.JAVA_PKG_2_NSMAP_OPTION,
                             Java2WSDLConstants.JAVA_PKG_2_NSMAP_OPTION_LONG, optionsMap);
         java2WsdlBuilder.setPkg2nsMap(loadJavaPkg2NamespaceMap(option));

Modified: webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLTask.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLTask.java?view=diff&rev=544049&r1=544048&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLTask.java (original)
+++ webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLTask.java Sun Jun  3 21:47:40 2007
@@ -62,6 +62,8 @@
     private ArrayList pkg2nsMappings = new ArrayList();
 
     private MappingSet mappings = new MappingSet();
+    
+    private String schemaGenClassName = null;
 
     public String getLocationUri() {
         return locationUri;
@@ -177,6 +179,10 @@
                 Java2WSDLConstants.NAMESPACE_GENERATOR_OPTION,
                 getNsGenClassName());
 
+        addToOptionMap(optionMap,
+                Java2WSDLConstants.SCHEMA_GENERATOR_OPTION,
+                getSchemaGenClassName());
+
         loadPkg2NsMap();
         addToOptionMap(optionMap,
                 Java2WSDLConstants.JAVA_PKG_2_NSMAP_OPTION,
@@ -343,6 +349,14 @@
 
     public void setNsGenClassName(String nsGenClassName) {
         this.nsGenClassName = nsGenClassName;
+    }
+
+    public String getSchemaGenClassName() {
+        return schemaGenClassName;
+    }
+
+    public void setSchemaGenClassName(String schemaGenClassName) {
+        this.schemaGenClassName = schemaGenClassName;
     }
 
     public void loadPkg2NsMap() {

Modified: webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java?view=diff&rev=544049&r1=544048&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java (original)
+++ webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java Sun Jun  3 21:47:40 2007
@@ -44,6 +44,8 @@
                 Java2WSDLConstants.EXTRA_CLASSES_DEFAULT_OPTION.equalsIgnoreCase(optionType) ||
                 Java2WSDLConstants.NAMESPACE_GENERATOR_OPTION.equalsIgnoreCase(optionType) ||
                 Java2WSDLConstants.NAMESPACE_GENERATOR_OPTION_LONG.equalsIgnoreCase(optionType) ||
+                Java2WSDLConstants.SCHEMA_GENERATOR_OPTION.equalsIgnoreCase(optionType) ||
+                Java2WSDLConstants.SCHEMA_GENERATOR_OPTION_LONG.equalsIgnoreCase(optionType) ||
                 Java2WSDLConstants.JAVA_PKG_2_NSMAP_OPTION.equalsIgnoreCase(optionType) ||
                 Java2WSDLConstants.JAVA_PKG_2_NSMAP_OPTION_LONG.equalsIgnoreCase(optionType) ||
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java?view=diff&rev=544049&r1=544048&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java Sun Jun  3 21:47:40 2007
@@ -6,7 +6,6 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.deployment.DeploymentConstants;
 import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.DeploymentClassLoader;
 import org.apache.axis2.deployment.repository.util.ArchiveReader;
@@ -23,6 +22,7 @@
 import org.apache.axis2.description.java2wsdl.TypeTable;
 import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
 import org.apache.axis2.description.java2wsdl.AnnotationConstants;
+import org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator;
 import org.apache.axis2.description.java2wsdl.SchemaGenerator;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.Handler;
@@ -48,7 +48,6 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
-import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -311,7 +310,7 @@
         map.put(Java2WSDLConstants.DEFAULT_SCHEMA_NAMESPACE_PREFIX,
                 Java2WSDLConstants.URI_2001_SCHEMA_XSD);
         axisService.setNameSpacesMap(map);
-        SchemaGenerator schemaGenerator = new SchemaGenerator(serviceClassLoader,
+        SchemaGenerator schemaGenerator = new DefaultSchemaGenerator(serviceClassLoader,
                                                               serviceClass.trim(),
                                                               axisService.getSchematargetNamespace(),
                                                               axisService.getSchematargetNamespacePrefix());

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java?view=diff&rev=544049&r1=544048&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java Sun Jun  3 21:47:40 2007
@@ -21,9 +21,9 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.description.java2wsdl.TypeTable;
-import org.apache.axis2.description.java2wsdl.AnnotationConstants;
-import org.apache.axis2.description.java2wsdl.SchemaGenerator;
+import org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator;
 import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
+import org.apache.axis2.description.java2wsdl.SchemaGenerator;
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.client.Options;
@@ -60,7 +60,6 @@
 import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 import org.apache.ws.commons.schema.utils.NamespacePrefixList;
-import org.codehaus.jam.JAnnotation;
 import org.codehaus.jam.JMethod;
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
@@ -1553,7 +1552,7 @@
         ArrayList excludeOpeartion = new ArrayList();
 
         try {
-            schemaGenerator = new SchemaGenerator(loader,
+            schemaGenerator = new DefaultSchemaGenerator(loader,
                                                   implClass, schemaNamespace,
                                                   Java2WSDLConstants.SCHEMA_NAMESPACE_PRFIX);
             schemaGenerator.setElementFormDefault(Java2WSDLConstants.FORM_DEFAULT_UNQUALIFIED);
@@ -1737,7 +1736,7 @@
 
 
         try {
-            schemaGenerator = new SchemaGenerator(serviceClassLoader,
+            schemaGenerator = new DefaultSchemaGenerator(serviceClassLoader,
                                                   implClass, schemaNameSpace,
                                                   axisService.getSchematargetNamespacePrefix());
             schemaGenerator.setElementFormDefault(Java2WSDLConstants.FORM_DEFAULT_UNQUALIFIED);

Copied: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java (from r544041, webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?view=diff&rev=544049&p1=webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java&r1=544041&p2=webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java Sun Jun  3 21:47:40 2007
@@ -39,7 +39,6 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.List;
-import java.lang.reflect.Array;
 
 /*
 * Copyright 2004,2005 The Apache Software Foundation.
@@ -58,9 +57,9 @@
 *
 */
 
-public class SchemaGenerator implements Java2WSDLConstants {
+public class DefaultSchemaGenerator implements Java2WSDLConstants, SchemaGenerator {
 
-    private static final Log log = LogFactory.getLog(SchemaGenerator.class);
+    private static final Log log = LogFactory.getLog(DefaultSchemaGenerator.class);
 
     public static final String NAME_SPACE_PREFIX = "ax2";// axis2 name space
 
@@ -119,7 +118,7 @@
         this.nsGen = nsGen;
     }
 
-    public SchemaGenerator(ClassLoader loader, String className,
+    public DefaultSchemaGenerator(ClassLoader loader, String className,
                            String schematargetNamespace,
                            String schematargetNamespacePrefix)
             throws Exception {
@@ -676,10 +675,6 @@
     public void setExcludeMethods(ArrayList excludeMethods) {
         if (excludeMethods == null) excludeMethods = new ArrayList();
         this.excludeMethods = excludeMethods;
-    }
-
-    public List getExcludeMethods() {
-        return this.excludeMethods;
     }
 
     public String getSchemaTargetNameSpace() {

Propchange: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java?view=diff&rev=544049&r1=544048&r2=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java Sun Jun  3 21:47:40 2007
@@ -104,6 +104,7 @@
     String ELEMENT_FORM_DEFAULT_OPTION = "efd";
     String EXTRA_CLASSES_DEFAULT_OPTION = "xc";
     String NAMESPACE_GENERATOR_OPTION = "nsg";
+    String SCHEMA_GENERATOR_OPTION = "sg";
     String JAVA_PKG_2_NSMAP_OPTION = "p2n";
     String WSDL_VERSION_OPTION = "wv";
 
@@ -125,6 +126,7 @@
     String ELEMENT_FORM_DEFAULT_OPTION_LONG = "elementFormDefault";
     String EXTRA_CLASSES_DEFAULT_OPTION_LONG = "extraClasses";
     String NAMESPACE_GENERATOR_OPTION_LONG = "namespaceGenerator";
+    String SCHEMA_GENERATOR_OPTION_LONG = "schemaGenerator";
     String JAVA_PKG_2_NSMAP_OPTION_LONG = "package2Namespace";
     String WSDL_VERSION_OPTION_LONG = "wsdl-version";
 

Added: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java?view=auto&rev=544049
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java (added)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/SchemaGenerator.java Sun Jun  3 21:47:40 2007
@@ -0,0 +1,52 @@
+package org.apache.axis2.description.java2wsdl;
+
+import org.codehaus.jam.JMethod;
+
+import java.util.Collection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+public interface SchemaGenerator {
+    void setNsGen(NamespaceGenerator nsGen);
+
+    Collection generateSchema() throws Exception;
+
+    TypeTable getTypeTable();
+
+    JMethod[] getMethods();
+
+    void setExcludeMethods(ArrayList excludeMethods);
+
+    String getSchemaTargetNameSpace();
+
+    void setAttrFormDefault(String attrFormDefault);
+
+    void setElementFormDefault(String elementFormDefault);
+
+    void setExtraClasses(ArrayList extraClasses);
+
+    void setUseWSDLTypesNamespace(boolean useWSDLTypesNamespace);
+
+    void setPkg2nsmap(Map pkg2nsmap);
+
+    String getTargetNamespace();
+
+    void setNonRpcMethods(ArrayList nonRpcMethods);
+}



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