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

rombert pushed a commit to annotated tag org.apache.sling.jcr.classloader-2.0.6
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-classloader.git

commit 31a142c3357c273ecf569dbe9070693c41d4d352
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Thu Jul 16 05:46:47 2009 +0000

    Use provided parent class loader instead of own class loader
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/classloader@794540 
13f79535-47bb-0310-9956-ffa450edef68
---
 .../internal/RepositoryClassLoaderProviderImpl.java   | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
 
b/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
index c7f4fac..af5ee61 100644
--- 
a/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
+++ 
b/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
@@ -117,10 +117,23 @@ public class RepositoryClassLoaderProviderImpl
     }
 
     /**
-     * @see 
org.apache.sling.commons.classloader.DynamicClassLoaderProvider#getClassLoader()
+     * @see 
org.apache.sling.commons.classloader.DynamicClassLoaderProvider#getClassLoader(ClassLoader)
      */
-    public ClassLoader getClassLoader() {
-        return this.getClassLoader(null);
+    public ClassLoader getClassLoader(final ClassLoader parent) {
+        // we just make up a unique identifier
+        final String classLoaderOwner = "DynamicClassLoaderProvider:" + 
parent.hashCode();
+        RepositoryClassLoaderFacade loader =
+            (RepositoryClassLoaderFacade) this.loaders.get(classLoaderOwner);
+        if (loader == null) {
+            loader = new RepositoryClassLoaderFacade(this, parent,
+                    OWNER_DEFAULT, this.classPath);
+            this.loaders.put(classLoaderOwner, loader);
+        }
+
+        // extend reference counter
+        loader.ref();
+
+        return loader;
     }
 
     //---------- SCR Integration ----------------------------------------------

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to