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);