[CXF-6235] wsdl2java behaves differently from cxf-codegen-plugin This closes #50
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/db92bc68 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/db92bc68 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/db92bc68 Branch: refs/heads/master Commit: db92bc6867137132ee742ec79fbd038682b8b540 Parents: 2fdf389 Author: gwuireland <gwuirel...@gmail.com> Authored: Fri Jan 30 16:49:08 2015 +0000 Committer: Daniel Kulp <dk...@apache.org> Committed: Mon Feb 9 10:57:04 2015 -0500 ---------------------------------------------------------------------- .../apache/cxf/tools/wsdlto/WSDLToJavaContainer.java | 12 ++++++++++++ .../cxf/tools/wsdlto/WSDLToJavaContainerTest.java | 11 +++++++++++ 2 files changed, 23 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/db92bc68/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java ---------------------------------------------------------------------- diff --git a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java index 4f7ed77..3b57251 100644 --- a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java +++ b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java @@ -553,11 +553,22 @@ public class WSDLToJavaContainer extends AbstractCXFToolContainer { if (!env.containsKey(ToolConstants.CFG_WSDLLOCATION)) { //make sure the "raw" form is used for the wsdlLocation //instead of the absolute URI that normalize may return + boolean assumeFileURI = false; try { URI uri = new URI(wsdl); + + String uriScheme = uri.getScheme(); + if (uriScheme == null) { + assumeFileURI = true; + } + wsdl = uri.toString(); } catch (Exception e) { //not a URL, assume file + assumeFileURI = true; + } + + if (assumeFileURI) { if (wsdl.indexOf(":") != -1 && !wsdl.startsWith("/")) { wsdl = "file:/" + wsdl; } else { @@ -570,6 +581,7 @@ public class WSDLToJavaContainer extends AbstractCXFToolContainer { //ignore... } } + wsdl = wsdl.replace("\\", "/"); env.put(ToolConstants.CFG_WSDLLOCATION, wsdl); http://git-wip-us.apache.org/repos/asf/cxf/blob/db92bc68/tools/wsdlto/core/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainerTest.java ---------------------------------------------------------------------- diff --git a/tools/wsdlto/core/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainerTest.java b/tools/wsdlto/core/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainerTest.java index f4b7213..97d44f5 100644 --- a/tools/wsdlto/core/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainerTest.java +++ b/tools/wsdlto/core/src/test/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainerTest.java @@ -66,6 +66,17 @@ public class WSDLToJavaContainerTest extends Assert { assertTrue(context.optionSet(ToolConstants.CFG_SUPPRESS_WARNINGS)); } + @Test + public void testWsdlLocationDefaultSchemeIsFile() throws Exception { + WSDLToJavaContainer container = new WSDLToJavaContainer("dummy", null); + ToolContext context = new ToolContext(); + context.put(ToolConstants.CFG_WSDLURL, getLocation("hello_world.wsdl")); + container.setContext(context); + container.validate(context); + String wsdlLocation = (String)context.get(ToolConstants.CFG_WSDLLOCATION); + assertTrue("default scheme for wsdlLocation is file", wsdlLocation.startsWith("file:")); + } + private String getLocation(String wsdlFile) throws URISyntaxException { return this.getClass().getResource(wsdlFile).toURI().getPath(); }