You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:46:32 UTC
[sling-org-apache-sling-jcr-classloader] 12/18: Use provided parent
class loader instead of own class loader
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 <cz...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.