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/06/07 09:44:32 UTC
svn commit: r1797903 - in /sling/whiteboard/cziegeler:
feature-karaf/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java
feature/src/main/java/org/apache/sling/feature/Extension.java
Author: cziegeler
Date: Wed Jun 7 09:44:32 2017
New Revision: 1797903
URL: http://svn.apache.org/viewvc?rev=1797903&view=rev
Log:
Support repoinit in karaf features
Modified:
sling/whiteboard/cziegeler/feature-karaf/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java
sling/whiteboard/cziegeler/feature/src/main/java/org/apache/sling/feature/Extension.java
Modified: sling/whiteboard/cziegeler/feature-karaf/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature-karaf/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java?rev=1797903&r1=1797902&r2=1797903&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/feature-karaf/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java (original)
+++ sling/whiteboard/cziegeler/feature-karaf/src/main/java/org/apache/sling/feature/karaf/KarafFeatureWriter.java Wed Jun 7 09:44:32 2017
@@ -25,6 +25,8 @@ import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
@@ -32,6 +34,8 @@ import java.util.zip.ZipOutputStream;
import org.apache.sling.feature.Artifact;
import org.apache.sling.feature.ArtifactId;
+import org.apache.sling.feature.Configuration;
+import org.apache.sling.feature.Extension;
import org.apache.sling.feature.Feature;
import org.apache.sling.feature.support.ArtifactHandler;
import org.apache.sling.feature.support.ArtifactManager;
@@ -48,16 +52,40 @@ public class KarafFeatureWriter {
final Feature feature,
final ArtifactManager artifactManager)
throws IOException {
+ // check for repoinit extension
+ Extension repoinitExt = null;
+ for(final Extension e : feature.getExtensions()) {
+ if ( Extension.NAME_REPOINIT.equals(e.getName())) {
+ repoinitExt = e;
+ break;
+ }
+ }
File configurationBundleFile = null;
Artifact configuratorBundle = null;
try {
- if ( !feature.getConfigurations().isEmpty() ) {
+ final List<Configuration> configs = new ArrayList<>(feature.getConfigurations());
+ if ( repoinitExt != null ) {
+ final Configuration cfg = new Configuration("org.apache.sling.jcr.repoinit.RepositoryInitializer",
+ "feature-" + feature.getId().getArtifactId());
+ cfg.getProperties().put("scripts", repoinitExt.getText());
+ configs.add(cfg);
+ }
+ if ( !configs.isEmpty() ) {
configurationBundleFile = Files.createTempFile(null, null).toFile();
try ( final FileOutputStream fos = new FileOutputStream(configurationBundleFile)) {
- ConfigurationUtil.createConfiguratorBundle(os, feature.getConfigurations(),
+ final Map<String, String> map;
+ if ( repoinitExt == null ) {
+ map = null;
+ } else {
+ map = Collections.singletonMap("Require-Capability",
+ ConfigurationUtil.REQUIRE_REPOINIT_CAPABILITY);
+ }
+ ConfigurationUtil.createConfiguratorBundle(os,
+ configs,
feature.getId().getGroupId() + "." + feature.getId().getArtifactId(),
- feature.getId().getOSGiVersion().toString());
+ feature.getId().getOSGiVersion().toString(),
+ map);
configuratorBundle = new Artifact(new ArtifactId(feature.getId().getGroupId(),
feature.getId().getArtifactId(),
feature.getId().getVersion(), "configurator", null));
Modified: sling/whiteboard/cziegeler/feature/src/main/java/org/apache/sling/feature/Extension.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature/src/main/java/org/apache/sling/feature/Extension.java?rev=1797903&r1=1797902&r2=1797903&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/feature/src/main/java/org/apache/sling/feature/Extension.java (original)
+++ sling/whiteboard/cziegeler/feature/src/main/java/org/apache/sling/feature/Extension.java Wed Jun 7 09:44:32 2017
@@ -31,6 +31,15 @@ import java.util.List;
*/
public class Extension {
+ /** Common extension name to specify the framework. */
+ public static final String NAME_FRAMEWORK = "framework";
+
+ /** Common extension name to specify the repoinit part for Apache Sling. */
+ public static final String NAME_REPOINIT = "repoinit";
+
+ /** Common extension name to specify the content packages for Apache Sling. */
+ public static final String NAME_CONTENT_PACKAGES = "content-packages";
+
private final ExtensionType type;
private final String name;