[ https://issues.apache.org/jira/browse/AXIS2-5895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andreas Veithen resolved AXIS2-5895. ------------------------------------ Resolution: Incomplete > JAXWSCodeGenerationEngine extension is incomplete > ------------------------------------------------- > > Key: AXIS2-5895 > URL: https://issues.apache.org/jira/browse/AXIS2-5895 > Project: Axis2 > Issue Type: Test > Components: codegen > Affects Versions: 1.7.6 > Environment: jdk 1.8 > maven 3.3.3 > Reporter: Martin Gainty > Priority: Minor > Fix For: 1.8.0 > > > /* > * 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. > */ > //extension property requires an extension java class see below > package org.apache.axis2.wsdl.codegen.jaxws; > import java.lang.reflect.Field; > import java.util.ArrayList; > import java.util.Arrays; > import java.util.Iterator; > import java.util.List; > import java.util.Map; > import org.apache.axiom.om.util.LogOutputStream; > import org.apache.axis2.util.CommandLineOption; > import org.apache.axis2.util.CommandLineOptionConstants; > import org.apache.axis2.util.CommandLineOptionParser; > import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; > import org.apache.axis2.wsdl.codegen.CodeGenerationException; > import org.apache.commons.logging.Log; > import org.apache.commons.logging.LogFactory; > import com.sun.tools.ws.wscompile.WsimportTool; > /** > * The Class JAXWSCodeGenerationEngine. > */ > public class JAXWSCodeGenerationEngine { > private static final Log log = LogFactory > .getLog(JAXWSCodeGenerationEngine.class); > private CodeGenConfiguration configuration; > private CommandLineOptionParser commandLineOptionParser; > private String[] originalArgs; > /** > * Instantiates a new jAXWS code generation engine. > * > * @param configuration > * the configuration > * @param originalArgs > * the original args > * @throws CodeGenerationException > * the code generation exception > */ > public JAXWSCodeGenerationEngine(CodeGenConfiguration configuration, > String[] originalArgs) throws CodeGenerationException { > this.configuration = configuration; > this.originalArgs = originalArgs; > // loadExtensions(); > } > /** > * Instantiates a new jAXWS code generation engine. > * > * @param commandLineOptionParser > * the command line option parser > * @param originalArgs > * the original args > */ > public JAXWSCodeGenerationEngine( > CommandLineOptionParser commandLineOptionParser, > String[] originalArgs) { > this.commandLineOptionParser = commandLineOptionParser; > this.originalArgs = originalArgs; > // loadExtensions(); > } > /** > * Generate. > * > * @throws CodeGenerationException > * the code generation exception > */ > public void generate() throws CodeGenerationException { > LogOutputStream logOutputStream = new LogOutputStream(log, > Integer.MAX_VALUE); > com.sun.tools.ws.wscompile.WsimportTool importTool = new > com.sun.tools.ws.wscompile.WsimportTool(logOutputStream); > ArrayList<String> args = new ArrayList<String>(); > configurImportToolOptions(args); > mergeOriginalArgs(args); > String []array=args.toArray(new String[args.size()]); > log.info("JAXWSCodeGenerationEngine::generate LINE 100 before > importTool.run where importTool="+importTool); > //if(array[0].indexOf("extension")!=-1) > array[0]="extension=org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"; > log.debug("JAXWSCodeGenerationEngine::generate LINE 101 before > importTool.run where importTool(array="+array ); > boolean success = importTool.run(array); > log.debug("JAXWSCodeGenerationEngine::generate LINE 103 > SUCESS="+success); > if (success) { > log.info("Code generation completed"); > } > } > /** > * Merge original args. > * > * @param args > * the args > */ > private void mergeOriginalArgs(ArrayList<String> args) { > Map<String, CommandLineOption> allOptions = commandLineOptionParser > .getAllOptions(); > List<String> axisOptionList = new ArrayList<String>(); > List<String> originalArgsOps = new ArrayList<String>( > Arrays.asList(originalArgs)); > originalArgsOps > .remove("-" > > .concat(CommandLineOptionConstants.WSDL2JavaConstants.JAX_WS_SERVICE_OPTION)); > originalArgsOps > .remove("-" > > .concat(CommandLineOptionConstants.WSDL2JavaConstants.JAX_WS_SERVICE_OPTION_LONG)); > Field[] allFields = > CommandLineOptionConstants.WSDL2JavaConstants.class > .getFields(); > Iterator<String> mapItr = allOptions.keySet().iterator(); > for (Field field : allFields) { > if (String.class.equals(field.getType())) { > try { > axisOptionList > .add((String) field > > .get(CommandLineOptionConstants.WSDL2JavaConstants.class)); > } catch (IllegalArgumentException e) { > e.printStackTrace(); > } catch (IllegalAccessException e) { > e.printStackTrace(); > } > } > } > while (mapItr.hasNext()) { > CommandLineOption op = allOptions.get(mapItr.next()); > if (axisOptionList.contains(op.getOptionType())) { > if (op.getOptionType() != null) { > originalArgsOps.remove("-".concat(op.getOptionType())); > } > if (op.getOptionValue() != null) { > originalArgsOps.remove(op.getOptionValue()); > } > } > } > args.addAll(originalArgsOps); > log.info("Original WSImport options" + > Arrays.asList(originalArgsOps)); > log.info("All WSImport options" + Arrays.asList(args)); > } > /** > * Configur import tool options. > * > * @param args > * the args > */ > private void configurImportToolOptions(ArrayList<String> args) { > Map allOptions = commandLineOptionParser.getAllOptions(); > // Set some default options > //you cant add an extension keyword without a corresponding Extension > class > > args.add("extension=org.apache.axis2.wsdl.codegen.extension.JAXWSWrapperExtension"); > //args.add(WS_IMPORT_EXTENSION); > args.add(WS_IMPORT_NO_COMPILE); > args.add(WS_IMPORT_KEEP_FILE); > // Set some properties based on AXIS2 WSDL2JAVA options > String uri = getOptionValue( > allOptions, > > CommandLineOptionConstants.WSDL2JavaConstants.WSDL_LOCATION_URI_OPTION); > if (uri != null) { > args.add(uri); > } > String location = getOptionValue( > allOptions, > > CommandLineOptionConstants.WSDL2JavaConstants.OUTPUT_LOCATION_OPTION); > if (location == null) { > location = getOptionValue( > allOptions, > > CommandLineOptionConstants.WSDL2JavaConstants.OUTPUT_LOCATION_OPTION_LONG); > } > if (location != null) { > args.add(WS_IMPORT_FILE_OUTPUT_DIR); > args.add(location); > } > String pkg = getOptionValue(allOptions, > CommandLineOptionConstants.WSDL2JavaConstants.PACKAGE_OPTION); > if (pkg == null) { > pkg = getOptionValue( > allOptions, > > CommandLineOptionConstants.WSDL2JavaConstants.PACKAGE_OPTION_LONG); > } > if (pkg != null) { > args.add(WS_IMPORT_PKG); > args.add(pkg); > } > String proxcyHost = getOptionValue( > allOptions, > > CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_HOST_OPTION_LONG); > String proxcyPort = getOptionValue( > allOptions, > > CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_PORT_OPTION_LONG); > if (pkg != null) { > args.add(WS_IMPORT_PROXY); > args.add(proxcyHost + ":" + proxcyPort); > } > } > /** > * Gets the option value. > * > * @param allOptions > * the all options > * @param optionName > * the option name > * @return the option value > */ > private static String getOptionValue(Map allOptions, String optionName) { > CommandLineOption option = (CommandLineOption) allOptions > .get(optionName); > if (option != null) { > return option.getOptionValue().toString(); > } > return null; > } > public static final String WS_IMPORT_EXTENSION = "-extension"; > public static final String WS_IMPORT_NO_COMPILE = "-Xnocompile"; > public static final String WS_IMPORT_FILE_OUTPUT_DIR = "-d"; > public static final String WS_IMPORT_SOURCE_OUTPUT_DIR = "-s"; > public static final String WS_IMPORT_KEEP_FILE = "-keep"; > public static final String WS_IMPORT_PKG = "-p"; > public static final String WS_IMPORT_PROXY = "-httpproxy"; > } -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org