<html><body bgcolor="#FFFFFF"><div>Why this wildcard work on the branch?<br></div><div>I already implemented this in trunk.</div><div>If there are any issues with my current impl, let me know.</div><div><br></div><div>Sent from my iPod</div><div><br>Begin forwarded message:<br><br></div><blockquote type="cite"><div><b>From:</b> <a href="mailto:jboss-cvs-commits-request@lists.jboss.org"><a href="mailto:jboss-cvs-commits-request@lists.jboss.org">jboss-cvs-commits-request@lists.jboss.org</a></a><br><b>Date:</b> 13. maj 2010 22:55:00 GMT+0200<br><b>To:</b> <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a><br><b>Subject:</b> <b>jboss-cvs-commits Digest, Vol 47, Issue 134</b><br><b>Reply-To:</b> <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a><br><br></div></blockquote><div></div><blockquote type="cite"><div><span>Send jboss-cvs-commits mailing list submissions to</span><br><span> <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span></span><br><span>To subscribe or unsubscribe via the World Wide Web, visit</span><br><span> <a href="https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits"><a href="https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits">https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits</a></a></span><br><span>or, via email, send a message with subject or body 'help' to</span><br><span> <a href="mailto:jboss-cvs-commits-request@lists.jboss.org"><a href="mailto:jboss-cvs-commits-request@lists.jboss.org">jboss-cvs-commits-request@lists.jboss.org</a></a></span><br><span></span><br><span>You can reach the person managing the list at</span><br><span> <a href="mailto:jboss-cvs-commits-owner@lists.jboss.org"><a href="mailto:jboss-cvs-commits-owner@lists.jboss.org">jboss-cvs-commits-owner@lists.jboss.org</a></a></span><br><span></span><br><span>When replying, please edit your Subject line so it is more specific</span><br><span>than "Re: Contents of jboss-cvs-commits digest..."</span><br><span></span><br><span></span><br><span>Today's Topics:</span><br><span></span><br><span> 1. JBossAS SVN: r104778 - in projects/jboss-cl/trunk:</span><br><span> classloading/src/main/java/org/jboss/classloading/spi/dependency/policy </span><br><span> and 1 other directory. (<a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a>)</span><br><span> 2. JBossAS SVN: r104779 -</span><br><span> projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy.</span><br><span> (<a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a>)</span><br><span> 3. JBossAS SVN: r104780 - in</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323:</span><br><span> classloading/src/main/java/org/jboss/classloading/spi/dependency</span><br><span> and 1 other directories. (<a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a>)</span><br><span> 4. JBossAS SVN: r104781 -</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323.</span><br><span> (<a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a>)</span><br><span></span><br><span></span><br><span>----------------------------------------------------------------------</span><br><span></span><br><span>Message: 1</span><br><span>Date: Thu, 13 May 2010 16:16:51 -0400</span><br><span>From: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Subject: [jboss-cvs] JBossAS SVN: r104778 - in</span><br><span> projects/jboss-cl/trunk:</span><br><span> classloading/src/main/java/org/jboss/classloading/spi/dependency/policy </span><br><span> and 1 other directory.</span><br><span>To: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Message-ID:</span><br><span> <<a href="mailto:201005132016.o4DKGpHR031400@svn01.web.mwc.hst.phx2.redhat.com">201005132016.o4DKGpHR031400@svn01.web.mwc.hst.phx2.redhat.com</a>></span><br><span>Content-Type: text/plain; charset=UTF-8</span><br><span></span><br><span>Author: alesj</span><br><span>Date: 2010-05-13 16:16:49 -0400 (Thu, 13 May 2010)</span><br><span>New Revision: 104778</span><br><span></span><br><span>Removed:</span><br><span> projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskAwareLoader.java</span><br><span> projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskInfo.java</span><br><span>Modified:</span><br><span> projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderPolicy.java</span><br><span> projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderManager.java</span><br><span> projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTask.java</span><br><span> projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java</span><br><span> projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardDelegateLoader.java</span><br><span>Log:</span><br><span>Remove public access to BaseClassLoader from delegate loader.</span><br><span></span><br><span>Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderPolicy.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderPolicy.java 2010-05-13 18:22:49 UTC (rev 104777)</span><br><span>+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderPolicy.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>@@ -350,8 +350,23 @@</span><br><span> shutdownPolicy();</span><br><span> this.domain = null;</span><br><span> }</span><br><span>- </span><br><span>+</span><br><span> /**</span><br><span>+ * Get the classloader based on classloading task.</span><br><span>+ *</span><br><span>+ * Since ClassLoadingTask ctor is package protected</span><br><span>+ * this method cannot be easily abused, since the only</span><br><span>+ * code that can instantiate ClassLoadingTask is our ClassLoaderManager.</span><br><span>+ *</span><br><span>+ * @param task the classloading task info</span><br><span>+ * @return the classloader</span><br><span>+ */</span><br><span>+ protected synchronized BaseClassLoader getClassLoader(ClassLoadingTask task)</span><br><span>+ {</span><br><span>+ return getClassLoader();</span><br><span>+ }</span><br><span>+</span><br><span>+ /**</span><br><span> * Get the classloader</span><br><span> * </span><br><span> * @return the classloader</span><br><span></span><br><span>Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderManager.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderManager.java 2010-05-13 18:22:49 UTC (rev 104777)</span><br><span>+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderManager.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>@@ -339,18 +339,13 @@</span><br><span> List<ThreadTask> taskList;</span><br><span></span><br><span> BaseClassLoader classLoader = null;</span><br><span>- if (loader instanceof ClassLoadingTaskAwareLoader)</span><br><span>+ if (loader instanceof BaseDelegateLoader)</span><br><span> {</span><br><span>- ClassLoadingTaskAwareLoader cltal = (ClassLoadingTaskAwareLoader) loader;</span><br><span>- classLoader = cltal.getBaseClassLoader(task);</span><br><span>- }</span><br><span>- if (classLoader == null && loader instanceof BaseDelegateLoader)</span><br><span>- {</span><br><span> BaseDelegateLoader delegateLoader = (BaseDelegateLoader) loader;</span><br><span> BaseClassLoaderPolicy policy = delegateLoader.getPolicy();</span><br><span> if (policy == null)</span><br><span> throw new IllegalStateException("Null policy for " + delegateLoader);</span><br><span>- classLoader = policy.getClassLoader();</span><br><span>+ classLoader = policy.getClassLoader(task);</span><br><span> }</span><br><span></span><br><span> synchronized (loadClassThreads)</span><br><span></span><br><span>Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTask.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTask.java 2010-05-13 18:22:49 UTC (rev 104777)</span><br><span>+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTask.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>@@ -34,13 +34,17 @@</span><br><span></span><br><span> /**</span><br><span> * ClassLoadingTask.</span><br><span>+ *</span><br><span>+ * Make the class public, so others can use it,</span><br><span>+ * but the ctor is still package protected</span><br><span>+ * so only classes in this package can instantiate it.</span><br><span> * </span><br><span> * @author <a href="mailto:Scott.Stark@jboss.org"><a href="mailto:Scott.Stark@jboss.org">Scott.Stark@jboss.org</a></a></span><br><span> * @author <a href="<a href="mailto:adrian@jboss.com">adrian@jboss.com</a>">Adrian Brock</a></span><br><span> * @author <a href="<a href="mailto:ales.justin@jboss.org">ales.justin@jboss.org</a>">Ales Justin</a></span><br><span> * @version $Revision: 1.1 $</span><br><span> */</span><br><span>-class ClassLoadingTask implements ClassLoadingTaskInfo</span><br><span>+public class ClassLoadingTask</span><br><span> {</span><br><span> /** The log */</span><br><span> protected static Logger log = Logger.getLogger("org.jboss.detailed.classloader.ClassLoadingTask");</span><br><span>@@ -403,18 +407,13 @@</span><br><span> BaseClassLoader getClassLoader()</span><br><span> {</span><br><span> BaseClassLoader classLoader = null;</span><br><span>- if (loader instanceof ClassLoadingTaskAwareLoader)</span><br><span>+ if (loader instanceof BaseDelegateLoader)</span><br><span> {</span><br><span>- ClassLoadingTaskAwareLoader cltal = (ClassLoadingTaskAwareLoader) loader;</span><br><span>- classLoader = cltal.getBaseClassLoader(getLoadTask());</span><br><span>- }</span><br><span>- if (classLoader == null && loader instanceof BaseDelegateLoader)</span><br><span>- {</span><br><span> BaseDelegateLoader delegateLoader = (BaseDelegateLoader) loader;</span><br><span> BaseClassLoaderPolicy policy = delegateLoader.getPolicy();</span><br><span> if (policy == null)</span><br><span> throw new IllegalStateException("Null classloader policy for " + loader);</span><br><span>- classLoader = policy.getClassLoader();</span><br><span>+ classLoader = policy.getClassLoader(getLoadTask());</span><br><span> }</span><br><span> return classLoader;</span><br><span> }</span><br><span>@@ -452,7 +451,7 @@</span><br><span> /**</span><br><span> * Run the class load</span><br><span> * </span><br><span>- * @throws ClassNotFoundException</span><br><span>+ * @throws ClassNotFoundException if class cannot be loaded</span><br><span> */</span><br><span> void run() throws ClassNotFoundException</span><br><span> {</span><br><span></span><br><span>Deleted: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskAwareLoader.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskAwareLoader.java 2010-05-13 18:22:49 UTC (rev 104777)</span><br><span>+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskAwareLoader.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>@@ -1,38 +0,0 @@</span><br><span>-/*</span><br><span>- * JBoss, Home of Professional Open Source.</span><br><span>- * Copyright 2010, Red Hat Middleware LLC, and individual contributors</span><br><span>- * as indicated by the @author tags. See the copyright.txt file in the</span><br><span>- * distribution for a full listing of individual contributors.</span><br><span>- *</span><br><span>- * This is free software; you can redistribute it and/or modify it</span><br><span>- * under the terms of the GNU Lesser General Public License as</span><br><span>- * published by the Free Software Foundation; either version 2.1 of</span><br><span>- * the License, or (at your option) any later version.</span><br><span>- *</span><br><span>- * This software is distributed in the hope that it will be useful,</span><br><span>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span><br><span>- * Lesser General Public License for more details.</span><br><span>- *</span><br><span>- * You should have received a copy of the GNU Lesser General Public</span><br><span>- * License along with this software; if not, write to the Free</span><br><span>- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA</span><br><span>- * 02110-1301 USA, or see the FSF site: <a href="http://www.fsf.org">http://www.fsf.org</a>.</span><br><span>- */</span><br><span>-</span><br><span>-package org.jboss.classloader.spi.base;</span><br><span>-</span><br><span>-/**</span><br><span>- * Loader that knows how to get BaseClassLoader based on task</span><br><span>- * @author <a href="<a href="mailto:ales.justin@jboss.org">mailto:ales.justin@jboss.org</a>">Ales Justin</a></span><br><span>- */</span><br><span>-public interface ClassLoadingTaskAwareLoader</span><br><span>-{</span><br><span>- /**</span><br><span>- * Get classloader.</span><br><span>- *</span><br><span>- * @param task the current classloading task</span><br><span>- * @return matching classloader or null</span><br><span>- */</span><br><span>- BaseClassLoader getBaseClassLoader(ClassLoadingTaskInfo task);</span><br><span>-}</span><br><span></span><br><span>Deleted: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskInfo.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskInfo.java 2010-05-13 18:22:49 UTC (rev 104777)</span><br><span>+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoadingTaskInfo.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>@@ -1,37 +0,0 @@</span><br><span>-/*</span><br><span>- * JBoss, Home of Professional Open Source.</span><br><span>- * Copyright 2007, Red Hat Middleware LLC, and individual contributors</span><br><span>- * as indicated by the @author tags. See the copyright.txt file in the</span><br><span>- * distribution for a full listing of individual contributors.</span><br><span>- *</span><br><span>- * This is free software; you can redistribute it and/or modify it</span><br><span>- * under the terms of the GNU Lesser General Public License as</span><br><span>- * published by the Free Software Foundation; either version 2.1 of</span><br><span>- * the License, or (at your option) any later version.</span><br><span>- *</span><br><span>- * This software is distributed in the hope that it will be useful,</span><br><span>- * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span>- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span><br><span>- * Lesser General Public License for more details.</span><br><span>- *</span><br><span>- * You should have received a copy of the GNU Lesser General Public</span><br><span>- * License along with this software; if not, write to the Free</span><br><span>- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA</span><br><span>- * 02110-1301 USA, or see the FSF site: <a href="http://www.fsf.org">http://www.fsf.org</a>.</span><br><span>- */</span><br><span>-package org.jboss.classloader.spi.base;</span><br><span>-</span><br><span>-/**</span><br><span>- * ClassLoadingTaskInfo.</span><br><span>- *</span><br><span>- * @author <a href="<a href="mailto:ales.justin@jboss.org">ales.justin@jboss.org</a>">Ales Justin</a></span><br><span>- */</span><br><span>-public interface ClassLoadingTaskInfo</span><br><span>-{</span><br><span>- /**</span><br><span>- * Get the className.</span><br><span>- *</span><br><span>- * @return the className.</span><br><span>- */</span><br><span>- String getClassName();</span><br><span>-}</span><br><span>\ No newline at end of file</span><br><span></span><br><span>Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java 2010-05-13 18:22:49 UTC (rev 104777)</span><br><span>+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>@@ -26,8 +26,10 @@</span><br><span> import java.util.*;</span><br><span> import java.util.concurrent.ConcurrentHashMap;</span><br><span></span><br><span>+import org.jboss.classloader.plugins.ClassLoaderUtils;</span><br><span> import org.jboss.classloader.spi.ClassLoaderPolicy;</span><br><span> import org.jboss.classloader.spi.base.BaseClassLoader;</span><br><span>+import org.jboss.classloader.spi.base.ClassLoadingTask;</span><br><span> import org.jboss.classloader.spi.filter.ClassFilter;</span><br><span> import org.jboss.classloading.plugins.metadata.PackageRequirement;</span><br><span> import org.jboss.classloading.spi.dependency.*;</span><br><span>@@ -237,4 +239,14 @@</span><br><span> }</span><br><span> return null;</span><br><span> }</span><br><span>+</span><br><span>+ @Override</span><br><span>+ protected BaseClassLoader getClassLoader(ClassLoadingTask task)</span><br><span>+ {</span><br><span>+ if (task == null)</span><br><span>+ throw new IllegalArgumentException("Null task");</span><br><span>+</span><br><span>+ String path = ClassLoaderUtils.classNameToPath(task.getClassName());</span><br><span>+ return getBaseClassLoader(path);</span><br><span>+ }</span><br><span> }</span><br><span></span><br><span>Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardDelegateLoader.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardDelegateLoader.java 2010-05-13 18:22:49 UTC (rev 104777)</span><br><span>+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardDelegateLoader.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>@@ -22,12 +22,9 @@</span><br><span></span><br><span> package org.jboss.classloading.spi.dependency.policy;</span><br><span></span><br><span>-import org.jboss.classloader.plugins.ClassLoaderUtils;</span><br><span> import org.jboss.classloader.spi.ClassLoaderPolicy;</span><br><span> import org.jboss.classloader.spi.ClassLoaderPolicyFactory;</span><br><span> import org.jboss.classloader.spi.base.BaseClassLoader;</span><br><span>-import org.jboss.classloader.spi.base.ClassLoadingTaskAwareLoader;</span><br><span>-import org.jboss.classloader.spi.base.ClassLoadingTaskInfo;</span><br><span> import org.jboss.classloader.spi.filter.ClassFilter;</span><br><span> import org.jboss.classloader.spi.filter.FilteredDelegateLoader;</span><br><span></span><br><span>@@ -36,7 +33,7 @@</span><br><span> *</span><br><span> * @author <a href="<a href="mailto:ales.justin@jboss.org">mailto:ales.justin@jboss.org</a>">Ales Justin</a></span><br><span> */</span><br><span>-public class WildcardDelegateLoader extends FilteredDelegateLoader implements ClassLoadingTaskAwareLoader</span><br><span>+public class WildcardDelegateLoader extends FilteredDelegateLoader</span><br><span> {</span><br><span> public WildcardDelegateLoader(ClassLoaderPolicyFactory factory, ClassFilter filter)</span><br><span> {</span><br><span>@@ -53,10 +50,4 @@</span><br><span> WildcardClassLoaderPolicy wclp = (WildcardClassLoaderPolicy) policy;</span><br><span> return wclp.getBaseClassLoader(context);</span><br><span> }</span><br><span>-</span><br><span>- public BaseClassLoader getBaseClassLoader(ClassLoadingTaskInfo task)</span><br><span>- {</span><br><span>- String path = ClassLoaderUtils.classNameToPath(task.getClassName());</span><br><span>- return getBaseClassLoader(null, path);</span><br><span>- }</span><br><span> }</span><br><span></span><br><span></span><br><span></span><br><span>------------------------------</span><br><span></span><br><span>Message: 2</span><br><span>Date: Thu, 13 May 2010 16:33:06 -0400</span><br><span>From: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Subject: [jboss-cvs] JBossAS SVN: r104779 -</span><br><span> projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy.</span><br><span> </span><br><span>To: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Message-ID:</span><br><span> <<a href="mailto:201005132033.o4DKX68H000470@svn01.web.mwc.hst.phx2.redhat.com">201005132033.o4DKX68H000470@svn01.web.mwc.hst.phx2.redhat.com</a>></span><br><span>Content-Type: text/plain; charset=UTF-8</span><br><span></span><br><span>Author: alesj</span><br><span>Date: 2010-05-13 16:33:05 -0400 (Thu, 13 May 2010)</span><br><span>New Revision: 104779</span><br><span></span><br><span>Modified:</span><br><span> projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java</span><br><span>Log:</span><br><span>Add null checks.</span><br><span></span><br><span>Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java 2010-05-13 20:16:49 UTC (rev 104778)</span><br><span>+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/WildcardClassLoaderPolicy.java 2010-05-13 20:33:05 UTC (rev 104779)</span><br><span>@@ -58,6 +58,12 @@</span><br><span></span><br><span> public WildcardClassLoaderPolicy(Domain domain, PackageRequirement requirement, Module module)</span><br><span> {</span><br><span>+ if (domain == null)</span><br><span>+ throw new IllegalArgumentException("Null domain");</span><br><span>+ if (requirement == null)</span><br><span>+ throw new IllegalArgumentException("Null reqirement");</span><br><span>+ if (module == null)</span><br><span>+ throw new IllegalArgumentException("Null module");</span><br><span> this.domain = domain;</span><br><span> this.requirement = requirement;</span><br><span> this.module = module;</span><br><span></span><br><span></span><br><span></span><br><span>------------------------------</span><br><span></span><br><span>Message: 3</span><br><span>Date: Thu, 13 May 2010 16:38:17 -0400</span><br><span>From: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Subject: [jboss-cvs] JBossAS SVN: r104780 - in</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323:</span><br><span> classloading/src/main/java/org/jboss/classloading/spi/dependency and 1</span><br><span> other directories.</span><br><span>To: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Message-ID:</span><br><span> <<a href="mailto:201005132038.o4DKcH48000995@svn01.web.mwc.hst.phx2.redhat.com">201005132038.o4DKcH48000995@svn01.web.mwc.hst.phx2.redhat.com</a>></span><br><span>Content-Type: text/plain; charset=UTF-8</span><br><span></span><br><span>Author: <a href="mailto:thomas.diesler@jboss.com"><a href="mailto:thomas.diesler@jboss.com">thomas.diesler@jboss.com</a></a></span><br><span>Date: 2010-05-13 16:38:16 -0400 (Thu, 13 May 2010)</span><br><span>New Revision: 104780</span><br><span></span><br><span>Modified:</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/RequirementDependencyItem.java</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/DynamicClassLoaderPolicyFactory.java</span><br><span>Log:</span><br><span>[JBOSGI-323] Add logic that finds a loader which can be lazily added to the policy</span><br><span></span><br><span>Modified: projects/jboss-cl/branches/tdi/jbosgi323/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/branches/tdi/jbosgi323/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java 2010-05-13 20:33:05 UTC (rev 104779)</span><br><span>+++ projects/jboss-cl/branches/tdi/jbosgi323/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java 2010-05-13 20:38:16 UTC (rev 104780)</span><br><span>@@ -905,8 +905,31 @@</span><br><span> return delegate;</span><br><span> }</span><br><span> }</span><br><span>+ </span><br><span>+ // Process potential delegates that were added lazily to the policy</span><br><span>+ // This could for example be done in a {@link ClassNotFoundHandler}</span><br><span>+ List<? extends DelegateLoader> policyDelegates = info.getPolicy().getDelegates();</span><br><span>+ if (policyDelegates != null && policyDelegates.isEmpty() == false)</span><br><span>+ {</span><br><span>+ for (DelegateLoader delegate : policyDelegates)</span><br><span>+ {</span><br><span>+ if (delegates.contains(delegate) || delegate.getImportType() != type)</span><br><span>+ continue;</span><br><span>+ </span><br><span>+ if (trace)</span><br><span>+ log.trace(this + " trying to load " + name + " from delegate added lazily to policy " + delegate + " for " + info.getClassLoader());</span><br><span>+ </span><br><span>+ if (delegate.getResource(name) != null)</span><br><span>+ {</span><br><span>+ info.cacheLoader(name, delegate);</span><br><span>+ return delegate;</span><br><span>+ }</span><br><span>+ }</span><br><span>+ }</span><br><span>+ </span><br><span> if (type == ImportType.AFTER) // TODO -- is this really OK?</span><br><span> info.blackListClass(name);</span><br><span>+ </span><br><span> return null;</span><br><span> }</span><br><span></span><br><span></span><br><span>Modified: projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java 2010-05-13 20:33:05 UTC (rev 104779)</span><br><span>+++ projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/Domain.java 2010-05-13 20:38:16 UTC (rev 104780)</span><br><span>@@ -354,7 +354,8 @@</span><br><span> List<Capability> capabilities = module.getCapabilitiesRaw();</span><br><span> if (capabilities != null && capabilities.isEmpty() == false)</span><br><span> {</span><br><span>- ModuleRequirement requirement = new ModuleRequirement(name, range);</span><br><span>+ String auxModuleName = (name != null ? name : "auxModuleName");</span><br><span>+ ModuleRequirement requirement = new ModuleRequirement(auxModuleName, range);</span><br><span> for (Capability capability : capabilities)</span><br><span> {</span><br><span> if (capability.resolves(module, requirement))</span><br><span>@@ -366,7 +367,9 @@</span><br><span> }</span><br><span> else</span><br><span> {</span><br><span>- if (name.equals(module.getName()) && range.isInRange(module.getVersion()))</span><br><span>+ boolean nameMatch = (name == null || name.equals(module.getName()));</span><br><span>+ boolean versionMatch = range.isInRange(module.getVersion());</span><br><span>+ if (nameMatch && versionMatch)</span><br><span> {</span><br><span> result.add(module);</span><br><span> return;</span><br><span></span><br><span>Modified: projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/RequirementDependencyItem.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/RequirementDependencyItem.java 2010-05-13 20:33:05 UTC (rev 104779)</span><br><span>+++ projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/RequirementDependencyItem.java 2010-05-13 20:38:16 UTC (rev 104780)</span><br><span>@@ -39,7 +39,6 @@</span><br><span> public class RequirementDependencyItem extends AbstractDependencyItem</span><br><span> {</span><br><span> /** The log */</span><br><span>- @SuppressWarnings("hiding")</span><br><span> private static final Logger log = Logger.getLogger(RequirementDependencyItem.class);</span><br><span></span><br><span> /** The module */</span><br><span></span><br><span>Modified: projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java 2010-05-13 20:33:05 UTC (rev 104779)</span><br><span>+++ projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java 2010-05-13 20:38:16 UTC (rev 104780)</span><br><span>@@ -266,7 +266,6 @@</span><br><span> if (requirement instanceof PackageRequirement)</span><br><span> {</span><br><span> PackageRequirement pr = (PackageRequirement)requirement;</span><br><span>- // TODO -- handle wildcards</span><br><span> return new FilteredDelegateLoader(factory, pr.toClassFilter());</span><br><span> }</span><br><span> else</span><br><span></span><br><span>Modified: projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/DynamicClassLoaderPolicyFactory.java</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/DynamicClassLoaderPolicyFactory.java 2010-05-13 20:33:05 UTC (rev 104779)</span><br><span>+++ projects/jboss-cl/branches/tdi/jbosgi323/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/DynamicClassLoaderPolicyFactory.java 2010-05-13 20:38:16 UTC (rev 104780)</span><br><span>@@ -23,10 +23,13 @@</span><br><span></span><br><span> import org.jboss.classloader.spi.ClassLoaderPolicy;</span><br><span> import org.jboss.classloader.spi.ClassLoaderPolicyFactory;</span><br><span>+import org.jboss.classloading.plugins.metadata.PackageRequirement;</span><br><span> import org.jboss.classloading.spi.dependency.Domain;</span><br><span> import org.jboss.classloading.spi.dependency.Module;</span><br><span> import org.jboss.classloading.spi.dependency.RequirementDependencyItem;</span><br><span>+import org.jboss.classloading.spi.metadata.Requirement;</span><br><span> import org.jboss.dependency.spi.Controller;</span><br><span>+import org.jboss.logging.Logger;</span><br><span></span><br><span> /**</span><br><span> * DynamicClassLoaderPolicyFactory.</span><br><span>@@ -36,12 +39,15 @@</span><br><span> */</span><br><span> public class DynamicClassLoaderPolicyFactory implements ClassLoaderPolicyFactory</span><br><span> {</span><br><span>+ /** The log */</span><br><span>+ private static final Logger log = Logger.getLogger(DynamicClassLoaderPolicyFactory.class);</span><br><span>+</span><br><span> /** The controller */</span><br><span> private Controller controller;</span><br><span></span><br><span> /** The domain */</span><br><span> private Domain domain;</span><br><span>- </span><br><span>+</span><br><span> /** The requirement dependency item */</span><br><span> private RequirementDependencyItem item;</span><br><span></span><br><span>@@ -67,13 +73,38 @@</span><br><span></span><br><span> public ClassLoaderPolicy createClassLoaderPolicy()</span><br><span> {</span><br><span>+ Requirement req = item.getRequirement();</span><br><span>+ if (req instanceof PackageRequirement == false)</span><br><span>+ return getWiredModuleClassLoaderPolicy();</span><br><span>+</span><br><span>+ PackageRequirement preq = (PackageRequirement)req;</span><br><span>+ if (preq.isWildcard())</span><br><span>+ {</span><br><span>+ return getWildcardClassLoaderPolicy();</span><br><span>+ }</span><br><span>+ else</span><br><span>+ {</span><br><span>+ return getWiredModuleClassLoaderPolicy();</span><br><span>+ }</span><br><span>+ }</span><br><span>+</span><br><span>+ private ClassLoaderPolicy getWildcardClassLoaderPolicy()</span><br><span>+ {</span><br><span>+ // [TODO] A dynamic import with wildcard at the end does not wire to </span><br><span>+ // a dependent module. We need to figure out how to handle this case.</span><br><span>+ log.warn("Cannot obtain policy for: " + item.getRequirement());</span><br><span>+ return null;</span><br><span>+ }</span><br><span>+</span><br><span>+ private ClassLoaderPolicy getWiredModuleClassLoaderPolicy()</span><br><span>+ {</span><br><span> // Still undetermined</span><br><span>- String name = (String) item.getIDependOn();</span><br><span>+ String name = (String)item.getIDependOn();</span><br><span> if (name == null)</span><br><span> {</span><br><span> // Try to resolve</span><br><span> item.resolve(controller);</span><br><span>- name = (String) item.getIDependOn();</span><br><span>+ name = (String)item.getIDependOn();</span><br><span> if (name == null)</span><br><span> return null;</span><br><span> }</span><br><span>@@ -85,7 +116,8 @@</span><br><span> // Get the policy for the module</span><br><span> if (iDependOnModule instanceof ClassLoaderPolicyModule == false)</span><br><span> throw new IllegalStateException("Unable to determine ClassLoaderPolicy from module: " + iDependOnModule);</span><br><span>- ClassLoaderPolicyModule classLoaderPolicyModule = (ClassLoaderPolicyModule) iDependOnModule;</span><br><span>+</span><br><span>+ ClassLoaderPolicyModule classLoaderPolicyModule = (ClassLoaderPolicyModule)iDependOnModule;</span><br><span> return classLoaderPolicyModule.getPolicy();</span><br><span> }</span><br><span> }</span><br><span></span><br><span></span><br><span></span><br><span>------------------------------</span><br><span></span><br><span>Message: 4</span><br><span>Date: Thu, 13 May 2010 16:54:30 -0400</span><br><span>From: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Subject: [jboss-cvs] JBossAS SVN: r104781 -</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323.</span><br><span>To: <a href="mailto:jboss-cvs-commits@lists.jboss.org"><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></a></span><br><span>Message-ID:</span><br><span> <<a href="mailto:201005132054.o4DKsUUL003264@svn01.web.mwc.hst.phx2.redhat.com">201005132054.o4DKsUUL003264@svn01.web.mwc.hst.phx2.redhat.com</a>></span><br><span>Content-Type: text/plain; charset=UTF-8</span><br><span></span><br><span>Author: <a href="mailto:thomas.diesler@jboss.com"><a href="mailto:thomas.diesler@jboss.com">thomas.diesler@jboss.com</a></a></span><br><span>Date: 2010-05-13 16:54:29 -0400 (Thu, 13 May 2010)</span><br><span>New Revision: 104781</span><br><span></span><br><span>Modified:</span><br><span> projects/jboss-cl/branches/tdi/jbosgi323/pom.xml</span><br><span>Log:</span><br><span>Remove deprecated repository definitions and switch to nexus</span><br><span></span><br><span>Modified: projects/jboss-cl/branches/tdi/jbosgi323/pom.xml</span><br><span>===================================================================</span><br><span>--- projects/jboss-cl/branches/tdi/jbosgi323/pom.xml 2010-05-13 20:38:16 UTC (rev 104780)</span><br><span>+++ projects/jboss-cl/branches/tdi/jbosgi323/pom.xml 2010-05-13 20:54:29 UTC (rev 104781)</span><br><span>@@ -4,7 +4,7 @@</span><br><span> <parent></span><br><span> <groupId>org.jboss</groupId></span><br><span> <artifactId>jboss-parent</artifactId></span><br><span>- <version>4</version></span><br><span>+ <version>5</version></span><br><span> </parent></span><br><span></span><br><span> <groupId>org.jboss.cl</groupId></span><br><span>@@ -109,42 +109,6 @@</span><br><span> </pluginManagement></span><br><span> </build></span><br><span></span><br><span>- <repositories></span><br><span>- <repository></span><br><span>- <id>repository.jboss.org</id></span><br><span>- <name>JBoss Repository</name></span><br><span>- <layout>default</layout></span><br><span>- <url><a href="http://repository.jboss.org/maven2/">http://repository.jboss.org/maven2/</a></url></span><br><span>- <snapshots></span><br><span>- <enabled>false</enabled></span><br><span>- </snapshots></span><br><span>- </repository></span><br><span>- <repository></span><br><span>- <id>snapshots.jboss.org</id></span><br><span>- <name>JBoss Snapshots Repository</name></span><br><span>- <layout>default</layout></span><br><span>- <url><a href="http://snapshots.jboss.org/maven2/">http://snapshots.jboss.org/maven2/</a></url></span><br><span>- <snapshots></span><br><span>- <enabled>true</enabled></span><br><span>- </snapshots></span><br><span>- <releases></span><br><span>- <enabled>false</enabled></span><br><span>- </releases></span><br><span>- </repository></span><br><span>- <!-- APIviz repository --></span><br><span>- <repository></span><br><span>- <id>apiviz.release</id></span><br><span>- <name>APIviz releases</name></span><br><span>- <url><a href="http://apiviz.googlecode.com/svn/site/repo/mvn/release">http://apiviz.googlecode.com/svn/site/repo/mvn/release</a></url></span><br><span>- <releases></span><br><span>- <enabled>true</enabled></span><br><span>- </releases></span><br><span>- <snapshots></span><br><span>- <enabled>false</enabled></span><br><span>- </snapshots></span><br><span>- </repository></span><br><span>- </repositories></span><br><span>- </span><br><span> <reporting></span><br><span> <plugins></span><br><span> <plugin></span><br><span></span><br><span></span><br><span></span><br><span>------------------------------</span><br><span></span><br><span>_______________________________________________</span><br><span>jboss-cvs-commits mailing list</span><br><span><a href="mailto:jboss-cvs-commits@lists.jboss.org">jboss-cvs-commits@lists.jboss.org</a></span><br><span><a href="https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits">https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits</a></span><br><span></span><br><span></span><br><span>End of jboss-cvs-commits Digest, Vol 47, Issue 134</span><br><span>**************************************************</span><br></div></blockquote></body></html>