You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by am...@apache.org on 2011/05/12 11:13:23 UTC
svn commit: r1102212 - in /axis/axis2/java/core/trunk/modules:
java2wsdl/src/org/apache/ws/java2wsdl/
java2wsdl/src/org/apache/ws/java2wsdl/utils/
kernel/src/org/apache/axis2/description/java2wsdl/
Author: amilas
Date: Thu May 12 09:13:22 2011
New Revision: 1102212
URL: http://svn.apache.org/viewvc?rev=1102212&view=rev
Log:
added an option to generate named complex types for annonymous types
Modified:
axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDL.java
axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java
axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java
axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java
Modified: axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDL.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDL.java?rev=1102212&r1=1102211&r2=1102212&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDL.java (original)
+++ axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDL.java Thu May 12 09:13:22 2011
@@ -71,6 +71,7 @@ public class Java2WSDL {
System.out.println(" -soap12BindingName soap 12 binding name of the WSDL");
System.out.println(" -restBindingName rest binding name of the WSDL");
System.out.println(" -res <requestElementSuffix> Adds a suffix to the request elemment");
+ System.out.println(" -dat <disallowAnonymousTypes> Creates a named complex type for the annonymous complex type");
System.exit(0);
}
Modified: axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java?rev=1102212&r1=1102211&r2=1102212&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java (original)
+++ axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java Thu May 12 09:13:22 2011
@@ -97,6 +97,8 @@ public class Java2WSDLBuilder implements
private String requestElementSuffix;
+ private boolean anonymousTypesAllowed = true;
+
public Java2WSDLBuilder() {
try {
ConfigurationContext configCtx = ConfigurationContextFactory
@@ -293,6 +295,10 @@ public class Java2WSDLBuilder implements
service.addParameter(Java2WSDLConstants.REQUEST_ELEMENT_SUFFIX_OPTION_LONG, requestElementSuffix);
}
+ if (!anonymousTypesAllowed) {
+ service.addParameter(Java2WSDLConstants.DISALLOW_ANON_TYPES_OPTION_LONG, "true");
+ }
+
schemaGenerator.setAxisService(service);
AxisService axisService = AxisService.createService(className,
serviceName == null ? Java2WSDLUtils
@@ -576,4 +582,12 @@ public class Java2WSDLBuilder implements
public void setRequestElementSuffix(String requestElementSuffix) {
this.requestElementSuffix = requestElementSuffix;
}
+
+ public boolean isAnonymousTypesAllowed() {
+ return anonymousTypesAllowed;
+ }
+
+ public void setAnonymousTypesAllowed(boolean anonymousTypesAllowed) {
+ this.anonymousTypesAllowed = anonymousTypesAllowed;
+ }
}
Modified: axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java?rev=1102212&r1=1102211&r2=1102212&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java (original)
+++ axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java Thu May 12 09:13:22 2011
@@ -293,6 +293,14 @@ public class Java2WSDLCodegenEngine impl
if (option != null) {
java2WsdlBuilder.setRequestElementSuffix(option.getOptionValue());
}
+
+ option = loadOption(Java2WSDLConstants.DISALLOW_ANON_TYPES_OPTION,
+ Java2WSDLConstants.DISALLOW_ANON_TYPES_OPTION_LONG,
+ optionsMap);
+ if (option != null) {
+ java2WsdlBuilder.setAnonymousTypesAllowed(false);
+ }
+
}
private Java2WSDLCommandLineOption loadOption(String shortOption, String longOption,
Modified: axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java?rev=1102212&r1=1102211&r2=1102212&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java (original)
+++ axis/axis2/java/core/trunk/modules/java2wsdl/src/org/apache/ws/java2wsdl/utils/Java2WSDLOptionsValidator.java Thu May 12 09:13:22 2011
@@ -82,6 +82,8 @@ public class Java2WSDLOptionsValidator i
Java2WSDLConstants.REST_BINDING_NAME_OPTION_LONG.equalsIgnoreCase(optionType)||
Java2WSDLConstants.REQUEST_ELEMENT_SUFFIX_OPTION.equalsIgnoreCase(optionType)||
Java2WSDLConstants.REQUEST_ELEMENT_SUFFIX_OPTION_LONG.equalsIgnoreCase(optionType)||
+ Java2WSDLConstants.DISALLOW_ANON_TYPES_OPTION.equalsIgnoreCase(optionType)||
+ Java2WSDLConstants.DISALLOW_ANON_TYPES_OPTION_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)
Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=1102212&r1=1102211&r2=1102212&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java Thu May 12 09:13:22 2011
@@ -1320,9 +1320,21 @@ public class DefaultSchemaGenerator impl
complexType = new XmlSchemaComplexType(xmlSchema);
XmlSchemaElement globalElement = new XmlSchemaElement();
- globalElement.setSchemaType(complexType);
globalElement.setName(localPartName);
globalElement.setQName(elementName);
+
+ boolean disallowAnonTypes = isAnonymousTypesDisallowed();
+ if (disallowAnonTypes) {
+ String complexTypeName = localPartName.substring(0, 1).toUpperCase()
+ + localPartName.substring(1);
+ complexType.setName(complexTypeName);
+ globalElement.setSchemaTypeName(complexType.getQName());
+ xmlSchema.getItems().add(complexType);
+ xmlSchema.getSchemaTypes().add(complexType.getQName(), complexType);
+ } else {
+ globalElement.setSchemaType(complexType);
+ }
+
xmlSchema.getItems().add(globalElement);
xmlSchema.getElements().add(elementName, globalElement);
}
@@ -1341,15 +1353,35 @@ public class DefaultSchemaGenerator impl
complexType = new XmlSchemaComplexType(xmlSchema);
XmlSchemaElement globalElement = new XmlSchemaElement();
- globalElement.setSchemaType(complexType);
globalElement.setName(localPartName);
globalElement.setQName(elementName);
+
+ boolean disallowAnonTypes = isAnonymousTypesDisallowed();
+ if (disallowAnonTypes) {
+ complexType.setName(localPartName);
+ globalElement.setSchemaTypeName(complexType.getQName());
+ xmlSchema.getItems().add(complexType);
+ xmlSchema.getSchemaTypes().add(complexType.getQName(), complexType);
+ } else {
+ globalElement.setSchemaType(complexType);
+ }
+
xmlSchema.getItems().add(globalElement);
xmlSchema.getElements().add(elementName, globalElement);
+
}
return complexType;
}
+ private boolean isAnonymousTypesDisallowed() {
+ boolean disallowAnonTypes = false;
+ Parameter param = service.getParameter(Java2WSDLConstants.DISALLOW_ANON_TYPES_OPTION_LONG);
+ if (param != null) {
+ disallowAnonTypes = JavaUtils.isTrueExplicitly(param.getValue());
+ }
+ return disallowAnonTypes;
+ }
+
private String getRequestElementSuffix() {
String requestElementSuffix = null;
Parameter param = service.getParameter(Java2WSDLConstants.REQUEST_ELEMENT_SUFFIX_OPTION_LONG);
@@ -1360,11 +1392,17 @@ public class DefaultSchemaGenerator impl
}
protected XmlSchemaComplexType getComplexTypeForElement(XmlSchema xmlSchema, QName name) {
+
Iterator<?> iterator = xmlSchema.getItems().getIterator();
while (iterator.hasNext()) {
XmlSchemaObject object = (XmlSchemaObject) iterator.next();
if (object instanceof XmlSchemaElement && ((XmlSchemaElement) object).getQName().equals(name)) {
- return (XmlSchemaComplexType) ((XmlSchemaElement) object).getSchemaType();
+ XmlSchemaComplexType xmlSchemaComplexType = (XmlSchemaComplexType) ((XmlSchemaElement) object).getSchemaType();
+ if ((xmlSchemaComplexType == null) && (((XmlSchemaElement) object).getSchemaTypeName() != null)){
+ xmlSchemaComplexType =
+ (XmlSchemaComplexType) xmlSchema.getTypeByName(((XmlSchemaElement) object).getSchemaTypeName());
+ }
+ return xmlSchemaComplexType;
}
}
return null;
Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java?rev=1102212&r1=1102211&r2=1102212&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/Java2WSDLConstants.java Thu May 12 09:13:22 2011
@@ -156,6 +156,9 @@ public interface Java2WSDLConstants {
String REQUEST_ELEMENT_SUFFIX_OPTION = "res";
String REQUEST_ELEMENT_SUFFIX_OPTION_LONG = "requestElementSuffix";
+ String DISALLOW_ANON_TYPES_OPTION = "dat";
+ String DISALLOW_ANON_TYPES_OPTION_LONG = "disallowAnonymousTypes";
+
String AXIS2_NAMESPACE_PREFIX = "ns1";
public static final String SOLE_INPUT = "SOLE_INPUT";