Author: cziegeler
Date: Wed Jul 15 08:30:19 2009
New Revision: 794178
URL: http://svn.apache.org/viewvc?rev=794178&view=rev
Log:
SLING-1048 : Implement the dynamic class loader provider interface and
deprecate the repository class loader interface.
Modified:
sling/trunk/bundles/jcr/classloader/pom.xml
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/RepositoryClassLoaderProvider.java
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/BundleProxyClassLoader.java
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderFacade.java
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
Modified: sling/trunk/bundles/jcr/classloader/pom.xml
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/classloader/pom.xml?rev=794178&r1=794177&r2=794178&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/classloader/pom.xml (original)
+++ sling/trunk/bundles/jcr/classloader/pom.xml Wed Jul 15 08:30:19 2009
@@ -94,6 +94,11 @@
<version>2.0.2-incubator</version>
</dependency>
<dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.classloader</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-classloader</artifactId>
<version>1.4.1</version>
Modified:
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/RepositoryClassLoaderProvider.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/RepositoryClassLoaderProvider.java?rev=794178&r1=794177&r2=794178&view=diff
==============================================================================
---
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/RepositoryClassLoaderProvider.java
(original)
+++
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/RepositoryClassLoaderProvider.java
Wed Jul 15 08:30:19 2009
@@ -21,8 +21,12 @@
import javax.jcr.RepositoryException;
/**
- * The <code>RepositoryClassLoaderProvider</code> TODO
+ * The <code>RepositoryClassLoaderProvider</code>
+ *
+ * @deprecated Use the {...@link
org.apache.sling.commons.classloader.DynamicClassLoaderManager}
+ * instead.
*/
+...@deprecated
public interface RepositoryClassLoaderProvider {
ClassLoader getClassLoader(String owner) throws RepositoryException;
Modified:
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/BundleProxyClassLoader.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/BundleProxyClassLoader.java?rev=794178&r1=794177&r2=794178&view=diff
==============================================================================
---
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/BundleProxyClassLoader.java
(original)
+++
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/BundleProxyClassLoader.java
Wed Jul 15 08:30:19 2009
@@ -49,7 +49,8 @@
// at least Java 5 you can prevent the occurence of duplicate boot
classloader
// resources by overriding ClassLoader.getResources(...) instead of
// ClassLoader.findResources(...).
- public Enumeration findResources(String name) throws IOException {
+ @SuppressWarnings("unchecked")
+ public Enumeration<URL> findResources(String name) throws IOException {
return this.bundle.getResources(name);
}
@@ -57,7 +58,7 @@
return this.bundle.getResource(name);
}
- public Class findClass(String name) throws ClassNotFoundException {
+ public Class<?> findClass(String name) throws ClassNotFoundException {
return this.bundle.loadClass(name);
}
@@ -65,11 +66,11 @@
return (this.parent == null) ? this.findResource(name) :
super.getResource(name);
}
- protected Class loadClass(String name, boolean resolve) throws
ClassNotFoundException {
- Class clazz = (this.parent == null) ? this.findClass(name) :
super.loadClass(name, false);
- if (resolve)
+ protected Class<?> loadClass(String name, boolean resolve) throws
ClassNotFoundException {
+ Class<?> clazz = (this.parent == null) ? this.findClass(name) :
super.loadClass(name, false);
+ if (resolve) {
super.resolveClass(clazz);
-
+ }
return clazz;
}
}
Modified:
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderFacade.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderFacade.java?rev=794178&r1=794177&r2=794178&view=diff
==============================================================================
---
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderFacade.java
(original)
+++
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderFacade.java
Wed Jul 15 08:30:19 2009
@@ -100,7 +100,7 @@
}
}
- protected synchronized Class loadClass(String name, boolean resolve)
throws ClassNotFoundException {
+ protected synchronized Class<?> loadClass(String name, boolean resolve)
throws ClassNotFoundException {
try {
return this.getDelegateClassLoader().loadClass(name);
} catch (RepositoryException re) {
@@ -118,7 +118,7 @@
}
}
- public Enumeration findResources(String name) throws IOException {
+ public Enumeration<URL> findResources(String name) throws IOException {
try {
return this.getDelegateClassLoader().getResources(name);
} catch (RepositoryException re) {
Modified:
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java?rev=794178&r1=794177&r2=794178&view=diff
==============================================================================
---
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
(original)
+++
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/RepositoryClassLoaderProviderImpl.java
Wed Jul 15 08:30:19 2009
@@ -27,6 +27,7 @@
import org.apache.commons.collections.BidiMap;
import org.apache.commons.collections.bidimap.DualHashBidiMap;
+import org.apache.sling.commons.classloader.DynamicClassLoaderProvider;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.jcr.classloader.RepositoryClassLoaderProvider;
import org.osgi.framework.Bundle;
@@ -43,7 +44,7 @@
* @scr.service servicefactory="true"
*/
public class RepositoryClassLoaderProviderImpl
- implements RepositoryClassLoaderProvider {
+ implements RepositoryClassLoaderProvider, DynamicClassLoaderProvider {
/**
* @scr.property values0="/var/classes"
@@ -115,6 +116,13 @@
}
}
+ /**
+ * @see
org.apache.sling.commons.classloader.DynamicClassLoaderProvider#getClassLoader()
+ */
+ public ClassLoader getClassLoader() {
+ return this.getClassLoader(null);
+ }
+
//---------- SCR Integration ----------------------------------------------
protected void activate(ComponentContext componentContext) {