You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:15:49 UTC
[sling-maven-launchpad-plugin] 12/34: SLING-2124 : Improve support
for OSGi installer by distinguishing between bootstrap and app bundles
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag maven-launchpad-plugin-2.1.0
in repository https://gitbox.apache.org/repos/asf/sling-maven-launchpad-plugin.git
commit cb3b66f1f953e2c75f408ff01beb7af020249dc6
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Jul 7 16:09:27 2011 +0000
SLING-2124 : Improve support for OSGi installer by distinguishing between bootstrap and app bundles
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/maven/maven-launchpad-plugin@1143901 13f79535-47bb-0310-9956-ffa450edef68
---
.../AbstractLaunchpadStartingMojo.java | 33 +++++++++++++---------
.../maven/projectsupport/PreparePackageMojo.java | 2 +-
.../projectsupport/bundlelist/BaseBundle.java | 6 ++++
.../projectsupport/bundlelist/BaseBundleList.java | 2 +-
.../projectsupport/PreparePackageMojoTest.java | 4 ++-
5 files changed, 31 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java
index bc5cf72..3904aed 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java
@@ -27,10 +27,12 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import org.apache.felix.framework.Logger;
import org.apache.maven.artifact.Artifact;
@@ -119,9 +121,14 @@ public abstract class AbstractLaunchpadStartingMojo extends AbstractUsingBundleL
public Iterator<String> getChildren(String path) {
if (path.equals(BUNDLE_PATH_PREFIX)) {
- List<String> levels = new ArrayList<String>();
- for (StartLevel level : getBundleList().getStartLevels()) {
- levels.add(String.valueOf(BUNDLE_PATH_PREFIX + "/" + level.getLevel()) + "/");
+ final Set<String> levels = new HashSet<String>();
+ for (final StartLevel level : getBundleList().getStartLevels()) {
+ // we treat the boot level as level 1
+ if ( level.getStartLevel() == -1 ) {
+ levels.add(BUNDLE_PATH_PREFIX + "/1/");
+ } else {
+ levels.add(BUNDLE_PATH_PREFIX + "/" + level.getLevel() + "/");
+ }
}
return levels.iterator();
} else if (path.equals("resources/corebundles")) {
@@ -150,28 +157,28 @@ public abstract class AbstractLaunchpadStartingMojo extends AbstractUsingBundleL
return empty.iterator();
}
} else if (path.startsWith(BUNDLE_PATH_PREFIX)) {
- String startLevel = path.substring(BUNDLE_PATH_PREFIX.length() + 1);
+ final String startLevelInfo = path.substring(BUNDLE_PATH_PREFIX.length() + 1);
try {
- int i = Integer.parseInt(startLevel);
- List<String> bundles = new ArrayList<String>();
- for (StartLevel level : getBundleList().getStartLevels()) {
- if (level.getStartLevel() == i) {
- for (Bundle bundle : level.getBundles()) {
- ArtifactDefinition d = new ArtifactDefinition(bundle, i);
+ final int startLevel = Integer.parseInt(startLevelInfo);
+
+ final List<String> bundles = new ArrayList<String>();
+ for (final StartLevel level : getBundleList().getStartLevels()) {
+ if (level.getStartLevel() == startLevel || (startLevel == 1 && level.getStartLevel() == -1)) {
+ for (final Bundle bundle : level.getBundles()) {
+ final ArtifactDefinition d = new ArtifactDefinition(bundle, startLevel);
try {
- Artifact artifact = getArtifact(d);
+ final Artifact artifact = getArtifact(d);
bundles.add(artifact.getFile().toURI().toURL().toExternalForm());
} catch (Exception e) {
getLog().error("Unable to resolve artifact ", e);
}
}
-
- break;
}
}
return bundles.iterator();
} catch (NumberFormatException e) {
+ // we ignore this
}
}
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java
index 1fdc8c0..bc8a9e3 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java
@@ -193,7 +193,7 @@ public class PreparePackageMojo extends AbstractLaunchpadFrameworkMojo {
} catch (IOException e) {
throw new MojoExecutionException("Unable to copy configuration files", e);
}
-
+
}
private void unpack(File source, File destination, String includes, String excludes)
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundle.java b/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundle.java
index 5c9b683..9ae1f8d 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundle.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundle.java
@@ -30,4 +30,10 @@ public abstract class BaseBundle {
public abstract String getVersion();
+ @Override
+ public String toString() {
+ return "Bundle [artifactId=" + getArtifactId() + ", classifier="
+ + getClassifier() + ", groupId=" + getGroupId() + ", startLevel="
+ + getStartLevel() + ", type=" + getType() + ", version=" + getVersion() + "]";
+ }
}
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundleList.java b/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundleList.java
index 70050e3..85cc7a8 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundleList.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundleList.java
@@ -81,7 +81,7 @@ public abstract class BaseBundleList {
current.setVersion(newBnd.getVersion());
} else {
StartLevel startLevel = null;
- if ( mergeStartLevel == null || newBnd.getStartLevel() > 0) {
+ if ( mergeStartLevel == null || newBnd.getStartLevel() != 0) {
startLevel = getOrCreateStartLevel(newBnd.getStartLevel());
} else {
startLevel = getOrCreateStartLevel(mergeStartLevel.getStartLevel());
diff --git a/src/test/java/org/apache/sling/maven/projectsupport/PreparePackageMojoTest.java b/src/test/java/org/apache/sling/maven/projectsupport/PreparePackageMojoTest.java
index 7d94f09..2a2fff3 100644
--- a/src/test/java/org/apache/sling/maven/projectsupport/PreparePackageMojoTest.java
+++ b/src/test/java/org/apache/sling/maven/projectsupport/PreparePackageMojoTest.java
@@ -16,11 +16,13 @@
*/
package org.apache.sling.maven.projectsupport;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.junit.Test;
-import static org.junit.Assert.*;
/**
* Tests of PreparePageMojo
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.