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 <[email protected]> Authored: Tue Apr 29 09:50:21 2014 +0200 Committer: Christian Schneider <[email protected]> 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>
