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 2006/04/29 18:31:14 UTC

svn commit: r398200 - in /jakarta/commons/sandbox/jci/trunk: ./ compilers/eclipse/src/java/org/apache/commons/jci/compilers/ compilers/groovy/src/java/org/apache/commons/jci/compilers/ compilers/janino/src/java/org/apache/commons/jci/compilers/ core/sr...

Author: tcurdt
Date: Sat Apr 29 09:31:08 2006
New Revision: 398200

URL: http://svn.apache.org/viewcvs?rev=398200&view=rev
Log:
added some docs, since we store bytes also read bytes, always use the proper resources paths, typesafe CompilationResult constructor, general cleanups

Modified:
    jakarta/commons/sandbox/jci/trunk/TODO
    jakarta/commons/sandbox/jci/trunk/compilers/eclipse/src/java/org/apache/commons/jci/compilers/EclipseJavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/compilers/groovy/src/java/org/apache/commons/jci/compilers/GroovyJavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/compilers/janino/src/java/org/apache/commons/jci/compilers/JaninoJavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/CompilationResult.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompiler.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompilerFactory.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/FileResourceReader.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/MemoryResourceReader.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/ResourceReader.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/FileResourceStore.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/MemoryResourceStore.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStore.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java
    jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/TransactionalResourceStore.java
    jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/CompilerUtils.java
    jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/MyBar.java
    jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/readers/FileResourceReaderTestCase.java

Modified: jakarta/commons/sandbox/jci/trunk/TODO
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/TODO?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/TODO (original)
+++ jakarta/commons/sandbox/jci/trunk/TODO Sat Apr 29 09:31:08 2006
@@ -1,12 +1,10 @@
 o integrate just4log into the build system (or a different logging solution?)
-o compiler factory
 o compiler implementations
   o javac 
   o jikes
   o pizza
   o jruby
   o jpython
-o make suffixes matching (*.java, *.class) configurable
 o turn the JavaCompilerFactory into an interface and maybe provide a simple default impl
 o documentation
 o dependency analysis for proper re-try after errors

Modified: jakarta/commons/sandbox/jci/trunk/compilers/eclipse/src/java/org/apache/commons/jci/compilers/EclipseJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/compilers/eclipse/src/java/org/apache/commons/jci/compilers/EclipseJavaCompiler.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/compilers/eclipse/src/java/org/apache/commons/jci/compilers/EclipseJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/compilers/eclipse/src/java/org/apache/commons/jci/compilers/EclipseJavaCompiler.java Sat Apr 29 09:31:08 2006
@@ -26,6 +26,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.StringTokenizer;
+
 import org.apache.commons.jci.problems.CompilationProblem;
 import org.apache.commons.jci.readers.ResourceReader;
 import org.apache.commons.jci.stores.ResourceStore;
@@ -90,7 +91,7 @@
         }
 
         public char[] getContents() {
-            return reader.getContent(fileName);
+            return new String(reader.getBytes(fileName)).toCharArray();
         }
 
         public char[] getMainTypeName() {
@@ -266,6 +267,8 @@
 
         compiler.compile(compilationUnits);
 
-        return new org.apache.commons.jci.compilers.CompilationResult(problems);
+        final CompilationProblem[] result = new CompilationProblem[problems.size()];
+        problems.toArray(result);
+        return new org.apache.commons.jci.compilers.CompilationResult(result);
     }
 }

Modified: jakarta/commons/sandbox/jci/trunk/compilers/groovy/src/java/org/apache/commons/jci/compilers/GroovyJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/compilers/groovy/src/java/org/apache/commons/jci/compilers/GroovyJavaCompiler.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/compilers/groovy/src/java/org/apache/commons/jci/compilers/GroovyJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/compilers/groovy/src/java/org/apache/commons/jci/compilers/GroovyJavaCompiler.java Sat Apr 29 09:31:08 2006
@@ -28,21 +28,21 @@
     private final static Log log = LogFactory.getLog(GroovyJavaCompiler.class);
     
     public CompilationResult compile(
-            final String[] clazzNames,
-            final ResourceReader reader,
-            final ResourceStore store,
-            final ClassLoader classLoader
+            final String[] pResourceNames,
+            final ResourceReader pReader,
+            final ResourceStore pStore,
+            final ClassLoader pClassLoader
             ) {
         final CompilerConfiguration configuration = new CompilerConfiguration();
         final ErrorCollector collector = new ErrorCollector(configuration);
-        final GroovyClassLoader groovyClassLoader = new GroovyClassLoader(classLoader);
+        final GroovyClassLoader groovyClassLoader = new GroovyClassLoader(pClassLoader);
         final CompilationUnit unit = new CompilationUnit(configuration, null, groovyClassLoader);
-        final SourceUnit[] source = new SourceUnit[clazzNames.length];
+        final SourceUnit[] source = new SourceUnit[pResourceNames.length];
         for (int i = 0; i < source.length; i++) {
-            final String filename = clazzNames[i].replace('.','/') + ".groovy";
+            final String resourceName = pResourceNames[i];
             source[i] = new SourceUnit(
-                    filename,
-                    new String(reader.getContent(filename)), // FIXME delay the read
+                    convertResourceNameToClassName(resourceName),
+                    new String(pReader.getBytes(resourceName)), // FIXME delay the read
                     configuration,
                     groovyClassLoader,
                     collector
@@ -60,7 +60,7 @@
             for (final Iterator it = classes.iterator(); it.hasNext();) {
                 final GroovyClass clazz = (GroovyClass) it.next();
                 final byte[] bytes = clazz.getBytes();
-                store.write(clazz.getName(), bytes);
+                pStore.write(clazz.getName(), bytes);
             }
         } catch (final MultipleCompilationErrorsException e) {
             final ErrorCollector col = e.getErrorCollector();
@@ -90,7 +90,9 @@
         } catch (CompilationFailedException e) {
             throw new RuntimeException("no expected");
         }
-        
-        return new CompilationResult(problems);
+
+        final CompilationProblem[] result = new CompilationProblem[problems.size()];
+        problems.toArray(result);
+        return new CompilationResult(result);
     }
 }

Modified: jakarta/commons/sandbox/jci/trunk/compilers/janino/src/java/org/apache/commons/jci/compilers/JaninoJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/compilers/janino/src/java/org/apache/commons/jci/compilers/JaninoJavaCompiler.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/compilers/janino/src/java/org/apache/commons/jci/compilers/JaninoJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/compilers/janino/src/java/org/apache/commons/jci/compilers/JaninoJavaCompiler.java Sat Apr 29 09:31:08 2006
@@ -16,15 +16,15 @@
 package org.apache.commons.jci.compilers;
 
 import java.io.BufferedReader;
-import java.io.CharArrayReader;
-import java.io.File;
 import java.io.IOException;
 import java.io.Reader;
+import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+
 import org.apache.commons.jci.problems.CompilationProblem;
 import org.apache.commons.jci.readers.ResourceReader;
 import org.apache.commons.jci.stores.ResourceStore;
@@ -76,16 +76,16 @@
             if (types.containsKey(pType)) {
                 return (IClass) types.get(pType);
             }
-            final String fileNameForClass = className.replace('.', File.separatorChar) + ".java";
+            final String resourceNameFromClass = className.replace('.', '/') + ".java";
 
-            final char[] content = resourceReader.getContent(fileNameForClass);
+            final byte[] content = resourceReader.getBytes(resourceNameFromClass);
             if (content == null) {
                 return null;
             }
-            final Reader reader = new BufferedReader(new CharArrayReader(content));
+            final Reader reader = new BufferedReader(new StringReader(new String(content)));
             Scanner scanner = null;
             try {
-                scanner = new Scanner(fileNameForClass, reader);
+                scanner = new Scanner(resourceNameFromClass, reader);
                 final Java.CompilationUnit unit = new Parser(scanner).parseCompilationUnit();
                 final UnitCompiler uc = new UnitCompiler(unit, this);
                 uc.setCompileErrorHandler(new ErrorHandler() {
@@ -120,9 +120,9 @@
             } catch (final LocatedException e) {
                 problems.add(new JaninoCompilationProblem(e));
             } catch (final IOException e) {
-                problems.add(new JaninoCompilationProblem(fileNameForClass, "IOException:" + e.getMessage(), true));
+                problems.add(new JaninoCompilationProblem(resourceNameFromClass, "IOException:" + e.getMessage(), true));
             } catch (final Exception e) {
-                problems.add(new JaninoCompilationProblem(fileNameForClass, "Exception:" + e.getMessage(), true));
+                problems.add(new JaninoCompilationProblem(resourceNameFromClass, "Exception:" + e.getMessage(), true));
             } finally {
                 if (scanner != null) {
                     try {
@@ -155,7 +155,10 @@
             pStore.write((String)entry.getKey(), (byte[])entry.getValue());
         }
         
-        return new CompilationResult(icl.getProblems());
+        final Collection problems = icl.getProblems();
+        final CompilationProblem[] result = new CompilationProblem[problems.size()];
+        problems.toArray(result);
+        return new CompilationResult(result);
     }
     
 }

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/AbstractJavaCompiler.java Sat Apr 29 09:31:08 2006
@@ -28,4 +28,22 @@
         return compile(pClazzNames, pReader, pStore, classLoader);
     }
     
+    /**
+     * Please do not use - internal
+     * org/my/Class.xxx -> org/my/Class
+     */
+    public static String stripExtension( final String pResourceName ) {
+    	final int i = pResourceName.lastIndexOf('.');
+    	final String withoutExtension = pResourceName.substring(0, i);
+    	return withoutExtension;
+    }
+    
+    /**
+     * Please do not use - internal
+     * org/my/Class.xxx -> org.my.Class
+     */
+    public static String convertResourceNameToClassName( final String pResourceName ) {
+    	return stripExtension(pResourceName).replace('/', '.');
+    }
+
 }

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/CompilationResult.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/CompilationResult.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/CompilationResult.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/CompilationResult.java Sat Apr 29 09:31:08 2006
@@ -2,35 +2,39 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import org.apache.commons.jci.problems.CompilationProblem;
 
 
 public final class CompilationResult {
     
-    final Collection errors = new ArrayList();
-    final Collection warnings = new ArrayList();
-
-    public CompilationResult( final Collection pProblems ) {
-        for (final Iterator it = pProblems.iterator(); it.hasNext();) {
-            final CompilationProblem problem = (CompilationProblem) it.next();
+    private final CompilationProblem[] errors;
+    private final CompilationProblem[] warnings;
+        
+    public CompilationResult( final CompilationProblem[] pProblems ) {
+    	final Collection errorsColl = new ArrayList();
+        final Collection warningsColl = new ArrayList();
+    	
+    	for (int i = 0; i < pProblems.length; i++) {
+    		final CompilationProblem problem = pProblems[i];
             if (problem.isError()) {
-                errors.add(problem);
+                errorsColl.add(problem);
             } else {
-                warnings.add(problem);
-            }
-        }
+                warningsColl.add(problem);
+            }			
+		}
+        
+    	errors = new CompilationProblem[errorsColl.size()];
+        errorsColl.toArray(errors);
+
+        warnings = new CompilationProblem[warningsColl.size()];
+        warningsColl.toArray(warnings);
     }
     
     public CompilationProblem[] getErrors() {
-        final CompilationProblem[] result = new CompilationProblem[errors.size()];
-        errors.toArray(result);
-        return result;
+        return errors;
     }
 
     public CompilationProblem[] getWarnings() {
-        final CompilationProblem[] result = new CompilationProblem[warnings.size()];
-        warnings.toArray(result);
-        return result;
+    	return warnings;
     }
 }

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompiler.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompiler.java Sat Apr 29 09:31:08 2006
@@ -22,20 +22,47 @@
 
 /**
  * @author tcurdt
- *
  */
 public interface JavaCompiler {
-    
+
+	/**
+	 * Set the the handler that gets the notification of an error
+	 * or warning as soon as this information is available from
+	 * the compiler.
+	 * Note: Some compilers might not support this feature.
+	 * 
+	 * @param pHandler
+	 */
     void setCompilationProblemHandler( final CompilationProblemHandler pHandler );
-    
+
+    /**
+     * Compiles the java resources "some/path/to/MyJava.java"
+     * read through the ResourceReader and then stores the resulting
+     * classes in the ResourceStore under "some/path/to/MyJava.class".
+     * Note: As these are resource path you always have to use "/" 
+     * 
+     * The result of the compilation run including detailed error
+     * information is returned as CompilationResult. If you need to
+     * get notified already during the compilation process you can
+     * register a CompilationProblemHandler.
+     * Note: Not all compilers might support this notification mechanism.
+     * 
+     * @param pResourcePaths
+     * @param pReader
+     * @param pStore
+     * @return always a CompilationResult
+     */
     CompilationResult compile(
-            final String[] pClazzNames,
+            final String[] pResourcePaths,
             final ResourceReader pReader,
             final ResourceStore pStore );
 
-
+    /**
+     * As the usual compiler but you can provide the classloader
+     * and therefor the classpath you are compiling with.
+     */
     CompilationResult compile(
-            final String[] pClazzNames,
+            final String[] pResourcePaths,
             final ResourceReader pReader,
             final ResourceStore pStore,
             final ClassLoader classLoader );

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompilerFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompilerFactory.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompilerFactory.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/compilers/JavaCompilerFactory.java Sat Apr 29 09:31:08 2006
@@ -22,55 +22,34 @@
 
 public final class JavaCompilerFactory {
 
-    private Map classCache = new HashMap();
-    
     private static final JavaCompilerFactory INSTANCE = new JavaCompilerFactory();
     
     public static JavaCompilerFactory getInstance() {
         return JavaCompilerFactory.INSTANCE;
     }
 
+    private final Map classCache = new HashMap();
+    
     private JavaCompilerFactory() {
     }
     
-
-//    private Map getImplementations() {
-//        final String[] jars = System.getProperty("java.class.path").split(System.getProperty("path.separator"));
-//        final Map implementations = new HashMap(jars.length);        
-//        for (int i = 0; i < jars.length; i++) {
-//            try {
-//                final JarFile jar = new JarFile(jars[i]);
-//                final Manifest manifest = jar.getManifest();
-//                final String revision = (String) manifest.getMainAttributes().getValue("" + JavaCompiler.class);
-//                implementations.put(jars[i], revision);
-//            } catch (IOException e) {                
-//            }
-//        }
-//
-//      return implementations;
-//    }
-    
-//    public JavaCompiler createCompiler(final JavaCompilerSettings pSettings) {
-//        if (pSettings instanceof EclipseJavaCompilerSettings) {
-//            return new EclipseJavaCompiler((EclipseJavaCompilerSettings) pSettings);
-//        }
-        
-        // FIXME create settings for the other compilers and add here
-        
-//        return null;
-//    }
-    
     private String toJavaCasing(final String pName) {
         final char[] name = pName.toLowerCase().toCharArray();
         name[0] = Character.toUpperCase(name[0]);
         return new String(name);
     }
     /**
-     * Can accept the following strings "eclipse", "janino", "groovy" and returns the appropriate
-     * JavaCompiler. Return null for any other type of string.
+     * Tries to guess the class name by convention. So for compilers
+     * following the naming convention
+     * 
+     *   org.apache.commons.jci.compilers.SomeJavaCompiler
+     *   
+     * you can use the short-hands "some"/"Some"/"SOME". Otherwise
+     * you have to provide the full class name. The compiler is
+     * getting instanciated via (cached) reflection.
      * 
-     * @param compiler
-     * @return
+     * @param pHint
+     * @return JavaCompiler or null
      */
     public JavaCompiler createCompiler(final String pHint) {
         

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java Sat Apr 29 09:31:08 2006
@@ -393,7 +393,7 @@
 
 
     public void run() {
-        log.info("fam running");
+        log.debug("fam running");
         while (true) {
             synchronized (mutexRunning) {
                 if (!running) {
@@ -425,7 +425,7 @@
             } catch (final InterruptedException e) {
             }
         }
-        log.info("fam exiting");
+        log.debug("fam exiting");
     }
 
 

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/FileResourceReader.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/FileResourceReader.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/FileResourceReader.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/FileResourceReader.java Sat Apr 29 09:31:08 2006
@@ -33,14 +33,14 @@
         root = pRoot;        
     }
     
-    public boolean isAvailable(String filename) {
-        return new File(root,filename).exists();
+    public boolean isAvailable( final String pResourceName ) {
+        return new File(root, pResourceName).exists();
     }
 
-    public char[] getContent( final String fileName ) {
+    public byte[] getBytes( final String pResourceName ) {
         try {
             return FileUtils.readFileToString(
-                    new File(root,fileName), "UTF-8").toCharArray();
+                    new File(root, pResourceName), "UTF-8").getBytes();
         } catch(Exception e) {
         }
         return null;

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/MemoryResourceReader.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/MemoryResourceReader.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/MemoryResourceReader.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/MemoryResourceReader.java Sat Apr 29 09:31:08 2006
@@ -5,40 +5,40 @@
 
 public class MemoryResourceReader implements ResourceReader {
     
-    private Map files;
+    private Map resources;
 
-    public boolean isAvailable(final String pFileName) {
-        if (files == null) {
+    public boolean isAvailable(final String pResourceName) {
+        if (resources == null) {
             return false;
         }
 
-        return files.containsKey( pFileName );
+        return resources.containsKey( pResourceName );
     }
     
-    public void addFile(final String pFileName, final char[] pFile) {
-        if (files == null) {
-            files = new HashMap();
+    public void add(final String pResourceName, final char[] pContent) {
+        if (resources == null) {
+            resources = new HashMap();
         }
         
-        files.put(pFileName, pFile);
+        resources.put(pResourceName, pContent);
     }
     
-    public void removeFile(final String pFileName) {
-        if (files != null) {
-            files.remove(pFileName);
+    public void remove(final String pResourceName) {
+        if (resources != null) {
+            resources.remove(pResourceName);
         }    
     }    
     
 
-    public char[] getContent(final String pFileName)
+    public byte[] getBytes(final String pResourceName)
     {
-        return (char[]) files.get(pFileName);
+        return (byte[]) resources.get(pResourceName);
     }
 
     public String[] list() {
-        if (files == null) {
+        if (resources == null) {
             return new String[0];
         }
-        return (String[]) files.keySet().toArray(new String[files.size()]);
+        return (String[]) resources.keySet().toArray(new String[resources.size()]);
     }
 }

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/ResourceReader.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/ResourceReader.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/ResourceReader.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/readers/ResourceReader.java Sat Apr 29 09:31:08 2006
@@ -17,10 +17,8 @@
 
 /**
  * @author tcurdt
- *
  */
 public interface ResourceReader {
-    boolean isAvailable( final String filename );
-    char[] getContent( final String fileName );
-
+    boolean isAvailable( final String pResourceName );
+    byte[] getBytes( final String pResourceName );
 }

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/FileResourceStore.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/FileResourceStore.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/FileResourceStore.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/FileResourceStore.java Sat Apr 29 09:31:08 2006
@@ -29,7 +29,6 @@
 
 /**
  * @author tcurdt
- *
  */
 public final class FileResourceStore implements ResourceStore {
 
@@ -38,10 +37,10 @@
     public FileResourceStore(final File pFile) {
         root = pFile;
     }
-    public byte[] read( final String resourceName ) {
+    public byte[] read( final String pResourceName ) {
         InputStream is = null;
         try {
-            is = new FileInputStream(getFile(resourceName));
+            is = new FileInputStream(getFile(pResourceName));
             final byte[] data = IOUtils.toByteArray(is);
             return data;
         } catch (FileNotFoundException e) {
@@ -57,10 +56,10 @@
 
         return null;
     }
-    public void write( final String resourceName, final byte[] clazzData ) {
+    public void write( final String pResourceName, final byte[] pData ) {
         OutputStream os = null;
         try {
-            final File file = getFile(resourceName);
+            final File file = getFile(pResourceName);
             final File parent = file.getParentFile();
             if (!parent.exists()) {
                 if (!parent.mkdirs()) {
@@ -68,7 +67,7 @@
                 }
             }
             os = new FileOutputStream(file);
-            os.write(clazzData);
+            os.write(pData);
         } catch (FileNotFoundException e) {
         } catch (IOException e) {
         } finally {
@@ -86,7 +85,7 @@
     }
 
     private File getFile(final String pResourceName) {
-        final String fileName = pResourceName.replace('.', File.separatorChar) + ".class";
+        final String fileName = pResourceName.replace('/', File.separatorChar);
         return new File(root, fileName);
     }
 

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/MemoryResourceStore.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/MemoryResourceStore.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/MemoryResourceStore.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/MemoryResourceStore.java Sat Apr 29 09:31:08 2006
@@ -26,7 +26,6 @@
 
 /**
  * @author tcurdt
- *
  */
 public final class MemoryResourceStore implements ResourceStore {
 
@@ -34,18 +33,18 @@
 
 	private final Map store = new HashMap();
 	
-	public byte[] read( final String resourceName ) {
-		return (byte[]) store.get(resourceName.replace('.', '/') + ".class");
+	public byte[] read( final String pResourceName ) {
+		return (byte[]) store.get(pResourceName);
 	}
 
-	public void write( final String resourceName, final byte[] clazzData ) {
-		log.debug("storing resource " + resourceName + "(" + clazzData.length + ")");
-		store.put(resourceName.replace('.', '/') + ".class", clazzData);
+	public void write( final String pResourceName, final byte[] pData ) {
+		log.debug("storing resource " + pResourceName + "(" + pData.length + ")");
+		store.put(pResourceName, pData);
 	}
 	
-    public void remove( final String resourceName ) {
-        log.debug("removing resource " + resourceName);
-        store.remove(resourceName.replace('.', '/') + ".class");
+    public void remove( final String pResourceName ) {
+        log.debug("removing resource " + pResourceName);
+        store.remove(pResourceName);
     }
 
     public String[] list() {
@@ -56,7 +55,7 @@
         
         for (final Iterator it = store.keySet().iterator(); it.hasNext();) {
             final String name = (String) it.next();
-            names.add(name.replace('/', '.').substring(0, name.length()-6));
+            names.add(name);
         }
 
         return (String[]) names.toArray(new String[store.size()]);

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStore.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStore.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStore.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStore.java Sat Apr 29 09:31:08 2006
@@ -21,9 +21,9 @@
  */
 public interface ResourceStore {
 
-    void write( final String resourceName, final byte[] resourceData );
+    void write( final String pResourceName, final byte[] pResourceData );
 	
-	byte[] read( final String resourceName );
+	byte[] read( final String pResourceName );
 	
-	void remove( final String resourceName );
+	void remove( final String pResourceName );
 }

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java Sat Apr 29 09:31:08 2006
@@ -28,11 +28,11 @@
     private final static Log log = LogFactory.getLog(ResourceStoreClassLoader.class);
 
     private final ResourceStore[] stores;
-    private final ClassLoader parent;
+    //private final ClassLoader parent;
 
     public ResourceStoreClassLoader( final ClassLoader pParent, final ResourceStore[] pStores ) {
         super(pParent);
-        parent = pParent;
+        //parent = pParent;
         stores = pStores;
     }
 

Modified: jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/TransactionalResourceStore.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/TransactionalResourceStore.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/TransactionalResourceStore.java (original)
+++ jakarta/commons/sandbox/jci/trunk/core/src/java/org/apache/commons/jci/stores/TransactionalResourceStore.java Sat Apr 29 09:31:08 2006
@@ -18,7 +18,6 @@
 
 /**
  * @author tcurdt
- *
  */
 public class TransactionalResourceStore implements ResourceStore, Transactional {
 

Modified: jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/CompilerUtils.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/CompilerUtils.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/CompilerUtils.java (original)
+++ jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/CompilerUtils.java Sat Apr 29 09:31:08 2006
@@ -18,11 +18,11 @@
         compiler.compile(
                 pClazzes,
                 new ResourceReader() {
-                    public char[] getContent( String pFileName ) {
+                    public byte[] getBytes( String pResourceName ) {
                         for (int i = 0; i < pPrograms.length; i++) {
                             final String clazzName = pClazzes[i].replace('.', '/') + ".java";
-                            if (clazzName.equals(pFileName)) {
-                                return pPrograms[i].toCharArray();
+                            if (clazzName.equals(pResourceName)) {
+                                return pPrograms[i].getBytes();
                             }
                         }
                         return null;
@@ -48,8 +48,8 @@
         compiler.compile(
                 new String[] { pClazz },
                 new ResourceReader() {
-                    public char[] getContent( String pFileName ) {
-                        return pProgramm.toCharArray();
+                    public byte[] getBytes( String pFileName ) {
+                        return pProgramm.getBytes();
                     }
                     public boolean isAvailable( String pFilename ) {
                         return false;

Modified: jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/MyBar.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/MyBar.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/MyBar.java (original)
+++ jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/MyBar.java Sat Apr 29 09:31:08 2006
@@ -8,4 +8,8 @@
     public void setFoo( MyFoo foo) {
         this.foo = foo;
     }
+
+    public MyFoo getFoo() {
+        return foo;
+    }
 }

Modified: jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/readers/FileResourceReaderTestCase.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/readers/FileResourceReaderTestCase.java?rev=398200&r1=398199&r2=398200&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/readers/FileResourceReaderTestCase.java (original)
+++ jakarta/commons/sandbox/jci/trunk/tests/src/test/org/apache/commons/jci/readers/FileResourceReaderTestCase.java Sat Apr 29 09:31:08 2006
@@ -9,11 +9,11 @@
         writeFile("test", "test");
 
         assertTrue(reader.isAvailable("test"));
-        final char[] content = reader.getContent("test");
+        final byte[] content = reader.getBytes("test");
         assertTrue(content != null);
         assertTrue("test".equals(new String(content)));        
 
         assertTrue(!reader.isAvailable("bla"));
-        assertTrue(reader.getContent("bla") == null);
+        assertTrue(reader.getBytes("bla") == null);
     }
 }



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