Author: cziegeler
Date: Wed Mar 24 08:01:33 2010
New Revision: 926966

URL: http://svn.apache.org/viewvc?rev=926966&view=rev
Log:
SLING-1459 :  Make references to class loader manager and class loader writer 
dynamic

Modified:
    
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java
    
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java

Modified: 
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java?rev=926966&r1=926965&r2=926966&view=diff
==============================================================================
--- 
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java
 (original)
+++ 
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java
 Wed Mar 24 08:01:33 2010
@@ -37,6 +37,13 @@ public class CompilationResultImpl imple
 
     private final ClassLoader classLoader;
 
+    public CompilationResultImpl(final String errorMessage) {
+        this.ignoreWarnings = true;
+        this.classLoader = null;
+        this.compilationRequired = false;
+        this.onError(errorMessage, "<General>", 0, 0);
+    }
+
     public CompilationResultImpl(final ClassLoader classLoader) {
         this.ignoreWarnings = true;
         this.classLoader = classLoader;

Modified: 
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java?rev=926966&r1=926965&r2=926966&view=diff
==============================================================================
--- 
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java
 (original)
+++ 
sling/trunk/contrib/commons/compiler/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java
 Wed Mar 24 08:01:33 2010
@@ -29,6 +29,7 @@ import java.util.Map;
 
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferencePolicy;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.classloader.ClassLoaderWriter;
 import org.apache.sling.commons.classloader.DynamicClassLoaderManager;
@@ -64,10 +65,10 @@ public class EclipseJavaCompiler impleme
     /** Logger instance */
     private final Logger logger = 
LoggerFactory.getLogger(EclipseJavaCompiler.class);
 
-    @Reference
+    @Reference(policy=ReferencePolicy.DYNAMIC)
     private ClassLoaderWriter classLoaderWriter;
 
-    @Reference
+    @Reference(policy=ReferencePolicy.DYNAMIC)
     private DynamicClassLoaderManager dynamicClassLoaderManager;
 
     private ClassLoader classLoader;
@@ -197,7 +198,13 @@ public class EclipseJavaCompiler impleme
 
         // get classloader and classloader writer
         final ClassLoader loader = this.getClassLoader(options);
+        if ( loader == null ) {
+            return new CompilationResultImpl("Class loader for compilation is 
not available.");
+        }
         final ClassLoaderWriter writer = this.getClassLoaderWriter(options);
+        if ( writer == null ) {
+            return new CompilationResultImpl("Class loader writer for 
compilation is not available.");
+        }
 
         // check sources for compilation
         boolean needsCompilation = isForceCompilation(options);


Reply via email to