Author: cziegeler
Date: Fri Jul 7 14:35:54 2017
New Revision: 1801170
URL: http://svn.apache.org/viewvc?rev=1801170&view=rev
Log:
Add application support
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/LauncherConfig.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=1801170&r1=1801169&r2=1801170&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
Fri Jul 7 14:35:54 2017
@@ -17,6 +17,7 @@
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;
@@ -27,6 +28,7 @@ import org.apache.sling.feature.Artifact
import org.apache.sling.feature.Configuration;
import org.apache.sling.feature.Extension;
import org.apache.sling.feature.ExtensionType;
+import org.apache.sling.feature.json.ApplicationJSONReader;
import org.apache.sling.feature.json.ApplicationJSONWriter;
import org.apache.sling.feature.launcher.impl.LauncherConfig.StartupMode;
import org.apache.sling.feature.support.ArtifactHandler;
@@ -42,9 +44,24 @@ public class FeatureProcessor {
* @param artifactManager The artifact manager
*/
public static Application createApplication(final LauncherConfig config,
- final ArtifactManager artifactManager) throws IOException {
- final Application app = FeatureUtil.assembleApplication(null,
FeatureUtil.getFeatureFiles(config.getHomeDirectory(),
config.getFeatureFiles()),
+ final ArtifactManager artifactManager)
+ throws IOException {
+ final Application app;
+ if ( config.getApplicationFile() != null ) {
+ String absoluteArg = config.getApplicationFile();
+ if ( absoluteArg.indexOf(":") < 2 ) {
+ absoluteArg = new File(absoluteArg).getAbsolutePath();
+ }
+ final ArtifactHandler appArtifact =
artifactManager.getArtifactHandler(absoluteArg);
+
+ try (final FileReader r = new FileReader(appArtifact.getFile())) {
+ app = ApplicationJSONReader.read(r);
+ }
+
+ } else {
+ app = FeatureUtil.assembleApplication(null,
FeatureUtil.getFeatureFiles(config.getHomeDirectory(),
config.getFeatureFiles()),
artifactManager);
+ }
// write application back
final File file = new File(config.getHomeDirectory(), "resources" +
File.separatorChar + "provisioning" + File.separatorChar + "application.json");
Modified:
sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java
URL:
http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java?rev=1801170&r1=1801169&r2=1801170&view=diff
==============================================================================
---
sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java
(original)
+++
sling/whiteboard/cziegeler/feature-launcher/src/main/java/org/apache/sling/feature/launcher/impl/LauncherConfig.java
Fri Jul 7 14:35:54 2017
@@ -41,6 +41,9 @@ public class LauncherConfig
/** The feature files or directories. */
private volatile String[] featureFiles;
+ /** The application file. */
+ private volatile String appFile;
+
private volatile StartupMode startupMode = StartupMode.PURE;
private final Installation installation = new Installation();
@@ -53,6 +56,14 @@ public class LauncherConfig
this.setCacheDirectory(new File(getHomeDirectory(), CACHE_DIR));
}
+ public void setApplicationFile(final String value) {
+ appFile = value;
+ }
+
+ public String getApplicationFile() {
+ return this.appFile;
+ }
+
/**
* Set the list of feature files or directories.
* @param value The array with the feature file names.
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=1801170&r1=1801169&r2=1801170&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
Fri Jul 7 14:35:54 2017
@@ -76,6 +76,7 @@ public class Main {
final Option repoOption = new Option("u", true, "Set repository url");
final Option modelOption = new Option("f", true, "Set feature
files/directories");
+ final Option appOption = new Option("a", true, "Set application
file");
final Option fwkProperties = new Option("D", true, "Set framework
properties");
fwkProperties.setArgs(20);
final Option debugOption = new Option("v", true, "Verbose");
@@ -114,6 +115,9 @@ public class Main {
if ( cl.hasOption(installerOption.getOpt()) ) {
config.setUseInstaller();
}
+ if ( cl.hasOption(appOption.getOpt()) ) {
+
config.setApplicationFile(cl.getOptionValue(appOption.getOpt()));
+ }
} catch ( final ParseException pe) {
Main.LOG().error("Unable to parse command line: {}",
pe.getMessage(), pe);
System.exit(1);