Repository: cxf-xjc-utils Updated Branches: refs/heads/master f942adb8d -> 8f06f45b2
[CXFXJC-8] More work on using windows style paths Project: http://git-wip-us.apache.org/repos/asf/cxf-xjc-utils/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf-xjc-utils/commit/8f06f45b Tree: http://git-wip-us.apache.org/repos/asf/cxf-xjc-utils/tree/8f06f45b Diff: http://git-wip-us.apache.org/repos/asf/cxf-xjc-utils/diff/8f06f45b Branch: refs/heads/master Commit: 8f06f45b281ede221a2fc8ffb910713c61a31e12 Parents: f942adb Author: Daniel Kulp <[email protected]> Authored: Mon Nov 10 13:23:25 2014 -0500 Committer: Daniel Kulp <[email protected]> Committed: Mon Nov 10 13:23:25 2014 -0500 ---------------------------------------------------------------------- cxf-xjc-plugin/pom.xml | 35 ++++++++++++++++++++ .../cxf/maven_plugin/XSDToJavaRunner.java | 30 +++++++++++++++-- 2 files changed, 62 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf-xjc-utils/blob/8f06f45b/cxf-xjc-plugin/pom.xml ---------------------------------------------------------------------- diff --git a/cxf-xjc-plugin/pom.xml b/cxf-xjc-plugin/pom.xml index 07f2fce..729a1d3 100644 --- a/cxf-xjc-plugin/pom.xml +++ b/cxf-xjc-plugin/pom.xml @@ -127,5 +127,40 @@ </executions> </plugin> </plugins> + <pluginManagement> + <plugins> + <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>1.0.0</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId> + org.apache.maven.plugins + </groupId> + <artifactId> + maven-plugin-plugin + </artifactId> + <versionRange> + [3.2,) + </versionRange> + <goals> + <goal>descriptor</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore></ignore> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + </plugins> + </pluginManagement> </build> </project> http://git-wip-us.apache.org/repos/asf/cxf-xjc-utils/blob/8f06f45b/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XSDToJavaRunner.java ---------------------------------------------------------------------- diff --git a/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XSDToJavaRunner.java b/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XSDToJavaRunner.java index 3130428..be35577 100644 --- a/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XSDToJavaRunner.java +++ b/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XSDToJavaRunner.java @@ -72,6 +72,16 @@ public class XSDToJavaRunner { final File xsdFile; + private static File getFile(String s) throws Exception { + File f = new File(s); + if (f.exists()) { + return f; + } + URI uri = new URI(s); + f = new File(uri); + return f; + } + public XSDToJavaRunner(String[] args, XJCErrorListener listener, File file, List<String> cp) { this.args = args; @@ -82,7 +92,8 @@ public class XSDToJavaRunner { public int run() throws Exception { List<URL> urls = new ArrayList<URL>(); for (String s : cpList) { - urls.add(new File(s).toURI().toURL()); + File file = getFile(s); + urls.add(file.toURI().toURL()); } final ClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]), this.getClass().getClassLoader()); @@ -195,9 +206,12 @@ public class XSDToJavaRunner { return (Model)getModelLoaderClass() .getMethod("load", Options.class, JCodeModel.class, ErrorReceiver.class) .invoke(null, opt, new JCodeModel(), listener); + } catch (Exception e) { + listener.error("Failed to create model", e); } catch (Throwable e) { - return null; + e.printStackTrace(); } + return null; } public static class CustomizedLogic extends XMLSchemaInternalizationLogic { @@ -319,11 +333,21 @@ public class XSDToJavaRunner { public static void main(String[] args) throws Exception { List<String> cplist = new ArrayList<String>(); + for (int x = 0; x < args.length; x++) { + if ("-classpath".equals(args[x])) { + cplist.add(args[x + 1]); + File file = getFile(args[x + 1]); + if (file.exists()) { + args[x + 1] = file.getAbsolutePath(); + } + x++; + } + } BuildContext context = new XJCBuildContext(); XJCErrorListener listener = new XJCErrorListener(context); - File outputFile = new File(args[args.length - 1]); + File outputFile = getFile(args[args.length - 1]); int i = new XSDToJavaRunner(args, listener, outputFile, cplist).run(); System.exit(i); }
