/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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. */ package org.apache.ws.java2wsdl; import java.util.Map; import org.apache.axis2.description.java2wsdl.Java2WSDLConstants; import org.apache.axis2.util.CommandLineOptionConstants; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ws.java2wsdl.jaxws.JAXWS2WSDLCodegenEngine; import org.apache.ws.java2wsdl.utils.Java2WSDLCommandLineOption; import org.apache.ws.java2wsdl.utils.Java2WSDLCommandLineOptionParser; import org.apache.ws.java2wsdl.utils.Java2WSDLOptionsValidator; public class Java2WSDL { private static Log log = LogFactory.getLog(Java2WSDL.class); public static void main(String[] args) throws Exception { Java2WSDLCommandLineOptionParser commandLineOptionParser = new Java2WSDLCommandLineOptionParser( args); if (isJwsOptionEnabled(commandLineOptionParser)){ JAXWS2WSDLCodegenEngine engine = new JAXWS2WSDLCodegenEngine(commandLineOptionParser.getAllOptions(), args); engine.generate(); return; } // validate the arguments validateCommandLineOptions(commandLineOptionParser); Java2WSDLCodegenEngine engine = new Java2WSDLCodegenEngine(commandLineOptionParser.getAllOptions()); engine.generate(); log.info("WSDL created at "+ engine.getOutputFile()); } public static void printUsage() { System.out.println("Usage: java2wsdl [options] -cn <fully qualified class name>"); System.out.println("\nwhere [options] include:"); System.out.println(" -o <output location> output directory"); System.out.println(" -of <output file name> output file name for the WSDL"); System.out.println(" -sn <service name> service name"); System.out.println(" -l <one or more soap addresses> location URIs, comma-delimited"); System.out.println(" -cp <class path uri> list of classpath entries - (urls)"); System.out.println(" -tn <target namespace> target namespace for service"); System.out.println(" -tp <target namespace prefix> target namespace prefix for service"); System.out.println(" -stn <schema target namespace> target namespace for schema"); System.out.println(" -stp <schema target namespace prefix> target namespace prefix for schema"); System.out.println(" -st <binding style> style for the WSDL"); System.out.println(" -u <binding use> use for the WSDL"); System.out.println(" -nsg <class name> fully qualified name of a class that implements NamespaceGenerator"); System.out.println(" -sg <class name> fully qualified name of a class that implements SchemaGenerator"); System.out.println(" -p2n [<java package>,<namespace] [<java package>,<namespace]... "); System.out.println(" java package to namespace mapping for argument and return types"); System.out.println(" -p2n [all, <namespace>] to assign all types to a single namespace"); System.out.println(" -efd <qualified/unqualified> setting for elementFormDefault (defaults to qualified)"); System.out.println(" -afd <qualified/unqualified> setting for attributeFormDefault (defaults to qualified)"); 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.out.println(" -doe disallow optional elements in the generated schema"); System.out.println(" -disableSOAP11 disable binding generation for SOAP 1.1"); System.out.println(" -disableSOAP12 disable binding generation for SOAP 1.2"); System.out.println(" -disableREST disable binding generation for REST"); System.out.println(" -mpn <messagePartName> change the part name of the generated wsdl messages"); System.out.println(" -ptn <portTypeName> port Type name of the WSDL"); System.out.println(" -soap11BindingName <SOAP 1.1 name> SOAP 1.1 binding name"); System.out.println(" -soap12BindingName <SOAP 1.2 name> SOAP 1.2 binding name"); System.out.println(" -restBindingName <REST name> REST binding name"); 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); } private static void validateCommandLineOptions( Java2WSDLCommandLineOptionParser parser) { if (parser.getAllOptions().size() == 0) { printUsage(); } else if (parser.getInvalidOptions(new Java2WSDLOptionsValidator()).size() > 0) { printUsage(); } } private static boolean isJwsOptionEnabled(Java2WSDLCommandLineOptionParser parser) { Map allOptions = parser.getAllOptions(); Java2WSDLCommandLineOption option = (Java2WSDLCommandLineOption) allOptions .get(Java2WSDLConstants.JAX_WS_SERVICE_OPTION); if( option == null){ return false; } return true; } }