Search in sources :

Example 6 with PackageVersion

use of org.apache.karaf.packages.core.PackageVersion in project karaf by apache.

the class Exports method getDuplicatePackages.

private SortedMap<String, PackageVersion> getDuplicatePackages(Bundle[] bundles) {
    SortedMap<String, PackageVersion> packageVersionMap = new TreeMap<>();
    for (Bundle bundle : bundles) {
        BundleRevision rev = bundle.adapt(BundleRevision.class);
        if (rev != null) {
            List<BundleCapability> caps = rev.getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE);
            for (BundleCapability cap : caps) {
                Map<String, Object> attr = cap.getAttributes();
                String packageName = (String) attr.get(BundleRevision.PACKAGE_NAMESPACE);
                Version version = (Version) attr.get("version");
                String key = packageName + ":" + version.toString();
                PackageVersion pVer = packageVersionMap.computeIfAbsent(key, k -> new PackageVersion(packageName, version));
                pVer.addBundle(bundle);
            }
        }
    }
    return packageVersionMap;
}
Also used : PackageVersion(org.apache.karaf.packages.core.PackageVersion) Version(org.osgi.framework.Version) Bundle(org.osgi.framework.Bundle) BundleRevision(org.osgi.framework.wiring.BundleRevision) TreeMap(java.util.TreeMap) BundleCapability(org.osgi.framework.wiring.BundleCapability) PackageVersion(org.apache.karaf.packages.core.PackageVersion)

Aggregations

PackageVersion (org.apache.karaf.packages.core.PackageVersion)6 Bundle (org.osgi.framework.Bundle)5 TreeMap (java.util.TreeMap)2 ShellTable (org.apache.karaf.shell.support.table.ShellTable)2 Version (org.osgi.framework.Version)2 BundleCapability (org.osgi.framework.wiring.BundleCapability)2 BundleRevision (org.osgi.framework.wiring.BundleRevision)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 CompositeData (javax.management.openmbean.CompositeData)1 CompositeDataSupport (javax.management.openmbean.CompositeDataSupport)1 CompositeType (javax.management.openmbean.CompositeType)1 OpenDataException (javax.management.openmbean.OpenDataException)1 TabularData (javax.management.openmbean.TabularData)1 TabularDataSupport (javax.management.openmbean.TabularDataSupport)1 TabularType (javax.management.openmbean.TabularType)1 Col (org.apache.karaf.shell.support.table.Col)1 Ignore (org.junit.Ignore)1 Test (org.junit.Test)1