001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements.  See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership.  The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License.  You may obtain a copy of the License at
009     *
010     *  http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing,
013     * software distributed under the License is distributed on an
014     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     * KIND, either express or implied.  See the License for the
016     * specific language governing permissions and limitations
017     * under the License.
018     */
019    
020    package org.apache.geronimo.jaxws.builder;
021    
022    import org.apache.geronimo.gshell.command.CommandContext;
023    import org.apache.geronimo.gshell.command.CommandSupport;
024    import org.apache.geronimo.gshell.command.annotation.CommandComponent;
025    import org.apache.geronimo.gshell.command.annotation.Requirement;
026    import org.apache.geronimo.gshell.shell.ShellInfo;
027    
028    /**
029     * GShell command for wsimport tool.
030     *  
031     * @version $Rev: 706640 $ $Date: 2008-10-21 14:44:05 +0000 (Tue, 21 Oct 2008) $
032     */
033    @CommandComponent(id="geronimo-jaxws-builder:wsimport", description="Generate JAX-WS artifacts from WSDL")
034    public class WsimportCommand extends CommandSupport {
035        
036        @Requirement
037        ShellInfo shellInfo;
038                 
039        @Override
040        public Object execute(final CommandContext context, final Object... args) throws Exception {
041            init(context);
042            
043            String[] arguments = toString(args); 
044            return JAXWSToolsCLI.run(JAXWSToolsCLI.Command.WSIMPORT, 
045                                     shellInfo.getHomeDir().getAbsolutePath(),
046                                     arguments, 
047                                     System.out); // should use io.out instead of System.out?
048        }
049        
050        @Override
051        protected Object doExecute() throws Exception { 
052            return null;
053        }
054            
055        private static String[] toString(Object [] args) {
056            String [] a = new String[args.length];
057            for (int i=0; i<a.length; i++) {
058                a[i] = args[i].toString();
059            }
060            return a;
061        }
062            
063    }