Author: vgritsenko
Date: Thu Oct 21 19:33:27 2004
New Revision: 55298

Modified:
   
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/CompilingClassLoader.java
Log:
Remove double buffering (buffered reader of byte array).
Formatting.


Modified: 
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/CompilingClassLoader.java
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/CompilingClassLoader.java
    (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/CompilingClassLoader.java
    Thu Oct 21 19:33:27 2004
@@ -1,32 +1,19 @@
 /*
  * Copyright 1999-2004 The Apache Software Foundation.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.cocoon.components.flow.javascript.fom;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.MalformedURLException;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
 
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
@@ -40,9 +27,20 @@
 import org.tempuri.javac.JavaSourceReaderFactory;
 import org.tempuri.javacImpl.eclipse.JavaCompilerImpl;
 
-/*
- * CompilingClassLoader
- * CVS $Id: CompilingClassLoader.java,v 1.9 2004/03/23 20:03:15 stephan Exp $
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.MalformedURLException;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @version CVS $Id$
  */
 public class CompilingClassLoader extends ClassLoader {
 
@@ -59,14 +57,14 @@
 
     public interface ClassRepository {
         public byte[] getCompiledClass(String className);
-        public void addCompiledClass(String className, 
+        public void addCompiledClass(String className,
                                      Source source,
                                      byte[] contents);
     }
 
-    protected Class findClass(String className) 
-        throws ClassNotFoundException {
-        byte[] bytes = compile(className);
+    protected Class findClass(String className)
+    throws ClassNotFoundException {
+        final byte[] bytes = compile(className);
         return defineClass(className, bytes, 0, bytes.length);
     }
 
@@ -81,11 +79,9 @@
     }
 
     static class ClassCompilationException extends ClassNotFoundException {
-
         public ClassCompilationException(String msg) {
             super(msg);
         }
-
     }
 
     public void addSourceListener(SourceListener listener) {
@@ -141,13 +137,14 @@
             // inner class: use the parent
             className = className.substring(0, dollar);
         }
+
         synchronized (sourcePath) {
-            Iterator iter = sourcePath.iterator();
-            while (iter.hasNext()) {
-                String prefix = (String)iter.next();
+            Iterator i = sourcePath.iterator();
+            while (i.hasNext()) {
+                String prefix = (String) i.next();
                 if (prefix.length() > 0) {
                     if (!prefix.endsWith("/")) {
-                        prefix = prefix + "/";
+                        prefix += "/";
                     }
                 }
                 String uri = prefix + className.replace('.', '/') + ".java";
@@ -159,13 +156,15 @@
                 } catch (IOException ignored) {
                     continue;
                 }
+
                 if (src.exists()) {
                     return src;
                 }
                 releaseSource(src);
             }
-            return null;
         }
+
+        return null;
     }
 
     private void releaseSource(Source src) {
@@ -173,9 +172,8 @@
     }
 
     class SourceReaderFactory implements JavaSourceReaderFactory {
-        public JavaSourceReader 
-            getSourceReader(final String className) 
-            throws IOException {
+        public JavaSourceReader getSourceReader(final String className)
+        throws IOException {
             Source src = getSource(className);
             if (src == null) return null;
             try {
@@ -183,6 +181,7 @@
                 if (is == null) {
                     return null;
                 }
+
                 byte[] buf = new byte[8192];
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 int count;
@@ -190,25 +189,23 @@
                     baos.write(buf, 0, count);
                 }
                 baos.flush();
-                final Reader reader = 
-                    new BufferedReader(new InputStreamReader(new 
ByteArrayInputStream(baos.toByteArray())));
 
+                final Reader reader = new InputStreamReader(new 
ByteArrayInputStream(baos.toByteArray()));
                 return new JavaSourceReader() {
-                        public Reader getReader() {
-                            return reader;
-                        }
-                        public String getClassName() {
-                            return className;
-                        }
-                    };
+                    public Reader getReader() {
+                        return reader;
+                    }
+                    public String getClassName() {
+                        return className;
+                    }
+                };
             } finally {
                 releaseSource(src);
             }
         }
     }
 
-    private String makeFileName(String className) 
-        throws IOException {
+    private String makeFileName(String className) {
         Source src = getSource(className);
         if (src != null) {
             String result = src.getURI();
@@ -217,62 +214,59 @@
         }
         return className;
     }
-    
-    class ClassReaderFactory 
-        implements JavaClassReaderFactory {
-        
-        public JavaClassReader getClassReader(final String className) 
-                throws IOException {
+
+    class ClassReaderFactory implements JavaClassReaderFactory {
+        public JavaClassReader getClassReader(final String className)
+        throws IOException {
             final byte[] bytes = classRepository.getCompiledClass(className);
             if (bytes != null) {
                 return new JavaClassReader() {
                     public String getClassName() {
                         return className;
                     }
-                
+
                     public InputStream getInputStream() {
                         return new ByteArrayInputStream(bytes);
                     }
                 };
             }
+
             String classFile = className.replace('.', '/') + ".class";
             final InputStream is = getResourceAsStream(classFile);
-            if (is == null) {
-                return null;
+            if (is != null) {
+                return new JavaClassReader() {
+                    public String getClassName() {
+                        return className;
+                    }
+
+                    public InputStream getInputStream() {
+                        return is;
+                    }
+                };
             }
-            return new JavaClassReader() {
-                public String getClassName() {
-                    return className;
-                }
-                        
-                public InputStream getInputStream() {
-                    return is;
-                }
-            };
+
+            return null;
         }
     }
 
-    class ClassWriterFactory 
-        implements JavaClassWriterFactory {
-
+    class ClassWriterFactory implements JavaClassWriterFactory {
         public JavaClassWriter getClassWriter(final String className) {
             return new JavaClassWriter() {
                 public String getClassName() {
                     return className;
                 }
 
-                public void writeClass(InputStream contents) 
-                        throws IOException {
+                public void writeClass(InputStream contents)
+                throws IOException {
                     byte[] buf = new byte[2048];
-                    ByteArrayOutputStream s =
-                        new ByteArrayOutputStream();
+                    ByteArrayOutputStream s = new ByteArrayOutputStream();
+
                     int count;
-                    while ((count = 
-                        contents.read(buf, 0, 
-                              buf.length)) > 0) {
+                    while ((count = contents.read(buf, 0, buf.length)) > 0) {
                         s.write(buf, 0, count);
                     }
                     s.flush();
+
                     System.out.println("Compiled: " + className);
                     Source src = getSource(className);
                     classRepository.addCompiledClass(className,
@@ -284,11 +278,10 @@
             };
         }
     }
-    
-    class ErrorHandler implements JavaCompilerErrorHandler {
 
+    class ErrorHandler implements JavaCompilerErrorHandler {
         List errList = new LinkedList();
-            
+
         public void handleError(String className,
                                 int line,
                                 int column,
@@ -300,6 +293,7 @@
             } catch (Exception ignored) {
                 // oh well, I tried
             }
+
             if (line > 0) {
                 msg += ": Line " + line;
             }
@@ -316,9 +310,8 @@
         }
     }
 
-
-    private byte[] compile(String className) 
-            throws ClassNotFoundException {
+    private byte[] compile(String className)
+    throws ClassNotFoundException {
         byte[] result = classRepository.getCompiledClass(className);
         if (result != null) {
             return result;
@@ -328,6 +321,7 @@
         if (src == null) {
             throw new ClassNotFoundException(className);
         }
+
         try {
             // try to compile it
             ErrorHandler errorHandler = new ErrorHandler();
@@ -346,13 +340,11 @@
                 }
                 notifyListeners(src, msg);
                 throw new ClassCompilationException(msg);
-                    
             }
+
             return classRepository.getCompiledClass(className);
         } finally {
             releaseSource(src);
         }
     }
 }
-
-

Reply via email to