scheu 02/05/15 13:22:01 Modified: java/src/org/apache/axis/wsdl Java2WSDL.java WSDL2Java.java java/src/org/apache/axis/wsdl/gen WSDL2.java Log: Changed the Java2WSDL class to have similar structure and flow as WSDL2Java. Added method comments to Java2WSDL, WSDL2Java and WSDL2. Revision Changes Path 1.15 +204 -143 xml-axis/java/src/org/apache/axis/wsdl/Java2WSDL.java Index: Java2WSDL.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/Java2WSDL.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- Java2WSDL.java 28 Apr 2002 18:10:56 -0000 1.14 +++ Java2WSDL.java 15 May 2002 20:22:01 -0000 1.15 @@ -105,7 +105,7 @@ * recognised. * - A description of the option for the usage message */ - protected static final CLOptionDescriptor[] options = new CLOptionDescriptor[]{ + protected CLOptionDescriptor[] options = new CLOptionDescriptor[]{ new CLOptionDescriptor("help", CLOptionDescriptor.ARGUMENT_DISALLOWED, HELP_OPT, @@ -180,166 +180,213 @@ JavaUtils.getMessage("j2wopttypeMapping00")) }; + protected Emitter emitter; + protected String className = null; + protected String wsdlFilename = null; + protected String wsdlImplFilename = null; + protected HashMap namespaceMap = new HashMap(); + protected int mode = Emitter.MODE_ALL; + boolean locationSet = false; /** - * Main + * Instantiate a Java2WSDL emitter. */ - public static void main(String args[]) { + protected Java2WSDL() { + emitter = createEmitter(); + addOptions(options); + } // ctor + + + /** + * Instantiate an Emitter + */ + protected Emitter createEmitter() { + return new Emitter(); + } // createEmitter - String className = null; - String wsdlFilename = null; - String wsdlImplFilename = null; - HashMap namespaceMap = new HashMap(); - int mode = Emitter.MODE_ALL; - boolean locationSet = false; + /** + * addOptions + * Add option descriptions to the tool. Allows + * extended classes to add additional options. + * @param CLOptionDescriptor[] the options + */ + protected void addOptions(CLOptionDescriptor[] newOptions) { + if (newOptions != null && newOptions.length > 0) { + CLOptionDescriptor[] allOptions = new CLOptionDescriptor[ + options.length + newOptions.length]; + System.arraycopy(options, 0, allOptions, 0, options.length); + System.arraycopy(newOptions, 0, allOptions, options.length, newOptions.length); + options = allOptions; + } + } + + /** + * Parse an option + * @param CLOption is the option + */ + protected void parseOption(CLOption option) { + switch (option.getId()) { + case CLOption.TEXT_ARGUMENT: + if (className != null) { + printUsage(); + } + className = option.getArgument(); + break; + + case METHODS_ALLOWED_OPT: + emitter.setAllowedMethods(option.getArgument()); + break; + + case INHERITED_CLASS_OPT: + emitter.setUseInheritedMethods(true); + break; + + case IMPL_CLASS_OPT: + emitter.setImplCls(option.getArgument()); + break; + + case HELP_OPT: + printUsage(); + break; + + case OUTPUT_WSDL_MODE_OPT: + String modeArg = option.getArgument(); + if ("All".equalsIgnoreCase(modeArg)) + mode = Emitter.MODE_ALL; + else if ("Interface".equalsIgnoreCase(modeArg)) + mode = Emitter.MODE_INTERFACE; + else if ("Implementation".equalsIgnoreCase(modeArg)) + mode = Emitter.MODE_IMPLEMENTATION; + else { + mode = Emitter.MODE_ALL; + System.err.println(JavaUtils.getMessage("j2wmodeerror", modeArg)); + } + break; + + case OUTPUT_OPT: + wsdlFilename = option.getArgument(); + break; + + case OUTPUT_IMPL_OPT: + wsdlImplFilename = option.getArgument(); + break; + + case PACKAGE_OPT: + String packageName = option.getArgument(0); + String namespace = option.getArgument(1); + namespaceMap.put(packageName, namespace); + break; + + case NAMESPACE_OPT: + emitter.setIntfNamespace(option.getArgument()); + break; + + case NAMESPACE_IMPL_OPT: + emitter.setImplNamespace(option.getArgument()); + break; + + case SERVICE_ELEMENT_NAME_OPT: + emitter.setServiceElementName(option.getArgument()); + break; + + case SERVICE_PORT_NAME_OPT: + emitter.setServicePortName(option.getArgument()); + break; + + case LOCATION_OPT: + emitter.setLocationUrl(option.getArgument()); + locationSet = true; + break; + + case LOCATION_IMPORT_OPT: + emitter.setImportUrl(option.getArgument()); + break; + + case METHODS_NOTALLOWED_OPT: + emitter.setDisallowedMethods(option.getArgument()); + break; + + case PORTTYPE_NAME_OPT: + emitter.setPortTypeName(option.getArgument()); + break; + + case STOP_CLASSES_OPT: + emitter.setStopClasses(option.getArgument()); + break; + + case TYPEMAPPING_OPT: + String value = option.getArgument(); + if (value.equals("1.1")) { + emitter.setDefaultTypeMapping( + DefaultTypeMappingImpl.getSingleton()); + } else if (value.equals("1.2")) { + emitter.setDefaultTypeMapping( + DefaultSOAP12TypeMappingImpl.create()); + } else { + System.out.println(JavaUtils.getMessage("j2wBadTypeMapping00")); + } + break; + + } + } + /** + * validateOptions + * This method is invoked after the options are set to validate + * the option settings. + */ + protected void validateOptions() { + // Can't proceed without a class name + if ((className == null)) { + printUsage(); + } + + if (!locationSet && (mode == Emitter.MODE_ALL || + mode == Emitter.MODE_IMPLEMENTATION)) { + System.out.println(JavaUtils.getMessage("j2wMissingLocation00")); + printUsage(); + } + + // Default to SOAP 1.2 JAX-RPC mapping + if (emitter.getDefaultTypeMapping() == null) { + emitter.setDefaultTypeMapping(DefaultSOAP12TypeMappingImpl.create()); + } + } + + /** + * run + * checks the command-line arguments and runs the tool. + * @param String[] command-line arguments. + */ + protected void run(String[] args) { // Parse the arguments - CLArgsParser parser = new CLArgsParser(args, options); + CLArgsParser argsParser = new CLArgsParser(args, options); // Print parser errors, if any - if (null != parser.getErrorString()) { - System.err.println(JavaUtils.getMessage("j2werror00",parser.getErrorString())); + if (null != argsParser.getErrorString()) { + System.err.println( + JavaUtils.getMessage("j2werror00", argsParser.getErrorString())); printUsage(); } // Get a list of parsed options - List clOptions = parser.getArguments(); + List clOptions = argsParser.getArguments(); int size = clOptions.size(); try { - - // Instantiate the emitter - Emitter emitter = new Emitter(); - // Parse the options and configure the emitter as appropriate. for (int i = 0; i < size; i++) { - CLOption option = (CLOption)clOptions.get(i); - - switch (option.getId()) { - case CLOption.TEXT_ARGUMENT: - if (className != null) { - printUsage(); - } - className = option.getArgument(); - break; - - case METHODS_ALLOWED_OPT: - emitter.setAllowedMethods(option.getArgument()); - break; - - case INHERITED_CLASS_OPT: - emitter.setUseInheritedMethods(true); - break; - - case IMPL_CLASS_OPT: - emitter.setImplCls(option.getArgument()); - break; - - case HELP_OPT: - printUsage(); - break; - - case OUTPUT_WSDL_MODE_OPT: - String modeArg = option.getArgument(); - if ("All".equalsIgnoreCase(modeArg)) - mode = Emitter.MODE_ALL; - else if ("Interface".equalsIgnoreCase(modeArg)) - mode = Emitter.MODE_INTERFACE; - else if ("Implementation".equalsIgnoreCase(modeArg)) - mode = Emitter.MODE_IMPLEMENTATION; - else { - mode = Emitter.MODE_ALL; - System.err.println(JavaUtils.getMessage("j2wmodeerror", modeArg)); - } - break; - - case OUTPUT_OPT: - wsdlFilename = option.getArgument(); - break; - - case OUTPUT_IMPL_OPT: - wsdlImplFilename = option.getArgument(); - break; - - case PACKAGE_OPT: - String packageName = option.getArgument(0); - String namespace = option.getArgument(1); - namespaceMap.put(packageName, namespace); - break; - - case NAMESPACE_OPT: - emitter.setIntfNamespace(option.getArgument()); - break; - - case NAMESPACE_IMPL_OPT: - emitter.setImplNamespace(option.getArgument()); - break; - - case SERVICE_ELEMENT_NAME_OPT: - emitter.setServiceElementName(option.getArgument()); - break; - - case SERVICE_PORT_NAME_OPT: - emitter.setServicePortName(option.getArgument()); - break; - - case LOCATION_OPT: - emitter.setLocationUrl(option.getArgument()); - locationSet = true; - break; - - case LOCATION_IMPORT_OPT: - emitter.setImportUrl(option.getArgument()); - break; - - case METHODS_NOTALLOWED_OPT: - emitter.setDisallowedMethods(option.getArgument()); - break; - - case PORTTYPE_NAME_OPT: - emitter.setPortTypeName(option.getArgument()); - break; - - case STOP_CLASSES_OPT: - emitter.setStopClasses(option.getArgument()); - break; - - case TYPEMAPPING_OPT: - String value = option.getArgument(); - if (value.equals("1.1")) { - emitter.setDefaultTypeMapping( - DefaultTypeMappingImpl.getSingleton()); - } else if (value.equals("1.2")) { - emitter.setDefaultTypeMapping( - DefaultSOAP12TypeMappingImpl.create()); - } else { - System.out.println(JavaUtils.getMessage("j2wBadTypeMapping00")); - } - break; - - } + parseOption((CLOption)clOptions.get(i)); } - // Can't proceed without a class name - if ((className == null)) { - printUsage(); - } + // validate argument combinations + validateOptions(); - if (!locationSet && (mode == Emitter.MODE_ALL || - mode == Emitter.MODE_IMPLEMENTATION)) { - System.out.println(JavaUtils.getMessage("j2wMissingLocation00")); - printUsage(); - } - - // Default to SOAP 1.2 JAX-RPC mapping - if (emitter.getDefaultTypeMapping() == null) { - emitter.setDefaultTypeMapping(DefaultSOAP12TypeMappingImpl.create()); - } - + // Set the namespace map if (!namespaceMap.isEmpty()) { emitter.setNamespaceMap(namespaceMap); } - + // Find the class using the name emitter.setCls(className); @@ -349,17 +396,21 @@ } else { emitter.emit(wsdlFilename, wsdlImplFilename); } + + // everything is good + System.exit(0); } catch (Throwable t) { t.printStackTrace(); + System.exit(1); } - - } + } // run /** - * Print usage message and exit + * printUsage + * print usage information and quit. */ - private static void printUsage() { + protected void printUsage() { String lSep = System.getProperty("line.separator"); StringBuffer msg = new StringBuffer(); msg.append("Java2WSDL " @@ -367,9 +418,19 @@ msg.append(JavaUtils.getMessage("j2wusage00", "java " + Java2WSDL.class.getName() + " [options] class-of-portType")).append(lSep); msg.append(JavaUtils.getMessage("j2woptions00")).append(lSep); - msg.append(CLUtil.describeOptions(Java2WSDL.options).toString()); + msg.append(CLUtil.describeOptions(options).toString()); msg.append(JavaUtils.getMessage("j2wdetails00")).append(lSep); System.out.println(msg.toString()); System.exit(0); + } + + /** + * Main + * Run the Java2WSDL emitter with the specified command-line arguments + * @param String[] command-line arguments + */ + public static void main(String args[]) { + Java2WSDL java2wsdl = new Java2WSDL(); + java2wsdl.run(args); } } 1.32 +14 -0 xml-axis/java/src/org/apache/axis/wsdl/WSDL2Java.java Index: WSDL2Java.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/WSDL2Java.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- WSDL2Java.java 10 May 2002 20:06:22 -0000 1.31 +++ WSDL2Java.java 15 May 2002 20:22:01 -0000 1.32 @@ -167,10 +167,17 @@ addOptions(options); } // ctor + /** + * Instantiate an extension of the Parser + */ protected Parser createParser() { return new Emitter(); } // createParser + /** + * Parse an option + * @param CLOption is the option + */ protected void parseOption(CLOption option) { switch (option.getId()) { case FACTORY_CLASS_OPT: @@ -260,6 +267,11 @@ } } // parseOption + /** + * validateOptions + * This method is invoked after the options are set to validate + * the option settings. + */ protected void validateOptions() { super.validateOptions(); @@ -276,6 +288,8 @@ /** * Main + * Run the WSDL2Java emitter with the specified command-line arguments + * @param String[] command-line arguments */ public static void main(String args[]) { WSDL2Java wsdl2java = new WSDL2Java(); 1.5 +45 -0 xml-axis/java/src/org/apache/axis/wsdl/gen/WSDL2.java Index: WSDL2.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/gen/WSDL2.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- WSDL2.java 10 May 2002 14:45:04 -0000 1.4 +++ WSDL2.java 15 May 2002 20:22:01 -0000 1.5 @@ -101,18 +101,35 @@ protected String wsdlURI = null; protected Parser parser; + /** + * Constructor + * Used by extended classes to construct an instance of WSDL2 + */ protected WSDL2 () { parser = createParser(); } // ctor + /** + * createParser + * Used by extended classes to construct an instance of the Parser + */ protected Parser createParser() { return new Parser(); } // createParser + /** + * getParser + * get the Parser object + */ protected Parser getParser() { return parser; } // getParser + /** + * addOptions + * Add option descriptions to the tool. + * @param CLOptionDescriptor[] the options + */ protected void addOptions(CLOptionDescriptor[] newOptions) { if (newOptions != null && newOptions.length > 0) { CLOptionDescriptor[] allOptions = new CLOptionDescriptor[ @@ -123,6 +140,10 @@ } } // addOptions + /** + * Parse an option + * @param CLOption is the option + */ protected void parseOption(CLOption option) { switch (option.getId()) { case CLOption.TEXT_ARGUMENT: @@ -159,6 +180,11 @@ } } // parseOption + /** + * validateOptions + * This method is invoked after the options are set to validate and default the options + * the option settings. + **/ protected void validateOptions() { if (wsdlURI == null) { printUsage(); @@ -170,6 +196,11 @@ parser.getUsername(), parser.getPassword())); } // validateOptions + + /** + * checkForAuthInfo + * set user and password information + */ private void checkForAuthInfo(String uri) { URL url = null; try { @@ -190,6 +221,10 @@ } } + /** + * printUsage + * print usage information and quit. + */ protected void printUsage() { String lSep = System.getProperty("line.separator"); StringBuffer msg = new StringBuffer(); @@ -202,6 +237,11 @@ System.exit(1); } // printUsage + /** + * run + * checkes the command-line arguments and runs the tool. + * @param String[] command-line arguments. + */ protected void run(String[] args) { // Parse the arguments CLArgsParser argsParser = new CLArgsParser(args, options); @@ -238,6 +278,11 @@ } } // run + /** + * Main + * Run the tool with the specified command-line arguments + * @param String[] command-line arguments + */ public static void main(String[] args) { WSDL2 wsdl2 = new WSDL2(); wsdl2.run(args);