Skip to content

Commit 5d18d1a

Browse files
committed
KARAF-1838 Adding old package mbean methods for compatibility
git-svn-id: https://svn.apache.org/repos/asf/karaf/trunk@1388114 13f79535-47bb-0310-9956-ffa450edef68
1 parent c3b4c98 commit 5d18d1a

File tree

5 files changed

+75
-1
lines changed

5 files changed

+75
-1
lines changed

package/core/src/main/java/org/apache/karaf/packages/core/PackageRequirement.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ public boolean isResolveable() {
5252
}
5353

5454
public String getPackageName() {
55+
return getPackageName(filter);
56+
}
57+
58+
public static String getPackageName(String filter) {
5559
Matcher matcher = packagePattern.matcher(filter);
5660
matcher.matches();
5761
return matcher.group(1);

package/core/src/main/java/org/apache/karaf/packages/core/PackageService.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,36 @@
1616
*/
1717
package org.apache.karaf.packages.core;
1818

19+
import java.util.List;
1920
import java.util.SortedMap;
2021

2122
public interface PackageService {
2223

24+
/**
25+
* Gets the simplified package exports of a bundle. This does not show the
26+
* package versions.
27+
*
28+
* @param bundleId
29+
* @return
30+
*/
31+
List<String> getExports(long bundleId);
32+
33+
List<String> getImports(long bundleId);
34+
35+
/**
36+
* Gets a map of all exported packages with their version and the bundles that exprot them
37+
* The key is in the form packagename:version.
38+
*
39+
* @return
40+
*/
2341
SortedMap<String, PackageVersion> getExports();
2442

43+
/**
44+
* Gets a map of all package imports.
45+
* The key is the import filter.
46+
*
47+
* @return
48+
*/
2549
SortedMap<String, PackageRequirement> getImports();
2650

2751
}

package/core/src/main/java/org/apache/karaf/packages/core/PackagesMBean.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
*/
1717
package org.apache.karaf.packages.core;
1818

19+
import java.util.List;
20+
1921
import javax.management.openmbean.TabularData;
2022

2123
/**
@@ -25,5 +27,6 @@ public interface PackagesMBean {
2527

2628
TabularData getExports();
2729
TabularData getImports();
28-
30+
List<String> getExports(long bundleId);
31+
List<String> getImports(long bundleId);
2932
}

package/core/src/main/java/org/apache/karaf/packages/core/internal/PackageServiceImpl.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package org.apache.karaf.packages.core.internal;
1818

19+
import java.util.ArrayList;
1920
import java.util.List;
2021
import java.util.Map;
2122
import java.util.SortedMap;
@@ -63,6 +64,7 @@ public SortedMap<String, PackageVersion> getExports() {
6364
return packageVersionMap;
6465
}
6566

67+
@Override
6668
public SortedMap<String, PackageRequirement> getImports() {
6769
Bundle[] bundles = bundleContext.getBundles();
6870
SortedMap<String, PackageRequirement> filterMap = new TreeMap<String, PackageRequirement>();
@@ -100,4 +102,33 @@ private boolean checkResolveAble(BundleRequirement req) {
100102
return false;
101103
}
102104

105+
@Override
106+
public List<String> getExports(long bundleId) {
107+
Bundle bundle = bundleContext.getBundle(bundleId);
108+
BundleRevision rev = bundle.adapt(BundleRevision.class);
109+
List<BundleCapability> caps = rev.getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE);
110+
List<String> exports = new ArrayList<String>();
111+
for (BundleCapability cap : caps) {
112+
Map<String, Object> attr = cap.getAttributes();
113+
String packageName = (String)attr.get(BundleRevision.PACKAGE_NAMESPACE);
114+
exports.add(packageName);
115+
}
116+
return exports ;
117+
}
118+
119+
@Override
120+
public List<String> getImports(long bundleId) {
121+
Bundle bundle = bundleContext.getBundle(bundleId);
122+
BundleRevision rev = bundle.adapt(BundleRevision.class);
123+
List<BundleRequirement> reqs = rev.getDeclaredRequirements(BundleRevision.PACKAGE_NAMESPACE);
124+
List<String> imports = new ArrayList<String>();
125+
for (BundleRequirement req : reqs) {
126+
Map<String, String> attr = req.getDirectives();
127+
String filter = attr.get("filter");
128+
String name = PackageRequirement.getPackageName(filter);
129+
imports.add(name);
130+
}
131+
return imports;
132+
}
133+
103134
}

package/core/src/main/java/org/apache/karaf/packages/core/internal/Packages.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package org.apache.karaf.packages.core.internal;
1818

19+
import java.util.List;
1920
import java.util.SortedMap;
2021

2122
import javax.management.NotCompliantMBeanException;
@@ -126,4 +127,15 @@ public TabularData getImports() {
126127
}
127128
}
128129

130+
@Override
131+
public List<String> getExports(long bundleId) {
132+
return packageService.getExports(bundleId);
133+
134+
}
135+
136+
@Override
137+
public List<String> getImports(long bundleId) {
138+
return packageService.getImports(bundleId);
139+
}
140+
129141
}

0 commit comments

Comments
 (0)