Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 99631 invoked from network); 9 Oct 2008 14:44:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Oct 2008 14:44:24 -0000 Received: (qmail 41492 invoked by uid 500); 9 Oct 2008 14:44:23 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 41459 invoked by uid 500); 9 Oct 2008 14:44:23 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 41450 invoked by uid 99); 9 Oct 2008 14:44:23 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Oct 2008 07:44:23 -0700 X-ASF-Spam-Status: No, hits=-1999.9 required=10.0 tests=ALL_TRUSTED,DNS_FROM_SECURITYSAGE X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Oct 2008 14:43:27 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id CAC3A238898A; Thu, 9 Oct 2008 07:44:03 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r703174 - in /geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder: JAXWSTools.java WsdlGenerator.java Date: Thu, 09 Oct 2008 14:44:03 -0000 To: scm@geronimo.apache.org From: gawor@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081009144403.CAC3A238898A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: gawor Date: Thu Oct 9 07:44:03 2008 New Revision: 703174 URL: http://svn.apache.org/viewvc?rev=703174&view=rev Log: get wsgen working ok when invoked in non-forked mode Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSTools.java geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsdlGenerator.java Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSTools.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSTools.java?rev=703174&r1=703173&r2=703174&view=diff ============================================================================== --- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSTools.java (original) +++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/JAXWSTools.java Thu Oct 9 07:44:03 2008 @@ -22,13 +22,13 @@ import java.lang.reflect.Method; import java.net.MalformedURLException; import java.net.URL; -import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Collection; import java.util.SortedSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.geronimo.kernel.classloader.JarFileClassLoader; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.kernel.repository.ListableRepository; import org.apache.geronimo.kernel.repository.Repository; @@ -70,6 +70,7 @@ private Artifact saajImpl; private boolean overrideContextClassLoader; + private ClassLoader parentClassLoader; public JAXWSTools() { } @@ -90,6 +91,14 @@ return this.overrideContextClassLoader; } + public void setParentClassLoader(ClassLoader parentClassLoader) { + this.parentClassLoader = parentClassLoader; + } + + public ClassLoader getParentClassLoader() { + return this.parentClassLoader; + } + public static URL[] toURL(File[] jars) throws MalformedURLException { URL [] urls = new URL[jars.length]; for (int i = 0; i < jars.length; i++) { @@ -177,8 +186,9 @@ return invoke("wsimport", jars, os, arguments); } - private boolean invoke(String toolName, URL[] jars, OutputStream os, String[] arguments) throws Exception { - URLClassLoader loader = new URLClassLoader(jars, ClassLoader.getSystemClassLoader()); + private boolean invoke(String toolName, URL[] jars, OutputStream os, String[] arguments) throws Exception { + ClassLoader parent = (this.parentClassLoader == null) ? getClass().getClassLoader() : this.parentClassLoader; + JarFileClassLoader loader = new JarFileClassLoader(null, jars, parent); if (this.overrideContextClassLoader) { ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(loader); @@ -186,9 +196,14 @@ return invoke(toolName, loader, os, arguments); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); + loader.destroy(); } } else { - return invoke(toolName, loader, os, arguments); + try { + return invoke(toolName, loader, os, arguments); + } finally { + loader.destroy(); + } } } Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsdlGenerator.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsdlGenerator.java?rev=703174&r1=703173&r2=703174&view=diff ============================================================================== --- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsdlGenerator.java (original) +++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-builder/src/main/java/org/apache/geronimo/jaxws/builder/WsdlGenerator.java Thu Oct 9 07:44:03 2008 @@ -103,6 +103,7 @@ public WsdlGenerator() { this.jaxwsTools = new JAXWSTools(); + this.jaxwsTools.setOverrideContextClassLoader(true); } public void setSunSAAJ() {