+ // location of the class name to package mapping file
+ // File is simple file with qualifiedClassName:SchemaQName
+ private String mappingFileLocation;
public Java2WSDLBuilder() {
try {
@@ -208,6 +212,8 @@
schemaGenerator.setExtraClasses(getExtraClasses());
schemaGenerator.setNsGen(resolveNSGen());
schemaGenerator.setPkg2nsmap(getPkg2nsMap());
+ schemaGenerator.setMappingFileLocation(mappingFileLocation);
+ schemaGenerator.setCustomScheamLocation(customScheamLocation);
if (getPkg2nsMap() != null && !getPkg2nsMap().isEmpty() &&
(getPkg2nsMap().containsKey(ALL) ||
getPkg2nsMap().containsKey(ALL.toUpperCase()))) {
schemaGenerator.setUseWSDLTypesNamespace(true);
@@ -382,6 +388,23 @@
public void setWSDLVersion(String wsdlVersion) {
this.wsdlVersion = wsdlVersion;
+ }
+
+
+ public String getCustomScheamLocation() {
+ return customScheamLocation;
+ }
+
+ public void setCustomScheamLocation(String customScheamLocation) {
+ this.customScheamLocation = customScheamLocation;
+ }
+
+ public String getMappingFileLocation() {
+ return mappingFileLocation;
+ }
+
+ public void setMappingFileLocation(String mappingFileLocation) {
+ this.mappingFileLocation = mappingFileLocation;
}
}
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?rev=633048&r1=633047&r2=633048&view=diff
==============================================================================
---
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
Mon Mar 3 03:58:15 2008
@@ -223,6 +223,19 @@
if (option != null) {
java2WsdlBuilder.setGenerateDocLitBare(true);
}
+
+ option = loadOption(Java2WSDLConstants.CUSTOM_SCHEMA_LOCATION,
+ Java2WSDLConstants.CUSTOM_SCHEMA_LOCATION_LONG,
+ optionsMap);
+ if (option != null) {
+ java2WsdlBuilder.setCustomScheamLocation(option.getOptionValue());
+ }
+ option = loadOption(Java2WSDLConstants.SCHEMA_MAPPING_FILE_LOCATION,
+
Java2WSDLConstants.SCHEMA_MAPPING_FILE_LOCATION_LONG,
+ optionsMap);
+ if (option != null) {
+ java2WsdlBuilder.setMappingFileLocation(option.getOptionValue());
+ }
}
private Java2WSDLCommandLineOption loadOption(String shortOption, String longOption, Map options) {
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?rev=633048&r1=633047&r2=633048&view=diff
==============================================================================
---
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
Mon Mar 3 03:58:15 2008
@@ -65,10 +65,12 @@
Java2WSDLConstants.USE_OPTION.equalsIgnoreCase(optionType) ||
Java2WSDLConstants.USE_OPTION_LONG.equalsIgnoreCase(optionType)||
Java2WSDLConstants.WSDL_VERSION_OPTION.equalsIgnoreCase(optionType)||
+
Java2WSDLConstants.CUSTOM_SCHEMA_LOCATION.equalsIgnoreCase(optionType)||
+
Java2WSDLConstants.CUSTOM_SCHEMA_LOCATION_LONG.equalsIgnoreCase(optionType)||
+
Java2WSDLConstants.SCHEMA_MAPPING_FILE_LOCATION.equalsIgnoreCase(optionType)||
+
Java2WSDLConstants.SCHEMA_MAPPING_FILE_LOCATION_LONG.equalsIgnoreCase(optionType)||
Java2WSDLConstants.WSDL_VERSION_OPTION_LONG.equalsIgnoreCase(optionType)
);
-
-
return invalid;
}
}
Modified:
webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/JaxbSchemaGenerator.java
URL:
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/JaxbSchemaGenerator.java?rev=633048&r1=633047&r2=633048&view=diff
==============================================================================
---
webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/JaxbSchemaGenerator.java
(original)
+++
webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/JaxbSchemaGenerator.java
Mon Mar 3 03:58:15 2008
@@ -19,12 +19,15 @@
package org.apache.axis2.jaxbri;
import org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator;
+import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.util.Loader;
import org.apache.ws.commons.schema.XmlSchema;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.codehaus.jam.JMethod;
+import org.codehaus.jam.JClass;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
@@ -125,6 +128,7 @@
return itr.next();
}
+
protected List<Class<?>> processMethods(Method[] declaredMethods) throws Exception {
List<Class<?>> list = new ArrayList<Class<?>>();
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL:
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=633048&r1=633047&r2=633048&view=diff
==============================================================================
---
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
(original)
+++
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
Mon Mar 3 03:58:15 2008
@@ -33,9 +33,14 @@
import org.apache.ws.commons.schema.utils.NamespaceMap;
import org.apache.ws.commons.schema.utils.NamespacePrefixList;
import org.codehaus.jam.*;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
import java.util.*;
+import java.io.*;
public class DefaultSchemaGenerator implements Java2WSDLConstants, SchemaGenerator {
@@ -88,6 +93,11 @@
protected Class serviceClass = null;
protected AxisService service;
+ // location of the custom schema , if any
+ protected String customScheamLocation;
+ // location of the class name to package mapping file
+ // File is simple file with qualifiedClassName:SchemaQName
+ protected String mappingFileLocation;
//To check whether we need to generate Schema element for Exception
protected boolean generateBaseException ;
@@ -135,6 +145,57 @@
}
}
+ //This will locad the custom scheam file and add that into the scheam map
+ private void loadCustomSchemaFile(){
+ if (customScheamLocation != null) {
+ try {
+ DocumentBuilderFactory documentBuilderFactory =
DocumentBuilderFactory.newInstance();
+ documentBuilderFactory.setNamespaceAware(true);
+ Document doc =
documentBuilderFactory.newDocumentBuilder().parse(new
File(customScheamLocation));
+ XmlSchema schema = xmlSchemaCollection.read(doc,null);
+ schemaMap.put(schema.getTargetNamespace() ,schema);
+ } catch (Exception e) {
+ log.info(e.getMessage());
+ }
+ }
+ }
+
+ /**This will load the mapping file and update the Typetable with the Class
name and the Qname
+ * Mapping file look like
+ *
org.foo.bar.FooException|http://www.abc.com/soaframework/common/types|ErrorMessage
+ */
+ private void loadMappingFile(){
+ if(mappingFileLocation != null){
+ File file = new File(mappingFileLocation);
+ BufferedReader input = null;
+ try {
+ input = new BufferedReader(new InputStreamReader(new
FileInputStream(file)));
+ String line;
+ while ((line = input.readLine()) != null) {
+ line = line.trim();
+ if (line.length() > 0 && line.charAt(0)!='#') {
+ String values [] = line.split("\\|");
+ if (values != null && values.length >2) {
+ typeTable.addComplexSchema(values[0],new
QName(values[1] , values[2]));
+ }
+ }
+ }
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ } finally {
+ try {
+ if (input != null) {
+ input.close();
+ }
+ }
+ catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+ }
+
+
/**
* Generates schema for all the parameters in method. First generates
schema for all different
* parameter type and later refers to them.
@@ -143,7 +204,8 @@
* @throws Exception
*/
public Collection generateSchema() throws Exception {
-
+ loadCustomSchemaFile();
+ loadMappingFile();
JamServiceFactory factory = JamServiceFactory.getInstance();
JamServiceParams jam_service_parms = factory.createServiceParams();
//setting the classLoder
@@ -1012,5 +1074,22 @@
public void setAxisService(AxisService service) {
this.service = service;
+ }
+
+
+ public String getCustomScheamLocation() {
+ return customScheamLocation;
+ }
+
+ public void setCustomScheamLocation(String customScheamLocation) {
+ this.customScheamLocation = customScheamLocation;
+ }
+
+ public String getMappingFileLocation() {
+ return mappingFileLocation;
+ }
+
+ public void setMappingFileLocation(String mappingFileLocation) {
+ this.mappingFileLocation = mappingFileLocation;
}
}
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?rev=633048&r1=633047&r2=633048&view=diff
==============================================================================
---
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
Mon Mar 3 03:58:15 2008
@@ -132,7 +132,11 @@
String USE_OPTION_LONG = "use";
String WSDL_VERSION_OPTION = "wv";
String WSDL_VERSION_OPTION_LONG = "wsdl-version";
-
+ String CUSTOM_SCHEMA_LOCATION = "csl";
+ String CUSTOM_SCHEMA_LOCATION_LONG = "custom-schema-location";
+ String SCHEMA_MAPPING_FILE_LOCATION = "mfl";
+ String SCHEMA_MAPPING_FILE_LOCATION_LONG = "mapping-file-location";
+
String AXIS2_NAMESPACE_PREFIX = "ns1";
public static final String SOLE_INPUT = "SOLE_INPUT";
Modified:
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?rev=633048&r1=633047&r2=633048&view=diff
==============================================================================
---
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/SchemaGenerator.java
Mon Mar 3 03:58:15 2008
@@ -54,4 +54,13 @@
void setNonRpcMethods(ArrayList nonRpcMethods);
void setAxisService(AxisService service);
+
+ String getCustomScheamLocation();
+
+
+ void setCustomScheamLocation(String customScheamLocation);
+
+ String getMappingFileLocation() ;
+
+ void setMappingFileLocation(String mappingFileLocation) ;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]