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>.