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 <[email protected]> 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 "[email protected]" <[email protected]>.
