Author: amilas Date: Mon May 9 11:01:51 2011 New Revision: 1100957 URL: http://svn.apache.org/viewvc?rev=1100957&view=rev Log: adding an option to java2wsdl not to generate nillable true
Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java 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/adb/src/org/apache/axis2/databinding/ADBDataSource.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java?rev=1100957&r1=1100956&r2=1100957&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java Mon May 9 11:01:51 2011 @@ -101,7 +101,7 @@ public class ADBDataSource implements OM MTOMAwareOMBuilder mtomAwareOMBuilder = new MTOMAwareOMBuilder(); serialize(mtomAwareOMBuilder); return mtomAwareOMBuilder.getOMElement().getXMLStreamReader(); - } + } /** * Returns the backing Object. 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=1100957&r1=1100956&r2=1100957&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 Mon May 9 11:01:51 2011 @@ -61,6 +61,7 @@ public class Java2WSDL { System.out.println(" -xc class1 -xc class2... extra class(es) for which schematype must be generated. "); System.out.println(" -wv <1.1/2.0> wsdl version - defaults to 1.1 if not specified"); System.out.println(" -dlb generate schemas conforming to doc/lit/bare style"); + System.out.println(" -dne disallow nillable elements in the generated schema"); 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=1100957&r1=1100956&r2=1100957&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 Mon May 9 11:01:51 2011 @@ -67,6 +67,7 @@ public class Java2WSDLBuilder implements private String use = Java2WSDLConstants.LITERAL; private String locationUri; private ArrayList<String> extraClasses; + private boolean nillableElementsAllowed = true; private String nsGenClassName = null; private Map<String,String> pkg2nsMap = null; @@ -244,6 +245,11 @@ public class Java2WSDLBuilder implements inOutmessageReceiver); } AxisService service = new AxisService(); + + if (!nillableElementsAllowed) { + service.addParameter(Java2WSDLConstants.DISALLOW_NILLABLE_ELEMENTS_OPTION_LONG, "true"); + } + schemaGenerator.setAxisService(service); AxisService axisService = AxisService.createService(className, serviceName == null ? Java2WSDLUtils @@ -434,4 +440,12 @@ public class Java2WSDLBuilder implements public void setMappingFileLocation(String mappingFileLocation) { this.mappingFileLocation = mappingFileLocation; } + + public boolean isNillableElementsAllowed() { + return nillableElementsAllowed; + } + + public void setNillableElementsAllowed(boolean nillableElementsAllowed) { + this.nillableElementsAllowed = nillableElementsAllowed; + } } 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=1100957&r1=1100956&r2=1100957&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 Mon May 9 11:01:51 2011 @@ -237,6 +237,13 @@ public class Java2WSDLCodegenEngine impl if (option != null) { java2WsdlBuilder.setMappingFileLocation(option.getOptionValue()); } + + option = loadOption(Java2WSDLConstants.DISALLOW_NILLABLE_ELEMENTS_OPTION, + Java2WSDLConstants.DISALLOW_NILLABLE_ELEMENTS_OPTION_LONG, + optionsMap); + if (option != null) { + java2WsdlBuilder.setNillableElementsAllowed(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=1100957&r1=1100956&r2=1100957&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 Mon May 9 11:01:51 2011 @@ -64,6 +64,8 @@ public class Java2WSDLOptionsValidator i Java2WSDLConstants.TARGET_NAMESPACE_PREFIX_OPTION.equalsIgnoreCase(optionType) || Java2WSDLConstants.TARGET_NAMESPACE_PREFIX_OPTION_LONG.equalsIgnoreCase(optionType) || Java2WSDLConstants.USE_OPTION.equalsIgnoreCase(optionType) || + Java2WSDLConstants.DISALLOW_NILLABLE_ELEMENTS_OPTION.equalsIgnoreCase(optionType) || + Java2WSDLConstants.DISALLOW_NILLABLE_ELEMENTS_OPTION_LONG.equalsIgnoreCase(optionType) || Java2WSDLConstants.USE_OPTION_LONG.equalsIgnoreCase(optionType)|| Java2WSDLConstants.WSDL_VERSION_OPTION.equalsIgnoreCase(optionType)|| Java2WSDLConstants.CUSTOM_SCHEMA_LOCATION.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=1100957&r1=1100956&r2=1100957&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 Mon May 9 11:01:51 2011 @@ -951,7 +951,14 @@ public class DefaultSchemaGenerator impl elt1.setMaxOccurs(Long.MAX_VALUE); } elt1.setMinOccurs(0); - if (!isPrimitive) { + + boolean disallowNillables = false; + Parameter param = service.getParameter(Java2WSDLConstants.DISALLOW_NILLABLE_ELEMENTS_OPTION_LONG); + if (param != null) { + disallowNillables = JavaUtils.isTrueExplicitly(param.getValue()); + } + + if (!isPrimitive && !disallowNillables) { elt1.setNillable(true); } } @@ -1254,12 +1261,19 @@ public class DefaultSchemaGenerator impl elt1.setMaxOccurs(Long.MAX_VALUE); } elt1.setMinOccurs(0); + + boolean disallowNillables = false; + Parameter param = service.getParameter(Java2WSDLConstants.DISALLOW_NILLABLE_ELEMENTS_OPTION_LONG); + if (param != null) { + disallowNillables = JavaUtils.isTrueExplicitly(param.getValue()); + } + if (!("int".equals(schemaTypeName.getLocalPart()) || "double".equals(schemaTypeName.getLocalPart()) || "long".equals(schemaTypeName.getLocalPart()) || "boolean".equals(schemaTypeName.getLocalPart()) || "short".equals(schemaTypeName.getLocalPart()) || - "float".equals(schemaTypeName.getLocalPart()))) { + "float".equals(schemaTypeName.getLocalPart())) && !disallowNillables) { elt1.setNillable(true); } } 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=1100957&r1=1100956&r2=1100957&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 Mon May 9 11:01:51 2011 @@ -138,6 +138,9 @@ public interface Java2WSDLConstants { String SCHEMA_MAPPING_FILE_LOCATION = "mfl"; String SCHEMA_MAPPING_FILE_LOCATION_LONG = "mapping-file-location"; + String DISALLOW_NILLABLE_ELEMENTS_OPTION = "dne"; + String DISALLOW_NILLABLE_ELEMENTS_OPTION_LONG = "disallowNillableElements"; + String AXIS2_NAMESPACE_PREFIX = "ns1"; public static final String SOLE_INPUT = "SOLE_INPUT";