You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/08/15 13:32:51 UTC

svn commit: r1805079 - in /sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl: FeatureProcessor.java Main.java

Author: cziegeler
Date: Tue Aug 15 13:32:51 2017
New Revision: 1805079

URL: http://svn.apache.org/viewvc?rev=1805079&view=rev
Log:
Fix application launching and add missing support for framework properties

Modified:
    sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
    sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/Main.java

Modified: sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java?rev=1805079&r1=1805078&r2=1805079&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java (original)
+++ sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java Tue Aug 15 13:32:51 2017
@@ -16,6 +16,13 @@
  */
 package org.apache.sling.feature.launcher.impl;
 
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.sling.feature.Application;
 import org.apache.sling.feature.Artifact;
 import org.apache.sling.feature.Configuration;
@@ -28,13 +35,6 @@ import org.apache.sling.feature.support.
 import org.apache.sling.feature.support.json.ApplicationJSONReader;
 import org.apache.sling.feature.support.json.ApplicationJSONWriter;
 
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
 public class FeatureProcessor {
 
     /**
@@ -94,6 +94,7 @@ public class FeatureProcessor {
                 config.getInstallation().addBundle(entry.getKey(), artifactFile);
             }
         }
+        int index = 1;
         for(final Extension ext : app.getExtensions()) {
             if ( ext.getType() == ExtensionType.ARTIFACTS ) {
                 for(final Artifact a : ext.getArtifacts() ) {
@@ -103,6 +104,20 @@ public class FeatureProcessor {
                     final ArtifactHandler handler = artifactManager.getArtifactHandler(":" + a.getId().toMvnPath());
                     config.getInstallation().addInstallableArtifact(handler.getFile());
                 }
+            } else {
+                if ( ext.getName().equals(Extension.NAME_REPOINIT) ) {
+                    if ( ext.getType() != ExtensionType.TEXT ) {
+                        throw new Exception(Extension.NAME_REPOINIT + " extension must be of type text and not json");
+                    }
+                    final Configuration cfg = new Configuration("org.apache.sling.jcr.repoinit.RepositoryInitializer", "repoinit" + String.valueOf(index));
+                    index++;
+                    cfg.getProperties().put("scripts", ext.getText());
+                    config.getInstallation().addConfiguration(cfg.getName(), cfg.getFactoryPid(), cfg.getProperties());
+                } else {
+                    if ( ext.isRequired() ) {
+                        throw new Exception("Unknown required extension " + ext.getName());
+                    }
+                }
             }
         }
 
@@ -113,5 +128,11 @@ public class FeatureProcessor {
                 config.getInstallation().addConfiguration(cfg.getPid(), null, cfg.getProperties());
             }
         }
+
+        for(final Map.Entry<String, String> prop : app.getFrameworkProperties()) {
+            if ( !config.getInstallation().getFrameworkProperties().containsKey(prop.getKey()) ) {
+                config.getInstallation().getFrameworkProperties().put(prop.getKey(), prop.getValue());
+            }
+        }
     }
 }

Modified: sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/Main.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/Main.java?rev=1805079&r1=1805078&r2=1805079&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/Main.java (original)
+++ sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/Main.java Tue Aug 15 13:32:51 2017
@@ -16,6 +16,15 @@
  */
 package org.apache.sling.feature.launcher.impl;
 
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.commons.cli.BasicParser;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
@@ -32,15 +41,6 @@ import org.apache.sling.feature.support.
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
 /**
  * This is the launcher main class.
  * It parses command line parameters and prepares the launcher.
@@ -84,6 +84,7 @@ public class Main {
         final Option installerOption = new Option("I", true, "Use OSGi installer for additional artifacts.");
         installerOption.setArgs(0);
         options.addOption(repoOption);
+        options.addOption(appOption);
         options.addOption(modelOption);
         options.addOption(fwkProperties);
         options.addOption(debugOption);