This is an automated email from the ASF dual-hosted git repository. pauls pushed a commit to branch variables in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-launcher.git
commit 8789b48dcd7568d8f80db20ed21d64ce0e08a7b6 Author: Karl Pauls <[email protected]> AuthorDate: Thu Sep 6 09:59:59 2018 +0200 Change variable handling to not allow variables to be defined twice --- .gitignore | 2 ++ .../feature/launcher/impl/FeatureProcessor.java | 25 +++++++++++----------- .../apache/sling/feature/launcher/impl/Main.java | 21 ++++++++++++++++++ .../launcher/impl/launchers/AbstractRunner.java | 1 - 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 5b783ed..1f87c49 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ maven-eclipse.xml .DS_Store jcr.log atlassian-ide-plugin.xml +license.properties +/launcher diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java index 4d438f4..2e77570 100644 --- a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java +++ b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java @@ -71,7 +71,7 @@ public class FeatureProcessor { // ignore } return null; - }).add(StreamSupport.stream(Spliterators.spliteratorUnknownSize( + }, config.getVariables(), config.getInstallation().getFrameworkProperties()).add(StreamSupport.stream(Spliterators.spliteratorUnknownSize( ServiceLoader.load(FeatureExtensionHandler.class).iterator(), Spliterator.ORDERED), false).toArray(FeatureExtensionHandler[]::new)); List<Feature> features = new ArrayList<>(); @@ -126,17 +126,6 @@ public class FeatureProcessor { config.getInstallation().addBundle(entry.getKey(), artifactFile); } } - extensions: for(final Extension ext : app.getExtensions()) { - for (ExtensionHandler handler : ServiceLoader.load(ExtensionHandler.class, FeatureProcessor.class.getClassLoader())) - { - if (handler.handle(ext, ctx, config.getInstallation())) { - continue extensions; - } - } - if ( ext.isRequired() ) { - throw new Exception("Unknown required extension " + ext.getName()); - } - } for (final Configuration cfg : app.getConfigurations()) { if ( cfg.isFactoryConfiguration() ) { @@ -151,6 +140,18 @@ public class FeatureProcessor { config.getInstallation().getFrameworkProperties().put(prop.getKey(), prop.getValue()); } } + + extensions: for(final Extension ext : app.getExtensions()) { + for (ExtensionHandler handler : ServiceLoader.load(ExtensionHandler.class, FeatureProcessor.class.getClassLoader())) + { + if (handler.handle(ext, ctx, config.getInstallation())) { + continue extensions; + } + } + if ( ext.isRequired() ) { + throw new Exception("Unknown required extension " + ext.getName()); + } + } } /** diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/Main.java b/src/main/java/org/apache/sling/feature/launcher/impl/Main.java index 2d36ca4..1ab089f 100644 --- a/src/main/java/org/apache/sling/feature/launcher/impl/Main.java +++ b/src/main/java/org/apache/sling/feature/launcher/impl/Main.java @@ -180,6 +180,27 @@ public class Main { } launcherConfig.getVariables().put("sling.launchpad", launcherConfig.getHomeDirectory().getAbsolutePath() + "/launchpad"); + final Installation installation = launcherConfig.getInstallation(); + + // set sling home, and use separate locations for launchpad and properties + installation.getFrameworkProperties().put("sling.home", launcherConfig.getHomeDirectory().getAbsolutePath()); + installation.getFrameworkProperties().put("sling.launchpad", launcherConfig.getHomeDirectory().getAbsolutePath() + "/launchpad"); + if (!installation.getFrameworkProperties().containsKey("repository.home")) { + installation.getFrameworkProperties().put("repository.home", launcherConfig.getHomeDirectory().getAbsolutePath() + File.separatorChar + "repository"); + } + installation.getFrameworkProperties().put("sling.properties", "conf/sling.properties"); + + + // additional OSGi properties + // move storage inside launcher + if ( installation.getFrameworkProperties().get(STORAGE_PROPERTY) == null ) { + installation.getFrameworkProperties().put(STORAGE_PROPERTY, launcherConfig.getHomeDirectory().getAbsolutePath() + File.separatorChar + "framework"); + } + // set start level to 30 + if ( installation.getFrameworkProperties().get(START_LEVEL_PROP) == null ) { + installation.getFrameworkProperties().put(START_LEVEL_PROP, "30"); + } + Main.LOG().info(""); Main.LOG().info("Apache Sling Application Launcher"); Main.LOG().info("---------------------------------"); diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/launchers/AbstractRunner.java b/src/main/java/org/apache/sling/feature/launcher/impl/launchers/AbstractRunner.java index 064b632..f532a2c 100644 --- a/src/main/java/org/apache/sling/feature/launcher/impl/launchers/AbstractRunner.java +++ b/src/main/java/org/apache/sling/feature/launcher/impl/launchers/AbstractRunner.java @@ -322,7 +322,6 @@ public abstract class AbstractRunner implements Callable<Integer> { } } else { - framework.getBundleContext().getDataFile("INSTALLED").mkdirs(); latch.countDown(); } }
