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:44 UTC
[sling-org-apache-sling-jcr-classloader] 05/08: SLING-1191 :
Dynamic class loader providers are not reloaded when bundles are
updated/installed etc. Add new release method to the dynamic class loader
provider. This allows a provider to react on bundle/class loader changes.
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.jcr.classloader-3.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-classloader.git
commit 7c385410fefce9d54cc44f6c25077e8a9a9e86d1
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Nov 17 11:12:48 2009 +0000
SLING-1191 : Dynamic class loader providers are not reloaded when bundles are updated/installed etc.
Add new release method to the dynamic class loader provider. This allows a provider to react on bundle/class loader changes.
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/classloader@881245 13f79535-47bb-0310-9956-ffa450edef68
---
pom.xml | 3 +--
.../internal/DynamicClassLoaderProviderImpl.java | 21 ++++++++++-----------
2 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/pom.xml b/pom.xml
index 8476901..4bcb96c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,6 @@
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
<version>7</version>
- <relativePath>../../../parent/pom.xml</relativePath>
</parent>
<artifactId>org.apache.sling.jcr.classloader</artifactId>
@@ -98,7 +97,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.classloader</artifactId>
- <version>1.0.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicClassLoaderProviderImpl.java b/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicClassLoaderProviderImpl.java
index 8dd5f3c..7befe0d 100644
--- a/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicClassLoaderProviderImpl.java
+++ b/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicClassLoaderProviderImpl.java
@@ -87,8 +87,6 @@ public class DynamicClassLoaderProviderImpl
private String[] classPath;
- private RepositoryClassLoaderFacade facade;
-
/** @scr.reference policy="dynamic" */
private MimeTypeService mimeTypeService;
@@ -116,15 +114,20 @@ public class DynamicClassLoaderProviderImpl
* @see org.apache.sling.commons.classloader.DynamicClassLoaderProvider#getClassLoader(ClassLoader)
*/
public ClassLoader getClassLoader(final ClassLoader parent) {
- if ( this.facade == null ) {
- this.facade = new RepositoryClassLoaderFacade(this, parent, this.getClassPaths());
- }
-
- return this.facade;
+ return new RepositoryClassLoaderFacade(this, parent, this.getClassPaths());
}
+ /**
+ * @see org.apache.sling.commons.classloader.DynamicClassLoaderProvider#release(java.lang.ClassLoader)
+ */
+ public void release(ClassLoader classLoader) {
+ if ( classLoader instanceof RepositoryClassLoaderFacade ) {
+ ((RepositoryClassLoaderFacade)classLoader).destroy();
+ }
+ }
//---------- SCR Integration ----------------------------------------------
+
/**
* @see org.apache.sling.commons.classloader.ClassLoaderWriter#delete(java.lang.String)
*/
@@ -415,10 +418,6 @@ public class DynamicClassLoaderProviderImpl
* @param componentContext
*/
protected void deactivate(final ComponentContext componentContext) {
- if ( this.facade != null) {
- this.facade.destroy();
- this.facade = null;
- }
if ( this.readSession != null ) {
this.readSession.logout();
this.readSession = null;
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.