You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2007/12/03 19:58:05 UTC
svn commit: r600633 - in
/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder: ./
src/main/java/org/apache/geronimo/jaxws/builder/
Author: gawor
Date: Mon Dec 3 10:58:02 2007
New Revision: 600633
URL: http://svn.apache.org/viewvc?rev=600633&view=rev
Log:
add basic GShell commands for wsgen and wsimport tools (they are not hooked up yet) (GERONIMO-3665)
Added:
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsgenCommand.java (with props)
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsimportCommand.java (with props)
Modified:
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/pom.xml
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSToolsCLI.java
Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/pom.xml?rev=600633&r1=600632&r2=600633&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/pom.xml (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/pom.xml Mon Dec 3 10:58:02 2007
@@ -46,6 +46,36 @@
<version>${version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.gshell</groupId>
+ <artifactId>gshell-command-api</artifactId>
+ </dependency>
</dependencies>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.geronimo.gshell</groupId>
+ <artifactId>gshell-maven-plugin</artifactId>
+ <version>1.0-alpha-1-SNAPSHOT</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.geronimo.gshell</groupId>
+ <artifactId>gshell-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>
Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSToolsCLI.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSToolsCLI.java?rev=600633&r1=600632&r2=600633&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSToolsCLI.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSToolsCLI.java Mon Dec 3 10:58:02 2007
@@ -18,6 +18,7 @@
package org.apache.geronimo.jaxws.builder;
import java.io.File;
+import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.net.JarURLConnection;
import java.net.URI;
@@ -29,6 +30,8 @@
public class JAXWSToolsCLI {
+ enum Command { WSGEN, WSIMPORT };
+
private static final String USAGE_MSG =
"Usage: jaxws-tools <toolName> <tool options>\n\n" +
"where <toolName> is:\n" +
@@ -40,10 +43,28 @@
System.err.println(USAGE_MSG);
System.exit(1);
}
+
+ Command cmd = null;
+ if (args[0].equalsIgnoreCase("wsgen")) {
+ cmd = Command.WSGEN;
+ } else if (args[0].equalsIgnoreCase("wsimport")) {
+ cmd = Command.WSIMPORT;
+ } else {
+ System.err.println("Error: Unsupported toolName [" + args[0] + "].");
+ System.err.println();
+ System.err.println(USAGE_MSG);
+ System.exit(1);
+ }
String geroninoHome = getGeronimoHome();
+ String[] arguments = getCmdArguments(args);
+ boolean rs = run(cmd, geroninoHome, arguments, System.out);
+ System.exit( (rs) ? 0 : 1 );
+ }
+
+ static boolean run(Command cmd, String geronimoHome, String[] args, OutputStream out) throws Exception {
String repository = System.getProperty("Xorg.apache.geronimo.repository.boot.path", "repository");
- Maven2Repository mavenRepository = new Maven2Repository((new File(geroninoHome, repository)).getCanonicalFile());
+ Maven2Repository mavenRepository = new Maven2Repository((new File(geronimoHome, repository)).getCanonicalFile());
ArrayList<ListableRepository> repositories = new ArrayList<ListableRepository>(1);
repositories.add(mavenRepository);
@@ -51,30 +72,30 @@
tools.setUseSunSAAJ();
tools.setOverrideContextClassLoader(true);
- File [] jars = tools.getClasspath(repositories);
-
- System.setProperty("java.class.path", JAXWSTools.toString(jars));
-
+ File [] jars = tools.getClasspath(repositories);
URL[] jarUrls = JAXWSTools.toURL(jars);
-
- boolean rs = false;
+
+ String javaClassPath = System.getProperty("java.class.path");
+ System.setProperty("java.class.path", JAXWSTools.toString(jars));
try {
- if (args[0].equalsIgnoreCase("wsgen")) {
- rs = tools.invokeWsgen(jarUrls, System.out, getCmdArguments(args));
- } else if (args[0].equalsIgnoreCase("wsimport")) {
- rs = tools.invokeWsimport(jarUrls, System.out, getCmdArguments(args));
+ if (cmd.equals(Command.WSGEN)) {
+ return tools.invokeWsgen(jarUrls, out, args);
+ } else if (cmd.equals(Command.WSIMPORT)) {
+ return tools.invokeWsimport(jarUrls, out, args);
} else {
- System.err.println("Error: Unsupported toolName [" + args[0] + "].");
- System.err.println();
- System.err.println(USAGE_MSG);
- System.exit(1);
+ throw new IllegalArgumentException("Invalid command: " + cmd);
}
} catch (InvocationTargetException e) {
- throw e.getTargetException();
+ Throwable exception = e.getTargetException();
+ if (exception instanceof Exception) {
+ throw (Exception)exception;
+ } else {
+ throw e;
+ }
+ } finally {
+ System.setProperty("java.class.path", javaClassPath);
}
-
- System.exit( (rs) ? 0 : 1 );
}
private static String[] getCmdArguments(String[] args) {
Added: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsgenCommand.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsgenCommand.java?rev=600633&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsgenCommand.java (added)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsgenCommand.java Mon Dec 3 10:58:02 2007
@@ -0,0 +1,63 @@
+/*
+ * 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.geronimo.jaxws.builder;
+
+import org.apache.geronimo.gshell.command.CommandContext;
+import org.apache.geronimo.gshell.command.CommandSupport;
+import org.apache.geronimo.gshell.command.annotation.CommandComponent;
+import org.apache.geronimo.gshell.command.annotation.Requirement;
+import org.apache.geronimo.gshell.shell.ShellInfo;
+
+/**
+ * GShell command for wsgen tool.
+ *
+ * @version $Rev: 595889 $ $Date: 2007-11-16 20:13:06 -0500 (Fri, 16 Nov 2007) $
+ */
+@CommandComponent(id="geronimo-jaxws-builder:wsgen", description="Generate JAX-WS artifacts from class")
+public class WsgenCommand extends CommandSupport {
+
+ @Requirement
+ ShellInfo shellInfo;
+
+ @Override
+ public Object execute(final CommandContext context, final Object... args) throws Exception {
+ init(context);
+
+ String[] arguments = toString(args);
+ return JAXWSToolsCLI.run(JAXWSToolsCLI.Command.WSGEN,
+ shellInfo.getHomeDir().getAbsolutePath(),
+ arguments,
+ System.out); // should use io.out instead of System.out?
+ }
+
+ @Override
+ protected Object doExecute() throws Exception {
+ return null;
+ }
+
+ private static String[] toString(Object [] args) {
+ String [] a = new String[args.length];
+ for (int i=0; i<a.length; i++) {
+ a[i] = args[i].toString();
+ }
+ return a;
+ }
+
+}
Propchange: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsgenCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsimportCommand.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsimportCommand.java?rev=600633&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsimportCommand.java (added)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsimportCommand.java Mon Dec 3 10:58:02 2007
@@ -0,0 +1,63 @@
+/*
+ * 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.geronimo.jaxws.builder;
+
+import org.apache.geronimo.gshell.command.CommandContext;
+import org.apache.geronimo.gshell.command.CommandSupport;
+import org.apache.geronimo.gshell.command.annotation.CommandComponent;
+import org.apache.geronimo.gshell.command.annotation.Requirement;
+import org.apache.geronimo.gshell.shell.ShellInfo;
+
+/**
+ * GShell command for wsimport tool.
+ *
+ * @version $Rev: 595889 $ $Date: 2007-11-16 20:13:06 -0500 (Fri, 16 Nov 2007) $
+ */
+@CommandComponent(id="geronimo-jaxws-builder:wsimport", description="Generate JAX-WS artifacts from WSDL")
+public class WsimportCommand extends CommandSupport {
+
+ @Requirement
+ ShellInfo shellInfo;
+
+ @Override
+ public Object execute(final CommandContext context, final Object... args) throws Exception {
+ init(context);
+
+ String[] arguments = toString(args);
+ return JAXWSToolsCLI.run(JAXWSToolsCLI.Command.WSIMPORT,
+ shellInfo.getHomeDir().getAbsolutePath(),
+ arguments,
+ System.out); // should use io.out instead of System.out?
+ }
+
+ @Override
+ protected Object doExecute() throws Exception {
+ return null;
+ }
+
+ private static String[] toString(Object [] args) {
+ String [] a = new String[args.length];
+ for (int i=0; i<a.length; i++) {
+ a[i] = args[i].toString();
+ }
+ return a;
+ }
+
+}
Propchange: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsimportCommand.java
------------------------------------------------------------------------------
svn:eol-style = native