This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.commons.compiler-2.0.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-compiler.git
commit fedaf7fccca6c2ef09af9ce3fba4afbd54079156 Author: Carsten Ziegeler <[email protected]> AuthorDate: Wed Mar 24 08:01:33 2010 +0000 SLING-1459 : Make references to class loader manager and class loader writer dynamic git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/commons/compiler@926966 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/commons/compiler/impl/CompilationResultImpl.java | 7 +++++++ .../sling/commons/compiler/impl/EclipseJavaCompiler.java | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java b/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java index 83f2e58..83baef6 100644 --- a/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java +++ b/src/main/java/org/apache/sling/commons/compiler/impl/CompilationResultImpl.java @@ -37,6 +37,13 @@ public class CompilationResultImpl implements CompilationResult { 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; diff --git a/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java b/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java index 641be1c..7893d9c 100644 --- a/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java +++ b/src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java @@ -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 implements JavaCompiler { /** 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 implements JavaCompiler { // 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); -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
