Author: cziegeler
Date: Wed Mar 24 08:09:56 2010
New Revision: 926969

URL: http://svn.apache.org/viewvc?rev=926969&view=rev
Log:
SLING-1452 : Use new commons compiler

Modified:
    
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/JcrJavaCompiler.java
    
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/impl/JcrJavaCompilerImpl.java

Modified: 
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/JcrJavaCompiler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/JcrJavaCompiler.java?rev=926969&r1=926968&r2=926969&view=diff
==============================================================================
--- 
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/JcrJavaCompiler.java
 (original)
+++ 
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/JcrJavaCompiler.java
 Wed Mar 24 08:09:56 2010
@@ -16,7 +16,7 @@
  */
 package org.apache.sling.jcr.compiler;
 
-import org.apache.sling.commons.compiler.ErrorHandler;
+import org.apache.sling.commons.compiler.CompilationResult;
 import org.apache.sling.commons.compiler.Options;
 
 /**
@@ -32,8 +32,8 @@ public interface JcrJavaCompiler {
      * @param options - optional
      * @since 2.0
      */
-    boolean compile(String[] srcFiles,
-                    String   outputDir,
-                    ErrorHandler errorHandler,
-                    Options options);
+    CompilationResult compile(String[] srcFiles,
+                              String   outputDir,
+                              Options options)
+    throws Exception;
 }

Modified: 
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/impl/JcrJavaCompilerImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/impl/JcrJavaCompilerImpl.java?rev=926969&r1=926968&r2=926969&view=diff
==============================================================================
--- 
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/impl/JcrJavaCompilerImpl.java
 (original)
+++ 
sling/trunk/contrib/jcr/compiler/src/main/java/org/apache/sling/jcr/compiler/impl/JcrJavaCompilerImpl.java
 Wed Mar 24 08:09:56 2010
@@ -27,6 +27,7 @@ import java.io.StringWriter;
 
 import javax.jcr.Item;
 import javax.jcr.Node;
+import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
@@ -34,8 +35,8 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.classloader.ClassLoaderWriter;
+import org.apache.sling.commons.compiler.CompilationResult;
 import org.apache.sling.commons.compiler.CompilationUnit;
-import org.apache.sling.commons.compiler.ErrorHandler;
 import org.apache.sling.commons.compiler.JavaCompiler;
 import org.apache.sling.commons.compiler.Options;
 import org.apache.sling.jcr.api.SlingRepository;
@@ -56,12 +57,12 @@ public class JcrJavaCompilerImpl impleme
     protected SlingRepository repository;
 
     /**
-     * @see 
org.apache.sling.jcr.compiler.JcrJavaCompiler#compile(java.lang.String[], 
java.lang.String, org.apache.sling.commons.compiler.ErrorHandler, 
org.apache.sling.commons.compiler.Options)
+     * @see 
org.apache.sling.jcr.compiler.JcrJavaCompiler#compile(java.lang.String[], 
java.lang.String, org.apache.sling.commons.compiler.Options)
      */
-    public boolean compile(final String[] srcFiles,
-                           final String outputDir,
-                           final ErrorHandler errorHandler,
-                           final Options compilerOptions) {
+    public CompilationResult compile(final String[] srcFiles,
+                                     final String outputDir,
+                                     final Options compilerOptions)
+    throws Exception {
         // make sure we have options
         final Options options = (compilerOptions == null ? new Options() : new 
Options(compilerOptions));
         // open session
@@ -116,15 +117,7 @@ public class JcrJavaCompilerImpl impleme
             }
 
             // and compile
-            return compiler.compile(units, errorHandler, options);
-        } catch (final IOException ioe) {
-            errorHandler.onError("Error while accessing repository: " + 
ioe.getMessage(),
-                    srcFiles[0], 0, 0);
-            return false;
-        } catch (final RepositoryException re) {
-            errorHandler.onError("Error while accessing repository: " + 
re.getMessage(),
-                    srcFiles[0], 0, 0);
-            return false;
+            return compiler.compile(units, options);
         } finally {
             if ( session != null ) {
                 session.logout();
@@ -136,8 +129,8 @@ public class JcrJavaCompilerImpl impleme
 
     private CompilationUnit createCompileUnit(final String sourceFile, final 
Session session)
     throws RepositoryException, IOException {
-        final String source = readTextResource(sourceFile, session);
-        final String packageName = extractPackageName(source);
+        final Source source = readTextResource(sourceFile, session);
+        final String packageName = extractPackageName(source.contents);
 
         return new CompilationUnit() {
 
@@ -152,7 +145,14 @@ public class JcrJavaCompilerImpl impleme
              * @see 
org.apache.sling.commons.compiler.CompilationUnit#getSource()
              */
             public Reader getSource() throws IOException {
-                return new StringReader(source);
+                return new StringReader(source.contents);
+            }
+
+            /**
+             * @see 
org.apache.sling.commons.compiler.CompilationUnit#getLastModified()
+             */
+            public long getLastModified() {
+                return source.lastModified;
             }
 
             private String getMainTypeName() {
@@ -189,8 +189,9 @@ public class JcrJavaCompilerImpl impleme
         return "";
     }
 
-    private String readTextResource(final String resourcePath, final Session 
session)
+    private Source readTextResource(final String resourcePath, final Session 
session)
     throws RepositoryException, IOException {
+        final Source source = new Source();
         final String relPropPath = resourcePath.substring(1) + 
"/jcr:content/jcr:data";
         final InputStream in = 
session.getRootNode().getProperty(relPropPath).getStream();
         final Reader reader = new InputStreamReader(in, "UTF-8");
@@ -202,9 +203,17 @@ public class JcrJavaCompilerImpl impleme
                 writer.write(buffer, 0, read);
             }
             writer.close();
-            return writer.toString();
+            source.contents = writer.toString();
+            final String lastModPath = resourcePath + 
"/jcr:content/jcr:lastModified";
+            source.lastModified = session.itemExists(lastModPath) ? 
((Property)session.getItem(lastModPath)).getLong() : -1;
+            return source;
         } finally {
             try { reader.close(); } catch (IOException ignore) {}
         }
     }
+
+    private static final class Source {
+        public String contents;
+        public long lastModified;
+    }
 }


Reply via email to