You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2014/04/29 09:50:36 UTC

git commit: KARAF-2946 Removing duplicate packages and adding an itest for duplicates

Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x 8c0b6c7da -> 97af4bdb2


KARAF-2946 Removing duplicate packages and adding an itest for duplicates


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/97af4bdb
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/97af4bdb
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/97af4bdb

Branch: refs/heads/karaf-3.0.x
Commit: 97af4bdb2d8841281b1171e3413cd60632394961
Parents: 8c0b6c7
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Tue Apr 29 09:50:21 2014 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Tue Apr 29 09:50:21 2014 +0200

----------------------------------------------------------------------
 assemblies/features/framework/pom.xml           |  7 ++++
 features/command/pom.xml                        |  2 +-
 itests/pom.xml                                  |  5 ++-
 .../org/apache/karaf/itests/PackageTest.java    | 34 ++++++++++++++++++--
 package/core/pom.xml                            |  1 +
 .../karaf/packages/core/PackageService.java     |  2 +-
 shell/console/pom.xml                           |  9 ++++--
 shell/ssh/pom.xml                               |  6 ++++
 8 files changed, 57 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/assemblies/features/framework/pom.xml
----------------------------------------------------------------------
diff --git a/assemblies/features/framework/pom.xml b/assemblies/features/framework/pom.xml
index cf9cbf8..1622ac7 100644
--- a/assemblies/features/framework/pom.xml
+++ b/assemblies/features/framework/pom.xml
@@ -78,6 +78,13 @@
         <dependency>
             <groupId>org.jledit</groupId>
             <artifactId>core</artifactId>
+            <exclusions>
+                <exclusion>
+                    <!-- Excluding jansi as it is included in jline -->
+                    <groupId>org.fusesource.jansi</groupId>
+                    <artifactId>jansi</artifactId>
+                </exclusion>
+            </exclusions> 
         </dependency>
 
         <!-- listed in source feature.xml with explicit startlevel -->

http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/features/command/pom.xml
----------------------------------------------------------------------
diff --git a/features/command/pom.xml b/features/command/pom.xml
index 54b87ca..1936d8e 100644
--- a/features/command/pom.xml
+++ b/features/command/pom.xml
@@ -91,7 +91,7 @@
                             org.apache.aries.blueprint,
                             org.osgi.service.blueprint.container,
                             org.osgi.service.blueprint.reflect,
-                            org.apache.felix.service.command,
+                            org.apache.felix.service.command;status=provisional,
                             org.apache.karaf.shell.commands,
                             org.apache.karaf.shell.console,
                             *

http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/itests/pom.xml
----------------------------------------------------------------------
diff --git a/itests/pom.xml b/itests/pom.xml
index 94daa29..f0ff7e7 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -67,7 +67,10 @@
             <artifactId>pax-exam-junit4</artifactId>
             <scope>test</scope>
         </dependency>
-
+        <dependency>
+            <groupId>org.apache.karaf.package</groupId>
+            <artifactId>org.apache.karaf.package.core</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/itests/src/test/java/org/apache/karaf/itests/PackageTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/PackageTest.java b/itests/src/test/java/org/apache/karaf/itests/PackageTest.java
index 198e863..f7a0577 100644
--- a/itests/src/test/java/org/apache/karaf/itests/PackageTest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/PackageTest.java
@@ -16,11 +16,19 @@ package org.apache.karaf.itests;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.SortedMap;
+
+import javax.inject.Inject;
 import javax.management.MBeanServerConnection;
 import javax.management.ObjectName;
 import javax.management.openmbean.TabularData;
 import javax.management.remote.JMXConnector;
 
+import org.apache.karaf.packages.core.PackageService;
+import org.apache.karaf.packages.core.PackageVersion;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -30,6 +38,8 @@ import org.ops4j.pax.exam.spi.reactors.PerClass;
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
 public class PackageTest extends KarafTestSupport {
+    @Inject
+    PackageService packageService;
 
     @Test
     public void exportsCommand() throws Exception {
@@ -45,7 +55,7 @@ public class PackageTest extends KarafTestSupport {
             connector = this.getJMXConnector();
             MBeanServerConnection connection = connector.getMBeanServerConnection();
             ObjectName name = new ObjectName("org.apache.karaf:type=package,name=root");
-            TabularData exports = (TabularData) connection.getAttribute(name, "Exports");
+            TabularData exports = (TabularData)connection.getAttribute(name, "Exports");
             assertTrue(exports.size() > 0);
         } finally {
             close(connector);
@@ -66,10 +76,28 @@ public class PackageTest extends KarafTestSupport {
             connector = this.getJMXConnector();
             MBeanServerConnection connection = connector.getMBeanServerConnection();
             ObjectName name = new ObjectName("org.apache.karaf:type=package,name=root");
-            TabularData imports = (TabularData) connection.getAttribute(name, "Imports");
+            TabularData imports = (TabularData)connection.getAttribute(name, "Imports");
             assertTrue(imports.size() > 0);
         } finally {
-        	close(connector);
+            close(connector);
+        }
+    }
+
+    @Test
+    public void duplicatePackageTest() throws Exception {
+        // Leaving out version to make test easier to manage
+        Map<String, Integer> expectedDups = new HashMap<String, Integer>();
+        expectedDups.put("org.apache.karaf.region.persist", 2);
+        expectedDups.put("org.osgi.resource", 2);
+        SortedMap<String, PackageVersion> packageVersionMap = packageService.getExports();
+       
+        for (String packageNameVersion : packageVersionMap.keySet()) {
+            PackageVersion pVer = packageVersionMap.get(packageNameVersion);
+            if (pVer.getBundles().size() > 1) {
+                String packageName = packageNameVersion.split(":")[0];
+                int expectedNum = expectedDups.containsKey(packageName) ? expectedDups.get(packageName) : 0;
+                Assert.assertEquals("Expecting number of duplicates for package " + packageNameVersion, expectedNum, pVer.getBundles().size());
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/package/core/pom.xml
----------------------------------------------------------------------
diff --git a/package/core/pom.xml b/package/core/pom.xml
index df49402..799b2f3 100644
--- a/package/core/pom.xml
+++ b/package/core/pom.xml
@@ -67,6 +67,7 @@
             <artifactId>slf4j-jdk14</artifactId>
             <scope>test</scope>
         </dependency>
+        
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/package/core/src/main/java/org/apache/karaf/packages/core/PackageService.java
----------------------------------------------------------------------
diff --git a/package/core/src/main/java/org/apache/karaf/packages/core/PackageService.java b/package/core/src/main/java/org/apache/karaf/packages/core/PackageService.java
index d6ccc65..28a065d 100644
--- a/package/core/src/main/java/org/apache/karaf/packages/core/PackageService.java
+++ b/package/core/src/main/java/org/apache/karaf/packages/core/PackageService.java
@@ -33,7 +33,7 @@ public interface PackageService {
     List<String> getImports(long bundleId);
 
 	/**
-	 * Gets a map of all exported packages with their version and the bundles that exprot them
+	 * Gets a map of all exported packages with their version and the bundles that export them
 	 * The key is in the form packagename:version.
 	 * 
 	 * @return 

http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/shell/console/pom.xml
----------------------------------------------------------------------
diff --git a/shell/console/pom.xml b/shell/console/pom.xml
index 11b9db0..b4f5a6a 100644
--- a/shell/console/pom.xml
+++ b/shell/console/pom.xml
@@ -64,6 +64,7 @@
         <dependency>
             <groupId>org.apache.karaf.jaas</groupId>
             <artifactId>org.apache.karaf.jaas.boot</artifactId>
+            <scope>provided</scope>
         </dependency>
 
         <dependency>
@@ -151,13 +152,15 @@
                             org.apache.karaf.shell.console.completer;version=2.3.0,
                         	org.apache.karaf.shell.util;version=${project.version},
                             org.apache.karaf.shell.util;version=2.3.0,
-                            org.apache.felix.gogo*;version=${felix.gogo.version},
-                            org.apache.felix.service.command;version=${felix.gogo.version};status=provisional;mandatory:=status,
-                            org.apache.felix.service.threadio;version=${felix.gogo.version};status=provisional;mandatory:=status,
+                            org.apache.felix.gogo.commands*;version=${felix.gogo.version}
                         </Export-Package>
                         <Private-Package>
                         	org.apache.karaf.shell.console.impl*,
                             org.apache.karaf.shell.security.impl*,
+                            
+                            <!-- We need to embed gogo runtime to be able to create 
+                                 SecuredCommandProcessorImpl which needs CommandProcessorImpl -->
+                            org.apache.felix.gogo.runtime
                         </Private-Package>
                         <Main-Class>
                             org.apache.karaf.shell.console.impl.Main

http://git-wip-us.apache.org/repos/asf/karaf/blob/97af4bdb/shell/ssh/pom.xml
----------------------------------------------------------------------
diff --git a/shell/ssh/pom.xml b/shell/ssh/pom.xml
index 1eeb31c..ace42e2 100644
--- a/shell/ssh/pom.xml
+++ b/shell/ssh/pom.xml
@@ -76,6 +76,12 @@
             <groupId>org.apache.karaf</groupId>
             <artifactId>org.apache.karaf.util</artifactId>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.karaf.jaas</groupId>
+            <artifactId>org.apache.karaf.jaas.boot</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <build>