You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2018/07/05 13:38:23 UTC

[cxf] branch master updated: CXF-7778 - WSDLToJava does not respect error code conventions in case of error by default

This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new da5b01b  CXF-7778 - WSDLToJava does not respect error code conventions in case of error by default
da5b01b is described below

commit da5b01b32a59867b48e2b35a9281b3625f58d514
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Thu Jul 5 12:35:44 2018 +0100

    CXF-7778 - WSDLToJava does not respect error code conventions in case of error by default
---
 .../org/apache/cxf/tools/java2ws/JavaToWS.java     |   2 +-
 .../org/apache/cxf/tools/java2ws/JavaToWSTest.java | 157 ++++++++++++++++++---
 .../cxf/tools/java2wsdl/JavaToWSFlagTest.java      |  65 +++++++--
 .../org/apache/cxf/tools/wadlto/WADLToJava.java    |   5 +-
 .../org/apache/cxf/tools/wsdlto/WSDLToJava.java    |   7 +-
 .../cxf/tools/wsdlto/jaxws/CodeGenBugTest.java     |  96 ++++++++++---
 6 files changed, 277 insertions(+), 55 deletions(-)

diff --git a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2ws/JavaToWS.java b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2ws/JavaToWS.java
index ed9f7a0..dc6a166 100644
--- a/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2ws/JavaToWS.java
+++ b/tools/javato/ws/src/main/java/org/apache/cxf/tools/java2ws/JavaToWS.java
@@ -98,7 +98,7 @@ public class JavaToWS {
     }
 
     private boolean isExitOnFinish() {
-        String exit = System.getProperty("exitOnFinish");
+        String exit = System.getProperty("exitOnFinish", "true");
         if (StringUtils.isEmpty(exit)) {
             return false;
         }
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2ws/JavaToWSTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2ws/JavaToWSTest.java
index c22518a..405f5cb 100644
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2ws/JavaToWSTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2ws/JavaToWSTest.java
@@ -32,6 +32,7 @@ import org.apache.cxf.common.util.Compiler;
 import org.apache.cxf.helpers.FileUtils;
 import org.apache.cxf.helpers.XPathUtils;
 import org.apache.cxf.staxutils.StaxUtils;
+import org.apache.cxf.tools.common.CommandInterfaceUtils;
 import org.apache.cxf.tools.common.ToolContext;
 import org.apache.cxf.tools.common.ToolTestBase;
 
@@ -74,7 +75,10 @@ public class JavaToWSTest extends ToolTestBase {
     @Test
     public void testVersionOutput() throws Exception {
         String[] args = new String[] {"-v"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         assertNotNull(getStdOut());
     }
 
@@ -83,7 +87,9 @@ public class JavaToWSTest extends ToolTestBase {
         File wsdlFile = outputFile("tmp.wsdl");
         String[] args = new String[] {"-wsdl", "-o", wsdlFile.getAbsolutePath(), "-s", output.getPath(),
                                       "-client", "-server", "org.apache.hello_world_soap12_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
         checkStdErr();
         assertTrue("Failed to generate WSDL file", wsdlFile.exists());
     }
@@ -96,7 +102,10 @@ public class JavaToWSTest extends ToolTestBase {
             "-o", output.getPath() + "/cxf2941.wsdl",
             org.apache.cxf.tools.fortest.cxf2941.WebResultService.class.getName()
         };
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         File wrapper = outputFile("org/apache/cxf/tools/fortest/cxf2941/jaxws/HelloStringResponse.java");
         String str = FileUtils.getStringFromFile(wrapper);
         assertTrue("namespace value in annoataion @XmlElement is not correct",
@@ -114,7 +123,10 @@ public class JavaToWSTest extends ToolTestBase {
             "-o", output.getPath() + "/tmp.wsdl",
             "org.apache.cxf.tools.fortest.cxf2934.WebParamService"
         };
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         File wrapper = outputFile("org/apache/cxf/tools/fortest/cxf2934/jaxws/HelloStringResponse.java");
         String str = FileUtils.getStringFromFile(wrapper);
         assertTrue("namespace value in annoataion @XmlElement is not correct: " + str,
@@ -128,7 +140,10 @@ public class JavaToWSTest extends ToolTestBase {
             "-o", output.getPath() + "/tmp.wsdl",
             "org.apache.cxf.tools.fortest.cxf1450.WebParamService"
         };
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         File wrapper = outputFile("org/apache/cxf/tools/fortest/cxf1450/jaxws/HelloStringResponse.java");
         String str = FileUtils.getStringFromFile(wrapper);
         assertTrue("namespace value in annoataion @XmlElement is not correct: " + str,
@@ -148,7 +163,43 @@ public class JavaToWSTest extends ToolTestBase {
                                       output.getPath(), "-frontend", "jaxws", "-client", "-server",
                                       "-address", "http://localhost:1234/test",
                                       "org.apache.hello_world_doc_lit.Greeter"};
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
+        //checkStdErr();
+        assertTrue("Failed to generate WSDL file", wsdlFile.exists());
+        String str = FileUtils.getStringFromFile(wsdlFile);
+        assertTrue("Port address in generated wsdl is not correct",
+                   str.indexOf("http://localhost:1234/test") > -1);
+        File client = outputFile("org/apache/hello_world_doc_lit/GreeterClient.java");
+        str = FileUtils.getStringFromFile(client);
+        assertTrue("Address generated in client side code is not correct",
+                   str.indexOf("http://localhost:1234/test") > -1);
+
+        File server = outputFile("org/apache/hello_world_doc_lit/GreeterServer.java");
+        str = FileUtils.getStringFromFile(server);
+        assertTrue("Address generated in server side code is not correct",
+                   str.indexOf("http://localhost:1234/test") > -1);
+
+        File impl = outputFile("org/apache/hello_world_doc_lit/GreeterImpl.java");
+        Compiler compiler = new Compiler();
+        String[] files = new String[]{client.getAbsoluteFile().toString(),
+                                     server.getAbsoluteFile().toString(),
+                                     impl.getAbsoluteFile().toString()};
+        compiler.setOutputDir(this.classDir);
+        compiler.compileFiles(files);
+    }
+
+    @Test
+    public void testJaxwsFrontendViaMain() throws Exception {
+        File wsdlFile = outputFile("tmp.wsdl");
+        String[] args = new String[] {"-wsdl", "-o", output.getPath() + "/tmp.wsdl", "-s",
+                                      output.getPath(), "-frontend", "jaxws", "-client", "-server",
+                                      "-address", "http://localhost:1234/test",
+                                      "org.apache.hello_world_doc_lit.Greeter"};
         JavaToWS.main(args);
+
         //checkStdErr();
         assertTrue("Failed to generate WSDL file", wsdlFile.exists());
         String str = FileUtils.getStringFromFile(wsdlFile);
@@ -179,7 +230,10 @@ public class JavaToWSTest extends ToolTestBase {
                                       output.getPath(), "-frontend", "simple", "-client", "-server",
                                       "-address", "http://localhost:1234/test",
                                       "org.apache.cxf.tools.fortest.simple.Hello"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         File client = outputFile("org/apache/cxf/tools/fortest/simple/HelloPortTypeClient.java");
         File server = outputFile("org/apache/cxf/tools/fortest/simple/HelloPortTypeServer.java");
         File impl = outputFile("org/apache/cxf/tools/fortest/simple/HelloPortTypeImpl.java");
@@ -211,13 +265,21 @@ public class JavaToWSTest extends ToolTestBase {
     }
 
     @Test
-    public void testMissingBeans() {
+    public void testMissingBeans() throws Exception {
         String[] args = new String[] {"-wsdl", "-o", output.getPath() + "/tmp.wsdl", "-verbose", "-s",
                                       output.getPath(), "-frontend", "jaxws", "-client", "-server",
                                       "-beans", "nobodyHome.xml",
                                       "-beans", "nothing.xml",
                                       "org.apache.hello_world_doc_lit.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
+
         String err = getStdErr();
         assertTrue("Missing file error message",
                    err.indexOf("Unable to open bean definition file nobodyHome.xml") >= 0);
@@ -229,7 +291,15 @@ public class JavaToWSTest extends ToolTestBase {
         String[] args = new String[] {"-wsdl", "-o", output.getPath() + "/tmp.wsdl", "-verbose", "-s",
                                       output.getPath(), "-frontend", "jaxws", "-client", "-server",
                                       "org.apache.cxf.tools.fortest.HelloWithNoAnno"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
+
         assertTrue("Failed to generate WSDL file", wsdlFile.exists());
         assertTrue("Class does not carry WebService error should be detected", getStdErr()
             .indexOf("does not carry a WebService annotation") > -1);
@@ -241,7 +311,15 @@ public class JavaToWSTest extends ToolTestBase {
         String[] args = new String[] {"-wsdl", "-o", output.getPath() + "/tmp.wsdl", "-verbose",
                                       "-s", output.getPath(), "-frontend", "jaxws", "-client", "-server",
                                       "org.apache.cxf.tools.fortest.HelloRMI"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
+
         assertTrue("Failed to generate WSDL file", wsdlFile.exists());
         assertTrue("Parameter or return type implemented java.rmi.Remote interface error should be detected",
                    getStdErr().indexOf("implemented the java.rmi.Remote interface") > -1);
@@ -254,7 +332,10 @@ public class JavaToWSTest extends ToolTestBase {
         File impl = outputFile("org/apache/hello_world_soap12_http/GreeterImpl.java");
         String[] args = new String[] {"-s", output.getPath(), "-client", "-server",
                                       "org.apache.hello_world_soap12_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         checkStdErr();
         assertTrue("Client was not generated", client.exists());
         assertTrue("Greeter_GreeterPort_Server.java was not generated", server.exists());
@@ -276,7 +357,10 @@ public class JavaToWSTest extends ToolTestBase {
 
         String[] args = new String[] {"-s", output.getPath(), "-server",
                                       "org.apache.hello_world_soap12_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         checkStdErr();
         assertTrue("GreeterServer.java was not generated", server.exists());
         assertTrue("GreeterImpl.java was not generated", impl.exists());
@@ -294,7 +378,15 @@ public class JavaToWSTest extends ToolTestBase {
     public void testInvalidFlag() throws Exception {
         String[] args = new String[] {"-frontend", "tmp", "-wsdl", "-o", output.getPath() + "/tmp.wsdl",
                                       "org.apache.hello_world_soap12_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
+
         assertTrue("invalid frontend flag should be detected", getStdErr()
             .indexOf("is not a valid frontend,") > -1);
     }
@@ -304,7 +396,15 @@ public class JavaToWSTest extends ToolTestBase {
         String[] args = new String[] {"-frontend", "simple", "-wrapperbean", "-wsdl", "-o",
                                       output.getPath() + "/tmp.wsdl",
                                       "org.apache.hello_world_soap12_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
+
         assertTrue("wrapperbean flag error should be detected", getStdErr()
             .indexOf("-wrapperbean is only valid for the jaxws front end.") > -1);
     }
@@ -315,7 +415,15 @@ public class JavaToWSTest extends ToolTestBase {
                                       "-wsdl", "-o",
                                       output.getPath() + "/tmp.wsdl",
                                       "org.apache.hello_world_soap12_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
+
         assertTrue("jaxb databinding warning should be detected", getStdErr()
                    .indexOf("Simple front end only supports aegis databinding") > -1);
     }
@@ -327,7 +435,10 @@ public class JavaToWSTest extends ToolTestBase {
         String[] args = new String[] {"-wsdl", "-o", output.getPath() + "/tmp.wsdl", "-verbose", "-s",
                                       output.getPath(), "-frontend", "jaxws", "-client", "-server",
                                       org.apache.cxf.tools.fortest.GreeterImpl.class.getName()};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         assertTrue("Failed to generate WSDL file", wsdlFile.exists());
 
         File sei = outputFile("org/apache/cxf/tools/fortest/GreeterImpl_PortType.java");
@@ -342,7 +453,9 @@ public class JavaToWSTest extends ToolTestBase {
     public void testXmlList() throws Exception {
         String[] args = new String[] {"-o", output.getPath() + "/xml-list.wsdl", "-verbose",
                                       "-wsdl", "org.apache.cxf.tools.fortest.xmllist.AddNumbersPortType"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
 
         File file = new File(output.getPath() + "/xml-list.wsdl");
 
@@ -362,7 +475,10 @@ public class JavaToWSTest extends ToolTestBase {
     public void testXmlAttachementRef() throws Exception {
         String[] args = new String[] {"-o", output.getPath() + "/swa-ref.wsdl", "-verbose",
                                       "-wsdl", "org.apache.attachment.AddNumbersImpl"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         File file = new File(output.getPath() + "/AddNumbers.wsdl");
         String str = FileUtils.getStringFromFile(file);
         String swaImport = "http://ws-i.org/profiles/basic/1.1/xsd";
@@ -378,7 +494,10 @@ public class JavaToWSTest extends ToolTestBase {
         String[] args = new String[] {"-o", output.getPath() + "/xmladapter.wsdl", "-verbose",
                                       "-wsdl", "org.apache.xmladapter.GreeterImpl"};
 
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        j2w.run();
+
         File file = new File(output.getPath() + "/xmladapter.wsdl");
 
         Document doc = StaxUtils.read(file);
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/JavaToWSFlagTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/JavaToWSFlagTest.java
index 92a1866..7bcc3de 100644
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/JavaToWSFlagTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/JavaToWSFlagTest.java
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.tools.java2wsdl;
 
+import org.apache.cxf.tools.common.CommandInterfaceUtils;
 import org.apache.cxf.tools.common.ToolTestBase;
 import org.apache.cxf.tools.java2ws.JavaToWS;
 
@@ -35,14 +36,28 @@ public class JavaToWSFlagTest extends ToolTestBase {
     @Test
     public void testVersionOutput() throws Exception {
         String[] args = new String[] {"-v"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
         assertNotNull(getStdOut());
     }
 
     @Test
     public void testHelpOutput() {
         String[] args = new String[] {"-help"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
         assertNotNull(getStdOut());
     }
 
@@ -52,14 +67,28 @@ public class JavaToWSFlagTest extends ToolTestBase {
         String[] args = new String[] {"-o",
                                       getLocation("normal.wsdl"),
                                       "org.apache.hello_world_soap_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
         assertNotNull(getStdOut());
     }
 
     @Test
     public void testBadUsage() {
         String[] args = new String[] {"-ttt", "a.ww"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
         assertNotNull(getStdOut());
 
     }
@@ -67,9 +96,15 @@ public class JavaToWSFlagTest extends ToolTestBase {
     @Test
     public void testValidArgs() {
         String[] args = new String[] {"a.ww"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
         assertNotNull(getStdOut());
-
     }
 
     @Test
@@ -77,14 +112,28 @@ public class JavaToWSFlagTest extends ToolTestBase {
         String[] args = new String[] {"-o",
                                       getLocation("nooutput.wsdl"),
                                       "org.apache.hello_world_soap_http.Greeter"};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
         assertNotNull(getStdOut());
     }
 
     @Test
     public void testNoArg() {
         String[] args = new String[] {};
-        JavaToWS.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        JavaToWS j2w = new JavaToWS(args);
+        try {
+            j2w.run();
+        } catch (Throwable ex) {
+            System.err.println("JavaToWS Error: " + ex.toString());
+            System.err.println();
+        }
         assertEquals(-1, getStdOut().indexOf("Caused by:"));
     }
 }
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WADLToJava.java b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WADLToJava.java
index 33b833f..eeb3b0b 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WADLToJava.java
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WADLToJava.java
@@ -46,7 +46,7 @@ public class WADLToJava {
 
 
     private boolean isExitOnFinish() {
-        String exit = System.getProperty("exitOnFinish");
+        String exit = System.getProperty("exitOnFinish", "true");
         if (StringUtils.isEmpty(exit)) {
             return false;
         }
@@ -118,9 +118,6 @@ public class WADLToJava {
                 System.exit(1);
             }
         }
-        if (w2j.isExitOnFinish()) {
-            System.exit(0);
-        }
     }
 
     private static InputStream getResourceAsStream(Class<?> clz, String file) {
diff --git a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java
index 284bf3e..3af097d 100644
--- a/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java
+++ b/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJava.java
@@ -75,7 +75,7 @@ public class WSDLToJava {
     }
 
     private boolean isExitOnFinish() {
-        String exit = System.getProperty("exitOnFinish");
+        String exit = System.getProperty("exitOnFinish", "true");
         if (StringUtils.isEmpty(exit)) {
             return false;
         }
@@ -177,7 +177,7 @@ public class WSDLToJava {
 
     public static void main(String[] pargs) {
         System.setProperty("org.apache.cxf.JDKBugHacks.defaultUsesCaches", "true");
-        
+
         CommandInterfaceUtils.commandCommonMain();
         WSDLToJava w2j = new WSDLToJava(pargs);
         try {
@@ -204,9 +204,6 @@ public class WSDLToJava {
                 System.exit(1);
             }
         }
-        if (w2j.isExitOnFinish()) {
-            System.exit(0);
-        }
     }
 
     private static InputStream getResourceAsStream(Class<?> clz, String file) {
diff --git a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
index 1e78b75..2517a28 100644
--- a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
+++ b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
@@ -41,7 +41,9 @@ import javax.xml.ws.WebServiceClient;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.helpers.FileUtils;
 import org.apache.cxf.helpers.IOUtils;
+import org.apache.cxf.tools.common.CommandInterfaceUtils;
 import org.apache.cxf.tools.common.ToolConstants;
+import org.apache.cxf.tools.common.ToolContext;
 import org.apache.cxf.tools.common.ToolException;
 import org.apache.cxf.tools.util.AnnotationUtil;
 import org.apache.cxf.tools.wsdlto.AbstractCodeGenTest;
@@ -242,6 +244,35 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
                                       "http://apache.org/Invoice", "-compile", "-classdir",
                                       output.getCanonicalPath() + "/classes",
                                       getLocation("/wsdl2java_wsdl/hello_world_exclude.wsdl")};
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
+
+        assertNotNull(output);
+        File com = new File(output, "com");
+        assertFalse("Generated file has been excluded", com.exists());
+        File iona = new File(com, "iona");
+        assertFalse("Generated file has been excluded", iona.exists());
+
+        File implFile = new File(output, "org/apache/cxf/w2j/hello_world_soap_http/Greeter.java");
+        String str = FileUtils.getStringFromFile(implFile);
+        assertTrue(str.indexOf("com.iona.BareDocumentResponse") > 0);
+
+        File org = new File(output, "org");
+        File apache = new File(org, "apache");
+        File invoice = new File(apache, "Invoice");
+        assertFalse("Generated file has been excluded", invoice.exists());
+
+    }
+
+    @Test
+    public void testExcludeNSWithPackageNameViaMain() throws Exception {
+
+        String[] args = new String[] {"-d", output.getCanonicalPath(), "-nexclude",
+                                      "http://apache.org/test/types=com.iona", "-nexclude",
+                                      "http://apache.org/Invoice", "-compile", "-classdir",
+                                      output.getCanonicalPath() + "/classes",
+                                      getLocation("/wsdl2java_wsdl/hello_world_exclude.wsdl")};
         WSDLToJava.main(args);
 
         assertNotNull(output);
@@ -267,7 +298,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
         String[] args = new String[] {"-d", output.getCanonicalPath(), "-nexclude",
                                       "http://apache.org/test/types",
                                       getLocation("/wsdl2java_wsdl/hello_world_exclude.wsdl")};
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         assertNotNull(output);
         File com = new File(output, "test");
@@ -281,7 +314,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
                                       output.getCanonicalPath() + "/classes", "-p", "org.cxf", "-p",
                                       "http://apache.org/hello_world_soap_http/types=org.apache.types",
                                       "-server", "-impl", getLocation("/wsdl2java_wsdl/hello_world.wsdl")};
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         Class<?> clz = classLoader.loadClass("org.cxf.Greeter");
         assertTrue("Generate " + clz.getName() + "error", clz.isInterface());
@@ -292,7 +327,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
         String[] args = new String[] {"-dns", "false", "-d", output.getCanonicalPath(), "-noAddressBinding",
                                       getLocation("/wsdl2java_wsdl/basic_callback.wsdl")};
 
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         assertNotNull(output);
         File org = new File(output, "org");
@@ -315,7 +352,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
         String[] args = new String[] {"-d", output.getCanonicalPath(), "-noAddressBinding",
                                       getLocation("/wsdl2java_wsdl/basic_callback.wsdl")};
 
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         assertNotNull(output);
         File org = new File(output, "org");
@@ -341,10 +380,12 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
                                           output.getCanonicalPath(), "-b",
                                           getLocation("/wsdl2java_wsdl/bug305924/binding2.xml"),
                                           getLocation("/wsdl2java_wsdl/bug305924/hello_world.wsdl")};
-            WSDLToJava.main(args);
+            CommandInterfaceUtils.commandCommonMain();
+            WSDLToJava w2j = new WSDLToJava(args);
+            w2j.run(new ToolContext());
         } catch (Exception e) {
-            fail("Error during wsdl2java: \n" + e.getMessage());
         }
+
         try {
             Class<?> clz = classLoader
                 .loadClass("org.apache.cxf.w2j.hello_world_soap_http.types.CreateProcess$MyProcess");
@@ -362,7 +403,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
                                           output.getCanonicalPath(), "-b",
                                           getLocation("/wsdl2java_wsdl/bug305924/binding1.xml"),
                                           getLocation("/wsdl2java_wsdl/bug305924/hello_world.wsdl")};
-            WSDLToJava.main(args);
+            CommandInterfaceUtils.commandCommonMain();
+            WSDLToJava w2j = new WSDLToJava(args);
+            w2j.run(new ToolContext());
         } catch (Exception e) {
             e.printStackTrace(System.err);
         }
@@ -447,7 +490,7 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
 
     // CXF-492
     @Test
-    public void testDefatultNsMap() throws Exception {
+    public void testDefaultNsMap() throws Exception {
         env.put(ToolConstants.CFG_ALL, ToolConstants.CFG_ALL);
         env.put(ToolConstants.CFG_NO_ADDRESS_BINDING, ToolConstants.CFG_NO_ADDRESS_BINDING);
         env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/cxf492/locator.wsdl"));
@@ -466,7 +509,7 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
     }
 
     @Test
-    public void testDefatultNsMapExclude() throws Exception {
+    public void testDefaultNsMapExclude() throws Exception {
         env.put(ToolConstants.CFG_ALL, ToolConstants.CFG_ALL);
         env.put(ToolConstants.CFG_NEXCLUDE,
                 "http://www.w3.org/2005/08/addressing=org.apache.cxf.ws.addressing");
@@ -516,7 +559,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
         String[] args = new String[] {"-d", output.getCanonicalPath(), "-p", "org.cxf", "-noAddressBinding",
                                       getLocation("/wsdl2java_wsdl/basic_callback.wsdl")};
 
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         assertNotNull(output);
         File org = new File(output, "org");
@@ -546,7 +591,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
                                       getLocation("/wsdl2java_wsdl/hello-mime-binding.xml"),
                                       getLocation("/wsdl2java_wsdl/hello-mime.wsdl")};
 
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         String str1 = "SOAPBinding.ParameterStyle.BARE";
         String str2 = "javax.xml.ws.Holder";
@@ -1062,7 +1109,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
                                       getLocation("/wsdl2java_wsdl/cxf1662/test.wsdl")};
 
         try {
-            WSDLToJava.main(args);
+            CommandInterfaceUtils.commandCommonMain();
+            WSDLToJava w2j = new WSDLToJava(args);
+            w2j.run(new ToolContext());
         } catch (ToolException tex) {
             assertTrue(tex.getMessage().contains(" -p option cannot be used when "
                                                      + "wsdl contains mutiple schemas"));
@@ -1071,7 +1120,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
         String[] args2 = new String[] {"-d", output.getCanonicalPath(), "-p", "org.cxf",
                                        getLocation("/wsdl2java_wsdl/cxf1662/test2.wsdl")};
         try {
-            WSDLToJava.main(args2);
+            CommandInterfaceUtils.commandCommonMain();
+            WSDLToJava w2j = new WSDLToJava(args2);
+            w2j.run(new ToolContext());
         } catch (ToolException tex) {
             assertNull(tex);
         }
@@ -1086,7 +1137,10 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
     public void testMultiXjcArgs() throws Exception {
         String[] args = new String[] {"-d", output.getCanonicalPath(), "-xjc-Xlocator", "-xjc-Xsync-methods",
                                       getLocation("/wsdl2java_wsdl/hello_world.wsdl")};
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
+
         File file = new File(output, "org/apache/cxf/w2j/hello_world_soap_http/types/SayHi.java");
 
         assertTrue(file.exists());
@@ -1100,7 +1154,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
         String[] args = new String[] {"-d", output.getCanonicalPath(), "-impl", "-server", "-client",
                                       "-autoNameResolution",
                                       getLocation("/wsdl2java_wsdl/cxf1939/hello_world.wsdl")};
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         assertNotNull(output);
         assertTrue(new File(output, "org/apache/cxf/w2j/hello_world_soap_http/Soap_PortImpl.java").exists());
@@ -1116,7 +1172,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
         String[] args = new String[] {"-d", output.getCanonicalPath(), "-impl", "-server", "-client", "-b",
                                       getLocation("/wsdl2java_wsdl/cxf3105/ws-binding.xml"),
                                       getLocation("/wsdl2java_wsdl/cxf3105/cxf3105.wsdl")};
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         assertNotNull(output);
         File f = new File(output, "org/apache/cxf/testcase/cxf3105/Login.java");
@@ -1130,7 +1188,9 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
     public void testOverloadWithAction() throws Exception {
         String[] args = new String[] {"-d", output.getCanonicalPath(),
                                       getLocation("/wsdl2java_wsdl/hello_world_overload.wsdl")};
-        WSDLToJava.main(args);
+        CommandInterfaceUtils.commandCommonMain();
+        WSDLToJava w2j = new WSDLToJava(args);
+        w2j.run(new ToolContext());
 
         assertNotNull(output);
         File f = new File(output, "org/apache/cxf/w2j/hello_world_soap_http/SayHi.java");
@@ -1193,7 +1253,7 @@ public class CodeGenBugTest extends AbstractCodeGenTest {
             fail("shouldn't get exception");
         }
     }
-    
+
     @Test
     public void testCXF5280() throws Exception {
         env.put(ToolConstants.CFG_ALL, "all");