You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2014/05/14 17:25:40 UTC

svn commit: r1594599 - /sling/trunk/contrib/crankstart/core/src/main/java/org/apache/sling/crankstart/core/CrankstartFileProcessor.java

Author: bdelacretaz
Date: Wed May 14 15:25:39 2014
New Revision: 1594599

URL: http://svn.apache.org/r1594599
Log:
SLING-3528 - use CrankstartParserImpl in CrankstartFileProcessor

Modified:
    sling/trunk/contrib/crankstart/core/src/main/java/org/apache/sling/crankstart/core/CrankstartFileProcessor.java

Modified: sling/trunk/contrib/crankstart/core/src/main/java/org/apache/sling/crankstart/core/CrankstartFileProcessor.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/core/src/main/java/org/apache/sling/crankstart/core/CrankstartFileProcessor.java?rev=1594599&r1=1594598&r2=1594599&view=diff
==============================================================================
--- sling/trunk/contrib/crankstart/core/src/main/java/org/apache/sling/crankstart/core/CrankstartFileProcessor.java (original)
+++ sling/trunk/contrib/crankstart/core/src/main/java/org/apache/sling/crankstart/core/CrankstartFileProcessor.java Wed May 14 15:25:39 2014
@@ -16,13 +16,11 @@
  */
 package org.apache.sling.crankstart.core;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileReader;
-import java.io.IOException;
 import java.io.Reader;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.Callable;
 
@@ -35,7 +33,6 @@ import org.apache.sling.crankstart.core.
 import org.apache.sling.crankstart.core.commands.SetOsgiFrameworkProperty;
 import org.apache.sling.crankstart.core.commands.StartBundles;
 import org.apache.sling.crankstart.core.commands.StartFramework;
-import org.osgi.framework.BundleException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,7 +50,7 @@ public class CrankstartFileProcessor imp
         commands.add(new StartFramework());
     }
     
-    public Object call() throws FileNotFoundException, IOException, BundleException,InterruptedException {
+    public Object call() throws Exception {
         final String inputFilename = System.getProperty(CrankstartConstants.CRANKSTART_INPUT_FILENAME);
         if(inputFilename == null) {
             throw new IllegalStateException("Missing system property " + CrankstartConstants.CRANKSTART_INPUT_FILENAME);
@@ -63,34 +60,14 @@ public class CrankstartFileProcessor imp
         return null;
     }
     
-    public void process(Reader input) throws IOException, BundleException {
-        final BufferedReader r = new BufferedReader(input);
-        String line = null;
-        while((line = r.readLine()) != null) {
-            if(line.length() == 0 || line.startsWith("#")) {
-                // ignore comments and blank lines
-            } else {
-                for(CrankstartCommand c : commands) {
-                    final String [] parts = line.split(" ");
-                    final String verb = parts[0];
-                    final StringBuilder qualifier = new StringBuilder();
-                    for(int i=1; i < parts.length; i++) {
-                        if(qualifier.length() > 0) {
-                            qualifier.append(' ');
-                        }
-                        qualifier.append(parts[i]);
-                    }
-                            
-                    // TODO use CrankstartParserImpl
-                    final CrankstartCommandLine cc = new CrankstartCommandLine(verb, qualifier.toString(), null);
-                    if(c.appliesTo(cc)) {
-                        try {
-                            c.execute(crankstartContext, cc);
-                        } catch(Exception e) {
-                            log.warn("Command execution failed", e);
-                        }
-                        break;
-                    }
+    public void process(Reader input) throws Exception {
+        final CrankstartParserImpl parser = new CrankstartParserImpl();
+        final Iterator<CrankstartCommandLine> it = parser.parse(input);
+        while(it.hasNext()) {
+            final CrankstartCommandLine cmdLine = it.next();
+            for(CrankstartCommand c : commands) {
+                if(c.appliesTo(cmdLine)) {
+                    c.execute(crankstartContext, cmdLine);
                 }
             }
         }