Author: heiko.braun(a)jboss.com
Date: 2007-05-30 04:42:44 -0400 (Wed, 30 May 2007)
New Revision: 3300
Added:
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSConsume.java
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSProvide.java
Removed:
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/wsconsume.java
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/wsprovide.java
Log:
Rename ANT tasks and command line wrapper
Copied: trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd (from rev 3295,
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/command)
Copied: trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSConsume.java
(from rev 3296,
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/command/wsconsume.java)
===================================================================
--- trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSConsume.java
(rev 0)
+++
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSConsume.java 2007-05-30
08:42:44 UTC (rev 3300)
@@ -0,0 +1,249 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.spi.tools.cmd;
+
+import gnu.getopt.Getopt;
+import gnu.getopt.LongOpt;
+import org.jboss.wsf.spi.tools.WSContractConsumer;
+
+import java.io.File;
+import java.io.PrintStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * WSConsumeTask is a cmd line tool that generates portable JAX-WS artifacts
+ * from a WSDL file.
+ *
+ * <pre>
+ * usage: WSConsumeTask [options] <wsdl-url>
+ * options:
+ * -h, --help Show this help message
+ * -b, --binding=<file> One or more JAX-WS or JAXB binding files
+ * -k, --keep Keep/Generate Java source
+ * -c --catalog=<file> Oasis XML Catalog file for entity
resolution
+ * -p --package=<name> The target package for generated source
+ * -w --wsdlLocation=<loc> Value to use for @(a)WebService.wsdlLocation
+ * -o, --output=<directory> The directory to put generated artifacts
+ * -s, --source=<directory> The directory to put Java source
+ * -q, --quiet Be somewhat more quiet
+ * -t, --show-traces Show full exception stack traces
+ * -l, --load-consumer Load the consumer and exit (debug utility)
+ * </pre>
+ *
+ * @author <a href="mailto:jason.greene@jboss.com">Jason T.
Greene</a>
+ * @version $Revision$
+ */
+public class WSConsume
+{
+ private List<File> bindingFiles = new ArrayList<File>();
+ private boolean generateSource = false;
+ private File catalog = null;
+ private String targetPackage = null;
+ private String wsdlLocation = null;
+ private boolean quiet = false;
+ private boolean showTraces = false;
+ private boolean loadConsumer = false;
+ private File outputDir = new File("output");
+ private File sourceDir = null;
+
+ public static String PROGRAM_NAME = System.getProperty("program.name",
WSConsume.class.getName());
+
+ public static void main(String[] args)
+ {
+ WSConsume importer = new WSConsume();
+ URL wsdl = importer.parseArguments(args);
+ System.exit(importer.importServices(wsdl));
+ }
+
+ private URL parseArguments(String[] args)
+ {
+ String shortOpts = "hb:kc:p:w:o:s:qtl";
+ LongOpt[] longOpts =
+ {
+ new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
+ new LongOpt("binding", LongOpt.REQUIRED_ARGUMENT, null, 'b'),
+ new LongOpt("keep", LongOpt.NO_ARGUMENT, null, 'k'),
+ new LongOpt("catalog", LongOpt.REQUIRED_ARGUMENT, null, 'c'),
+ new LongOpt("package", LongOpt.REQUIRED_ARGUMENT, null, 'p'),
+ new LongOpt("wsdlLocation", LongOpt.REQUIRED_ARGUMENT, null,
'w'),
+ new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
+ new LongOpt("source", LongOpt.REQUIRED_ARGUMENT, null, 's'),
+ new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q'),
+ new LongOpt("show-traces", LongOpt.NO_ARGUMENT, null, 't'),
+ new LongOpt("load-consumer", LongOpt.NO_ARGUMENT, null, 'l'),
+ };
+
+ Getopt getopt = new Getopt(PROGRAM_NAME, args, shortOpts, longOpts);
+ int c;
+ while ((c = getopt.getopt()) != -1)
+ {
+ switch (c)
+ {
+ case 'b':
+ bindingFiles.add(new File(getopt.getOptarg()));
+ break;
+ case 'k':
+ generateSource = true;
+ break;
+ case 'c':
+ catalog = new File(getopt.getOptarg());
+ break;
+ case 'p':
+ targetPackage = getopt.getOptarg();
+ break;
+ case 'w':
+ wsdlLocation = getopt.getOptarg();
+ break;
+ case 'o':
+ outputDir = new File(getopt.getOptarg());
+ break;
+ case 's':
+ sourceDir = new File(getopt.getOptarg());
+ break;
+ case 'q':
+ quiet = true;
+ break;
+ case 't':
+ showTraces = true;
+ break;
+ case 'l':
+ loadConsumer = true;
+ break;
+ case 'h':
+ printHelp();
+ System.exit(0);
+ case '?':
+ System.exit(1);
+ }
+ }
+
+ // debug output
+ if(loadConsumer)
+ {
+ WSContractConsumer importer = WSContractConsumer.newInstance();
+ System.out.println("WSContractConsumer instance: " +
importer.getClass().getCanonicalName());
+ System.exit(0);
+ }
+
+ int wsdlPos = getopt.getOptind();
+ if (wsdlPos >= args.length)
+ {
+ System.err.println("Error: WSDL URL was not specified!");
+ printHelp();
+ System.exit(1);
+ }
+
+ URL url = null;
+ try
+ {
+ try
+ {
+ url = new URL(args[wsdlPos]);
+ }
+ catch (MalformedURLException e)
+ {
+ File file = new File(args[wsdlPos]);
+ url = file.toURL();
+ }
+ }
+ catch (MalformedURLException e)
+ {
+ System.err.println("Error: Invalid URI: " + args[wsdlPos]);
+ System.exit(1);
+ }
+
+ return url;
+ }
+
+
+ private int importServices(URL wsdl)
+ {
+ WSContractConsumer importer = WSContractConsumer.newInstance();
+
+ importer.setGenerateSource(generateSource);
+ importer.setOutputDirectory(outputDir);
+ if (sourceDir != null)
+ importer.setSourceDirectory(sourceDir);
+
+ if (! quiet)
+ importer.setMessageStream(System.out);
+
+ if (catalog != null)
+ importer.setCatalog(catalog);
+
+ if (targetPackage != null)
+ importer.setTargetPackage(targetPackage);
+
+ if (wsdlLocation != null)
+ importer.setWsdlLocation(wsdlLocation);
+
+ if (bindingFiles != null && bindingFiles.size() > 0)
+ importer.setBindingFiles(bindingFiles);
+
+ try
+ {
+ importer.consume(wsdl);
+ return 0;
+ }
+ catch (Throwable t)
+ {
+ System.err.println("Error: Could not import. (use --show-traces to see full
traces)");
+ if (!showTraces)
+ {
+ String message = t.getMessage();
+ if (message == null)
+ message = t.getClass().getSimpleName();
+ System.err.println("Error: " + message);
+ }
+ else
+ {
+ t.printStackTrace(System.err);
+ }
+
+ }
+
+ return 1;
+ }
+
+ private static void printHelp()
+ {
+ PrintStream out = System.out;
+ out.println("WSConsumeTask is a cmd line tool that generates portable JAX-WS
artifacts from a WSDL file.\n");
+ out.println("usage: " + PROGRAM_NAME + " [options]
<wsdl-url>\n");
+ out.println("options: ");
+ out.println(" -h, --help Show this help message");
+ out.println(" -b, --binding=<file> One or more JAX-WS or JAXB
binding files ");
+ out.println(" -k, --keep Keep/Generate Java
source");
+ out.println(" -c --catalog=<file> Oasis XML Catalog file for
entity resolution");
+ out.println(" -p --package=<name> The target package for
generated source");
+ out.println(" -w --wsdlLocation=<loc> Value to use for
@WebService.wsdlLocation");
+ out.println(" -o, --output=<directory> The directory to put
generated artifacts");
+ out.println(" -s, --source=<directory> The directory to put Java
source");
+ out.println(" -q, --quiet Be somewhat more quiet");
+ out.println(" -t, --show-traces Show full exception stack
traces");
+ out.println(" -l, --load-consumer Load the consumer and exit (debug
utility)");
+ out.flush();
+ }
+}
Property changes on:
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSConsume.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Copied: trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSProvide.java
(from rev 3296,
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/command/wsprovide.java)
===================================================================
--- trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSProvide.java
(rev 0)
+++
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSProvide.java 2007-05-30
08:42:44 UTC (rev 3300)
@@ -0,0 +1,238 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.spi.tools.cmd;
+
+import gnu.getopt.Getopt;
+import gnu.getopt.LongOpt;
+import org.jboss.wsf.spi.tools.WSContractProvider;
+import org.jboss.wsf.spi.utils.JavaUtils;
+
+import java.io.File;
+import java.io.PrintStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * WSProvideTask is a cmd line tool that generates portable JAX-WS artifacts
+ * for a service endpoint implementation.
+ *
+ * <pre>
+ * usage: WSProvideTask [options] <endpoint class name>
+ * options:
+ * -h, --help Show this help message
+ * -k, --keep Keep/Generate Java source
+ * -w, --wsdl Enable WSDL file generation
+ * -c. --classpath=<path< The classpath that contains the endpoint
+ * -o, --output=<directory> The directory to put generated artifacts
+ * -r, --resource=<directory> The directory to put resource artifacts
+ * -s, --source=<directory> The directory to put Java source
+ * -q, --quiet Be somewhat more quiet
+ * -t, --show-traces Show full exception stack traces
+ * -l, --load-provider Load the provider and exit (debug utility)
+ * </pre>
+ *
+ * @author <a href="mailto:jason.greene@jboss.com">Jason T.
Greene</a>
+ * @version $Revision$
+ */
+public class WSProvide
+{
+ private boolean generateSource = false;
+ private boolean generateWsdl = false;
+ private boolean quiet = false;
+ private boolean showTraces = false;
+ private boolean loadProvider = false;
+ private ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ private File outputDir = new File("output");
+ private File resourceDir = null;
+ private File sourceDir = null;
+
+ public static String PROGRAM_NAME = System.getProperty("program.name",
WSProvide.class.getSimpleName());
+
+ public static void main(String[] args)
+ {
+ WSProvide generate = new WSProvide();
+ String endpoint = generate.parseArguments(args);
+ System.exit(generate.generate(endpoint));
+ }
+
+ private String parseArguments(String[] args)
+ {
+ String shortOpts = "hwko:r:s:c:qtl";
+ LongOpt[] longOpts =
+ {
+ new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
+ new LongOpt("wsdl", LongOpt.NO_ARGUMENT, null, 'w'),
+ new LongOpt("keep", LongOpt.NO_ARGUMENT, null, 'k'),
+ new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
+ new LongOpt("resource", LongOpt.REQUIRED_ARGUMENT, null,
'r'),
+ new LongOpt("source", LongOpt.REQUIRED_ARGUMENT, null, 's'),
+ new LongOpt("classpath", LongOpt.REQUIRED_ARGUMENT, null,
'c'),
+ new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q'),
+ new LongOpt("show-traces", LongOpt.NO_ARGUMENT, null, 't'),
+ new LongOpt("load-provider", LongOpt.NO_ARGUMENT, null, 'l'),
+ };
+
+ Getopt getopt = new Getopt(PROGRAM_NAME, args, shortOpts, longOpts);
+ int c;
+ while ((c = getopt.getopt()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ generateSource = true;
+ break;
+ case 's':
+ sourceDir = new File(getopt.getOptarg());
+ break;
+ case 'r':
+ resourceDir = new File(getopt.getOptarg());
+ break;
+ case 'w':
+ generateWsdl = true;
+ break;
+ case 't':
+ showTraces = true;
+ break;
+ case 'o':
+ outputDir = new File(getopt.getOptarg());
+ break;
+ case 'q':
+ quiet = true;
+ break;
+ case 'c':
+ processClassPath(getopt.getOptarg());
+ break;
+ case 'l':
+ loadProvider = true;
+ break;
+ case 'h':
+ printHelp();
+ System.exit(0);
+ case '?':
+ System.exit(1);
+ }
+ }
+
+ // debug output
+ if(loadProvider)
+ {
+ WSContractProvider gen = WSContractProvider.newInstance(loader);
+ System.out.println("WSContractProvider instance: " +
gen.getClass().getCanonicalName());
+ System.exit(0);
+ }
+
+ int endpointPos = getopt.getOptind();
+ if (endpointPos >= args.length)
+ {
+ System.err.println("Error: endpoint implementation was not
specified!");
+ printHelp();
+ System.exit(1);
+ }
+
+ return args[endpointPos];
+ }
+
+
+ private int generate(String endpoint)
+ {
+ if (!JavaUtils.isLoaded(endpoint, loader))
+ {
+ System.err.println("Error: Could not load class [" + endpoint +
"]. Did you specify a valid --classpath?");
+ return 1;
+ }
+
+ WSContractProvider gen = WSContractProvider.newInstance(loader);
+ gen.setGenerateWsdl(generateWsdl);
+ gen.setGenerateSource(generateSource);
+ gen.setOutputDirectory(outputDir);
+ if (resourceDir != null)
+ gen.setResourceDirectory(resourceDir);
+ if (sourceDir != null)
+ gen.setSourceDirectory(sourceDir);
+
+ if (! quiet)
+ gen.setMessageStream(System.out);
+
+ try
+ {
+ gen.provide(endpoint);
+ return 0;
+ }
+ catch (Throwable t)
+ {
+ System.err.println("Error: Could not generate. (use --show-traces to see
full traces)");
+ if (!showTraces)
+ {
+ String message = t.getMessage();
+ if (message == null)
+ message = t.getClass().getSimpleName();
+ System.err.println("Error: " + message);
+ }
+ else
+ {
+ t.printStackTrace(System.err);
+ }
+
+ }
+
+ return 1;
+ }
+
+ private void processClassPath(String classPath)
+ {
+ String[] entries = classPath.split(File.pathSeparator);
+ List<URL> urls= new ArrayList<URL>(entries.length);
+ for (String entry : entries)
+ {
+ try
+ {
+ urls.add(new File(entry).toURL());
+ }
+ catch (MalformedURLException e)
+ {
+ System.err.println("Error: a classpath entry was malformed: " +
entry);
+ }
+ }
+ loader = new URLClassLoader(urls.toArray(new URL[0]), loader);
+ }
+
+ private static void printHelp()
+ {
+ PrintStream out = System.out;
+ out.println("WSProvideTask generates portable JAX-WS artifacts for an endpoint
implementation.\n");
+ out.println("usage: " + PROGRAM_NAME + " [options] <endpoint
class name>\n");
+ out.println("options: ");
+ out.println(" -h, --help Show this help message");
+ out.println(" -k, --keep Keep/Generate Java
source");
+ out.println(" -w, --wsdl Enable WSDL file
generation");
+ out.println(" -c. --classpath=<path> The classpath that contains
the endpoint");
+ out.println(" -o, --output=<directory> The directory to put
generated artifacts");
+ out.println(" -r, --resource=<directory> The directory to put
resource artifacts");
+ out.println(" -s, --source=<directory> The directory to put Java
source");
+ out.println(" -q, --quiet Be somewhat more quiet");
+ out.println(" -t, --show-traces Show full exception stack
traces");
+ out.flush();
+ }
+}
Property changes on:
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/WSProvide.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/wsconsume.java
===================================================================
---
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/command/wsconsume.java 2007-05-30
07:17:39 UTC (rev 3295)
+++
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/wsconsume.java 2007-05-30
08:42:44 UTC (rev 3300)
@@ -1,233 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.wsf.spi.tools.command;
-
-import gnu.getopt.Getopt;
-import gnu.getopt.LongOpt;
-import org.jboss.wsf.spi.tools.api.WSContractConsumer;
-
-import java.io.File;
-import java.io.PrintStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * wsconsume is a command line tool that generates portable JAX-WS artifacts
- * from a WSDL file.
- *
- * <pre>
- * usage: wsconsume [options] <wsdl-url>
- * options:
- * -h, --help Show this help message
- * -b, --binding=<file> One or more JAX-WS or JAXB binding files
- * -k, --keep Keep/Generate Java source
- * -c --catalog=<file> Oasis XML Catalog file for entity
resolution
- * -p --package=<name> The target package for generated source
- * -w --wsdlLocation=<loc> Value to use for @(a)WebService.wsdlLocation
- * -o, --output=<directory> The directory to put generated artifacts
- * -s, --source=<directory> The directory to put Java source
- * -q, --quiet Be somewhat more quiet
- * -t, --show-traces Show full exception stack traces
- * </pre>
- *
- * @author <a href="mailto:jason.greene@jboss.com">Jason T.
Greene</a>
- * @version $Revision$
- */
-public class wsconsume
-{
- private List<File> bindingFiles = new ArrayList<File>();
- private boolean generateSource = false;
- private File catalog = null;
- private String targetPackage = null;
- private String wsdlLocation = null;
- private boolean quiet = false;
- private boolean showTraces = false;
- private File outputDir = new File("output");
- private File sourceDir = null;
-
- public static String PROGRAM_NAME = System.getProperty("program.name",
wsconsume.class.getName());
-
- public static void main(String[] args)
- {
- wsconsume importer = new wsconsume();
- URL wsdl = importer.parseArguments(args);
- System.exit(importer.importServices(wsdl));
- }
-
- private URL parseArguments(String[] args)
- {
- String shortOpts = "hb:kc:p:w:o:s:qt";
- LongOpt[] longOpts =
- {
- new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
- new LongOpt("binding", LongOpt.REQUIRED_ARGUMENT, null, 'b'),
- new LongOpt("keep", LongOpt.NO_ARGUMENT, null, 'k'),
- new LongOpt("catalog", LongOpt.REQUIRED_ARGUMENT, null, 'c'),
- new LongOpt("package", LongOpt.REQUIRED_ARGUMENT, null, 'p'),
- new LongOpt("wsdlLocation", LongOpt.REQUIRED_ARGUMENT, null,
'w'),
- new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
- new LongOpt("source", LongOpt.REQUIRED_ARGUMENT, null, 's'),
- new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q'),
- new LongOpt("show-traces", LongOpt.NO_ARGUMENT, null, 't'),
- };
-
- Getopt getopt = new Getopt(PROGRAM_NAME, args, shortOpts, longOpts);
- int c;
- while ((c = getopt.getopt()) != -1)
- {
- switch (c)
- {
- case 'b':
- bindingFiles.add(new File(getopt.getOptarg()));
- break;
- case 'k':
- generateSource = true;
- break;
- case 'c':
- catalog = new File(getopt.getOptarg());
- break;
- case 'p':
- targetPackage = getopt.getOptarg();
- break;
- case 'w':
- wsdlLocation = getopt.getOptarg();
- break;
- case 'o':
- outputDir = new File(getopt.getOptarg());
- break;
- case 's':
- sourceDir = new File(getopt.getOptarg());
- break;
- case 'q':
- quiet = true;
- break;
- case 't':
- showTraces = true;
- break;
- case 'h':
- printHelp();
- System.exit(0);
- case '?':
- System.exit(1);
- }
- }
-
- int wsdlPos = getopt.getOptind();
- if (wsdlPos >= args.length)
- {
- System.err.println("Error: WSDL URL was not specified!");
- printHelp();
- System.exit(1);
- }
-
- URL url = null;
- try
- {
- try
- {
- url = new URL(args[wsdlPos]);
- }
- catch (MalformedURLException e)
- {
- File file = new File(args[wsdlPos]);
- url = file.toURL();
- }
- }
- catch (MalformedURLException e)
- {
- System.err.println("Error: Invalid URI: " + args[wsdlPos]);
- System.exit(1);
- }
-
- return url;
- }
-
-
- private int importServices(URL wsdl)
- {
- WSContractConsumer importer = WSContractConsumer.newInstance();
- importer.setGenerateSource(generateSource);
- importer.setOutputDirectory(outputDir);
- if (sourceDir != null)
- importer.setSourceDirectory(sourceDir);
-
- if (! quiet)
- importer.setMessageStream(System.out);
-
- if (catalog != null)
- importer.setCatalog(catalog);
-
- if (targetPackage != null)
- importer.setTargetPackage(targetPackage);
-
- if (wsdlLocation != null)
- importer.setWsdlLocation(wsdlLocation);
-
- if (bindingFiles != null && bindingFiles.size() > 0)
- importer.setBindingFiles(bindingFiles);
-
- try
- {
- importer.consume(wsdl);
- return 0;
- }
- catch (Throwable t)
- {
- System.err.println("Error: Could not import. (use --show-traces to see full
traces)");
- if (!showTraces)
- {
- String message = t.getMessage();
- if (message == null)
- message = t.getClass().getSimpleName();
- System.err.println("Error: " + message);
- }
- else
- {
- t.printStackTrace(System.err);
- }
-
- }
-
- return 1;
- }
-
- private static void printHelp()
- {
- PrintStream out = System.out;
- out.println("wsconsume is a command line tool that generates portable JAX-WS
artifacts from a WSDL file.\n");
- out.println("usage: " + PROGRAM_NAME + " [options]
<wsdl-url>\n");
- out.println("options: ");
- out.println(" -h, --help Show this help message");
- out.println(" -b, --binding=<file> One or more JAX-WS or JAXB
binding files ");
- out.println(" -k, --keep Keep/Generate Java
source");
- out.println(" -c --catalog=<file> Oasis XML Catalog file for
entity resolution");
- out.println(" -p --package=<name> The target package for
generated source");
- out.println(" -w --wsdlLocation=<loc> Value to use for
@WebService.wsdlLocation");
- out.println(" -o, --output=<directory> The directory to put
generated artifacts");
- out.println(" -s, --source=<directory> The directory to put Java
source");
- out.println(" -q, --quiet Be somewhat more quiet");
- out.println(" -t, --show-traces Show full exception stack
traces");
- out.flush();
- }
-}
Deleted: trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/wsprovide.java
===================================================================
---
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/command/wsprovide.java 2007-05-30
07:17:39 UTC (rev 3295)
+++
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/cmd/wsprovide.java 2007-05-30
08:42:44 UTC (rev 3300)
@@ -1,224 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.wsf.spi.tools.command;
-
-import gnu.getopt.Getopt;
-import gnu.getopt.LongOpt;
-import org.jboss.wsf.spi.utils.JavaUtils;
-import org.jboss.wsf.spi.tools.api.WSContractProvider;
-
-import java.io.File;
-import java.io.PrintStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * wsprovide is a command line tool that generates portable JAX-WS artifacts
- * for a service endpoint implementation.
- *
- * <pre>
- * usage: wsprovide [options] <endpoint class name>
- * options:
- * -h, --help Show this help message
- * -k, --keep Keep/Generate Java source
- * -w, --wsdl Enable WSDL file generation
- * -c. --classpath=<path< The classpath that contains the endpoint
- * -o, --output=<directory> The directory to put generated artifacts
- * -r, --resource=<directory> The directory to put resource artifacts
- * -s, --source=<directory> The directory to put Java source
- * -q, --quiet Be somewhat more quiet
- * -t, --show-traces Show full exception stack traces
- * </pre>
- *
- * @author <a href="mailto:jason.greene@jboss.com">Jason T.
Greene</a>
- * @version $Revision$
- */
-public class wsprovide
-{
- private boolean generateSource = false;
- private boolean generateWsdl = false;
- private boolean quiet = false;
- private boolean showTraces = false;
- private ClassLoader loader = Thread.currentThread().getContextClassLoader();
- private File outputDir = new File("output");
- private File resourceDir = null;
- private File sourceDir = null;
-
- public static String PROGRAM_NAME = System.getProperty("program.name",
wsprovide.class.getSimpleName());
-
- public static void main(String[] args)
- {
- wsprovide generate = new wsprovide();
- String endpoint = generate.parseArguments(args);
- System.exit(generate.generate(endpoint));
- }
-
- private String parseArguments(String[] args)
- {
- String shortOpts = "hwko:r:s:c:qt";
- LongOpt[] longOpts =
- {
- new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
- new LongOpt("wsdl", LongOpt.NO_ARGUMENT, null, 'w'),
- new LongOpt("keep", LongOpt.NO_ARGUMENT, null, 'k'),
- new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
- new LongOpt("resource", LongOpt.REQUIRED_ARGUMENT, null,
'r'),
- new LongOpt("source", LongOpt.REQUIRED_ARGUMENT, null, 's'),
- new LongOpt("classpath", LongOpt.REQUIRED_ARGUMENT, null,
'c'),
- new LongOpt("quiet", LongOpt.NO_ARGUMENT, null, 'q'),
- new LongOpt("show-traces", LongOpt.NO_ARGUMENT, null, 't'),
- };
-
- Getopt getopt = new Getopt(PROGRAM_NAME, args, shortOpts, longOpts);
- int c;
- while ((c = getopt.getopt()) != -1)
- {
- switch (c)
- {
- case 'k':
- generateSource = true;
- break;
- case 's':
- sourceDir = new File(getopt.getOptarg());
- break;
- case 'r':
- resourceDir = new File(getopt.getOptarg());
- break;
- case 'w':
- generateWsdl = true;
- break;
- case 't':
- showTraces = true;
- break;
- case 'o':
- outputDir = new File(getopt.getOptarg());
- break;
- case 'q':
- quiet = true;
- break;
- case 'c':
- processClassPath(getopt.getOptarg());
- break;
- case 'h':
- printHelp();
- System.exit(0);
- case '?':
- System.exit(1);
- }
- }
-
- int endpointPos = getopt.getOptind();
- if (endpointPos >= args.length)
- {
- System.err.println("Error: endpoint implementation was not
specified!");
- printHelp();
- System.exit(1);
- }
-
- return args[endpointPos];
- }
-
-
- private int generate(String endpoint)
- {
- if (!JavaUtils.isLoaded(endpoint, loader))
- {
- System.err.println("Error: Could not load class [" + endpoint +
"]. Did you specify a valid --classpath?");
- return 1;
- }
-
- WSContractProvider gen = WSContractProvider.newInstance(loader);
- gen.setGenerateWsdl(generateWsdl);
- gen.setGenerateSource(generateSource);
- gen.setOutputDirectory(outputDir);
- if (resourceDir != null)
- gen.setResourceDirectory(resourceDir);
- if (sourceDir != null)
- gen.setSourceDirectory(sourceDir);
-
- if (! quiet)
- gen.setMessageStream(System.out);
-
- try
- {
- gen.provide(endpoint);
- return 0;
- }
- catch (Throwable t)
- {
- System.err.println("Error: Could not generate. (use --show-traces to see
full traces)");
- if (!showTraces)
- {
- String message = t.getMessage();
- if (message == null)
- message = t.getClass().getSimpleName();
- System.err.println("Error: " + message);
- }
- else
- {
- t.printStackTrace(System.err);
- }
-
- }
-
- return 1;
- }
-
- private void processClassPath(String classPath)
- {
- String[] entries = classPath.split(File.pathSeparator);
- List<URL> urls= new ArrayList<URL>(entries.length);
- for (String entry : entries)
- {
- try
- {
- urls.add(new File(entry).toURL());
- }
- catch (MalformedURLException e)
- {
- System.err.println("Error: a classpath entry was malformed: " +
entry);
- }
- }
- loader = new URLClassLoader(urls.toArray(new URL[0]), loader);
- }
-
- private static void printHelp()
- {
- PrintStream out = System.out;
- out.println("wsprovide generates portable JAX-WS artifacts for an endpoint
implementation.\n");
- out.println("usage: " + PROGRAM_NAME + " [options] <endpoint
class name>\n");
- out.println("options: ");
- out.println(" -h, --help Show this help message");
- out.println(" -k, --keep Keep/Generate Java
source");
- out.println(" -w, --wsdl Enable WSDL file
generation");
- out.println(" -c. --classpath=<path> The classpath that contains
the endpoint");
- out.println(" -o, --output=<directory> The directory to put
generated artifacts");
- out.println(" -r, --resource=<directory> The directory to put
resource artifacts");
- out.println(" -s, --source=<directory> The directory to put Java
source");
- out.println(" -q, --quiet Be somewhat more quiet");
- out.println(" -t, --show-traces Show full exception stack
traces");
- out.flush();
- }
-}