-
Task
-
Resolution: Done
-
Major
-
None
-
None
Currently the jaxws tools are run loading the WSConsumerPlugin/WSProviderPlugin classes in a separate classloader (that sees the same libs as those found in the surefire classpath). After the latest changes on JBoss Modules to deal with setting proper JAXP factories, and considering Apache CXF also performs some hacks when loading LogUtils (which in turn uses JAXP stuff), it has became evident that we can't go on trying to isolate the tools run simply by changing the classloader. We need to run each tests there in a new jvm.
A way of achieving that is probably to use the JUnit test runner http://junit.sourceforge.net/junit3.8.1/javadoc/junit/textui/TestRunner.html similarly to what we already do in WSRunClientTestCase::test()
The aim would be to run something like what follows from the PluginBase::dispatch():
java -cp modified-classpath junit.textui.TestRunner org.jboss.test.ws.jaxws.smoke.tools.WSProviderPlugin
except we then need just one call for each plugin to avoid running tests multiple times.
Another solution is adding a new execution to the surefire plugin, having the forkMode option set to "pertest".