You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by tc...@apache.org on 2005/11/08 17:34:24 UTC

svn commit: r331839 - in /jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers: AbstractJavaCompiler.java JavaCompiler.java eclipse/EclipseJavaCompiler.java groovy/GroovyJavaCompiler.java janino/JaninoJavaCompiler.java

Author: tcurdt
Date: Tue Nov  8 08:33:30 2005
New Revision: 331839

URL: http://svn.apache.org/viewcvs?rev=331839&view=rev
Log:
provide a classloader for the compiler

Modified:
    jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java

Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java?rev=331839&r1=331838&r2=331839&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java Tue Nov  8 08:33:30 2005
@@ -1,6 +1,8 @@
 package org.apache.commons.jci.compilers;
 
 import org.apache.commons.jci.problems.CompilationProblemHandler;
+import org.apache.commons.jci.readers.ResourceReader;
+import org.apache.commons.jci.stores.ResourceStore;
 
 
 public abstract class AbstractJavaCompiler implements JavaCompiler {
@@ -9,6 +11,24 @@
     
     public void setCompilationProblemHandler( final CompilationProblemHandler pHandler ) {
         problemHandler = pHandler;
+    }
+    
+    public CompilationResult compile(
+                              final String[] pClazzNames,
+                              final ResourceReader pReader,
+                              final ResourceStore pStore
+                              ) {
+        
+        ClassLoader classLoader = null;
+
+        classLoader = Thread.currentThread().getContextClassLoader();
+        
+        if ( classLoader == null ) {
+            classLoader = this.getClass().getClassLoader();
+        }
+
+        
+        return compile( pClazzNames, pReader, pStore, classLoader );               
     }
     
 }

Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java?rev=331839&r1=331838&r2=331839&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java Tue Nov  8 08:33:30 2005
@@ -27,10 +27,17 @@
 public interface JavaCompiler {
     
     void setCompilationProblemHandler( final CompilationProblemHandler pHandler );
+    
+    CompilationResult compile(
+                              final String[] pClazzNames,
+                              final ResourceReader pReader,
+                              final ResourceStore pStore
+                              );    
 
     CompilationResult compile(
             final String[] pClazzNames,
             final ResourceReader pReader,
-            final ResourceStore pStore
+            final ResourceStore pStore,
+            final ClassLoader classLoader
             );
 }

Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java?rev=331839&r1=331838&r2=331839&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java Tue Nov  8 08:33:30 2005
@@ -106,9 +106,10 @@
     public org.apache.commons.jci.compilers.CompilationResult compile(
             final String[] pClazzNames,
             final ResourceReader pReader,
-            final ResourceStore pStore
+            final ResourceStore pStore,
+            final ClassLoader classLoader
             ) {
-
+        
         final Map settingsMap = settings.getMap();
         final Set clazzIndex = new HashSet();
         ICompilationUnit[] compilationUnits = new ICompilationUnit[pClazzNames.length];
@@ -163,7 +164,7 @@
                     }
 
                     final String resourceName = clazzName.replace('.', '/') + ".class";
-                    final InputStream is = this.getClass().getClassLoader().getResourceAsStream(resourceName);
+                    final InputStream is = classLoader.getResourceAsStream(resourceName);
                     if (is != null) {
                         final byte[] buffer = new byte[8192];
                         final ByteArrayOutputStream baos = new ByteArrayOutputStream(buffer.length);
@@ -201,7 +202,7 @@
 
             private boolean isPackage( final String clazzName ) {
                 final String resourceName = clazzName.replace('.', '/') + ".class";
-                final URL resource = this.getClass().getClassLoader().getResource(resourceName);
+                final URL resource = classLoader.getResource(resourceName);
                 return resource == null;
             }
 

Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java?rev=331839&r1=331838&r2=331839&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java Tue Nov  8 08:33:30 2005
@@ -29,11 +29,11 @@
     public CompilationResult compile(
             final String[] clazzNames,
             final ResourceReader reader,
-            final ResourceStore store
+            final ResourceStore store,
+            final ClassLoader classLoader
             ) {
      
         final CompilerConfiguration configuration = new CompilerConfiguration();
-        final ClassLoader classloader = this.getClass().getClassLoader();
         final ErrorCollector collector = new ErrorCollector(configuration);
         final CompilationUnit unit = new CompilationUnit(configuration);
         final SourceUnit[] source = new SourceUnit[clazzNames.length];
@@ -44,7 +44,7 @@
                     filename,
                     new String(reader.getContent(filename)), // FIXME delay the read
                     configuration,
-                    classloader,
+                    classLoader,
                     collector
                     );
             unit.addSource(source[i]);

Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java?rev=331839&r1=331838&r2=331839&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java Tue Nov  8 08:33:30 2005
@@ -63,8 +63,8 @@
         private final Map classes;
         private final Collection problems = new ArrayList();
 
-        private CompilingIClassLoader(final ResourceReader pResourceReader, final Map pClasses) {
-            super(new ClassLoaderIClassLoader());
+        private CompilingIClassLoader(final ResourceReader pResourceReader, final Map pClasses, final ClassLoader classLoader) {
+            super( new ClassLoaderIClassLoader( classLoader ) );
             resourceReader = pResourceReader;
             classes = pClasses;
             super.postConstruct();
@@ -140,10 +140,12 @@
     public CompilationResult compile(
             final String[] pClasses,
             final ResourceReader pResourceReader,
-            final ResourceStore pStore
+            final ResourceStore pStore,
+            final ClassLoader classLoader
             ) {
-        final Map classFilesByName = new HashMap();
-        final CompilingIClassLoader icl = new CompilingIClassLoader(pResourceReader, classFilesByName);
+        final Map classFilesByName = new HashMap();       
+        
+        final CompilingIClassLoader icl = new CompilingIClassLoader(pResourceReader, classFilesByName, classLoader);
         for (int i = 0; i < pClasses.length; i++) {
             log.debug("compiling " + pClasses[i]);
             icl.loadIClass(Descriptor.fromClassName(pClasses[i]));



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org