[ 
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

Reply via email to