[jbossws-commits] JBossWS SVN: r3432 - trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/ant.
jbossws-commits at lists.jboss.org
jbossws-commits at lists.jboss.org
Mon Jun 4 15:36:24 EDT 2007
Author: heiko.braun at jboss.com
Date: 2007-06-04 15:36:24 -0400 (Mon, 04 Jun 2007)
New Revision: 3432
Modified:
trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/ant/WSProvideTask.java
Log:
Pass ant classpath through URLClassLoader (required for SunRI tools integration)
Modified: trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/ant/WSProvideTask.java
===================================================================
--- trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/ant/WSProvideTask.java 2007-06-04 13:38:29 UTC (rev 3431)
+++ trunk/integration/spi/src/main/java/org/jboss/wsf/spi/tools/ant/WSProvideTask.java 2007-06-04 19:36:24 UTC (rev 3432)
@@ -35,6 +35,12 @@
import java.io.File;
import java.io.PrintStream;
+import java.net.URLClassLoader;
+import java.net.URL;
+import java.net.MalformedURLException;
+import java.util.StringTokenizer;
+import java.util.List;
+import java.util.ArrayList;
/**
* Ant task which invokes provides a Web Service contract and portable JAX-WS wrapper classes.
@@ -161,8 +167,28 @@
private ClassLoader getClasspathLoader(ClassLoader parent)
{
- AntClassLoader loader = new AntClassLoader(parent, getProject(), classpath, false);
- return loader;
+ AntClassLoader antLoader = new AntClassLoader(parent, getProject(), classpath, false);
+
+ // It's necessary to wrap it into an URLLoader in order to extract that information
+ // within the actual provider impl.
+ // See SunRIProviderImpl for instance
+ List<URL> urls = new ArrayList<URL>();
+ StringTokenizer tok = new StringTokenizer(antLoader.getClasspath(), File.separator);
+ while(tok.hasMoreTokens())
+ {
+ try
+ {
+ urls.add(new URL(tok.nextToken()));
+ }
+ catch (MalformedURLException e)
+ {
+ throw new IllegalArgumentException("Failed to wrap classloader", e);
+ }
+
+ }
+
+ ClassLoader wrapper = new URLClassLoader(urls.toArray(new URL[0]), antLoader);
+ return wrapper;
}
public void executeNonForked()
More information about the jbossws-commits
mailing list