You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by da...@apache.org on 2011/10/28 17:05:11 UTC
svn commit: r1190387 - in
/aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx:
codec/BundleWiringData.java framework/BundleRevisionsState.java
Author: davidb
Date: Fri Oct 28 15:05:11 2011
New Revision: 1190387
URL: http://svn.apache.org/viewvc?rev=1190387&view=rev
Log:
Add more content to the result produced by getCurrentWiring
Modified:
aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/codec/BundleWiringData.java
aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/framework/BundleRevisionsState.java
Modified: aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/codec/BundleWiringData.java
URL: http://svn.apache.org/viewvc/aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/codec/BundleWiringData.java?rev=1190387&r1=1190386&r2=1190387&view=diff
==============================================================================
--- aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/codec/BundleWiringData.java (original)
+++ aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/codec/BundleWiringData.java Fri Oct 28 15:05:11 2011
@@ -23,16 +23,25 @@ import java.util.Map;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.CompositeDataSupport;
import javax.management.openmbean.OpenDataException;
+import javax.management.openmbean.TabularData;
+import javax.management.openmbean.TabularDataSupport;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRequirement;
import org.osgi.framework.wiring.BundleWire;
import org.osgi.jmx.framework.BundleRevisionsStateMBean;
public class BundleWiringData {
-
private final long bundleId;
+ private final List<BundleCapability> capabilities;
+ private final String namespace;
+ private final List<BundleRequirement> requirements;
- public BundleWiringData(long bundleId, List<BundleWire> requiredWires) {
+ public BundleWiringData(long bundleId, String namespace, List<BundleCapability> capabilities, List<BundleRequirement> requirements, List<BundleWire> requiredWires) {
this.bundleId = bundleId;
+ this.namespace = namespace;
+ this.capabilities = capabilities;
+ this.requirements = requirements;
}
public CompositeData toCompositeData() {
@@ -41,13 +50,40 @@ public class BundleWiringData {
items.put(BundleRevisionsStateMBean.BUNDLE_ID, bundleId);
items.put(BundleRevisionsStateMBean.BUNDLE_REVISION_ID, null);
- Map<String, Object> reqItems = new HashMap<String, Object>();
- reqItems.put(BundleRevisionsStateMBean.ATTRIBUTES, null);
- reqItems.put(BundleRevisionsStateMBean.DIRECTIVES, null);
- reqItems.put(BundleRevisionsStateMBean.NAMESPACE, "org.foo.bar");
- CompositeDataSupport requirements = new CompositeDataSupport(BundleRevisionsStateMBean.BUNDLE_REQUIREMENT_TYPE, reqItems);
- items.put(BundleRevisionsStateMBean.REQUIREMENTS, new CompositeData [] {requirements});
+ CompositeData [] reqData = new CompositeData[requirements.size()];
+ for (int i=0; i < requirements.size(); i++) {
+ BundleRequirement requirement = requirements.get(i);
+ Map<String, Object> reqItems = new HashMap<String, Object>();
+
+ TabularData attributes = new TabularDataSupport(BundleRevisionsStateMBean.ATTRIBUTES_TYPE);
+ for (Map.Entry<String, Object> entry : requirement.getAttributes().entrySet()) {
+ PropertyData<?> pd = PropertyData.newInstance(entry.getKey(), entry.getValue());
+ attributes.put(pd.toCompositeData());
+ }
+ reqItems.put(BundleRevisionsStateMBean.ATTRIBUTES, attributes);
+
+ TabularData directives = new TabularDataSupport(BundleRevisionsStateMBean.DIRECTIVES_TYPE);
+ for (Map.Entry<String, String> entry : requirement.getDirectives().entrySet()) {
+ CompositeData directive = new CompositeDataSupport(BundleRevisionsStateMBean.DIRECTIVE_TYPE,
+ new String[] { BundleRevisionsStateMBean.KEY, BundleRevisionsStateMBean.VALUE },
+ new Object[] { entry.getKey(), entry.getValue() });
+ directives.put(directive);
+ }
+ reqItems.put(BundleRevisionsStateMBean.DIRECTIVES, directives);
+ reqItems.put(BundleRevisionsStateMBean.NAMESPACE, requirement.getNamespace());
+
+ CompositeData req = new CompositeDataSupport(BundleRevisionsStateMBean.BUNDLE_REQUIREMENT_TYPE, reqItems);
+ reqData[i] = req;
+ }
+
+// CompositeDataSupport directive = new CompositeDataSupport(BundleRevisionsStateMBean.DIRECTIVE_TYPE, new String [] {"Key", "Value"}, new Object [] {"Foo", "Bar"});
+// directives.put(directive);
+// reqItems.put(BundleRevisionsStateMBean.DIRECTIVES, directives);
+// reqItems.put(BundleRevisionsStateMBean.NAMESPACE, namespace);
+// CompositeDataSupport requirements = new CompositeDataSupport(BundleRevisionsStateMBean.BUNDLE_REQUIREMENT_TYPE, reqItems);
+
+ items.put(BundleRevisionsStateMBean.REQUIREMENTS, reqData);
items.put(BundleRevisionsStateMBean.CAPABILITIES, null);
items.put(BundleRevisionsStateMBean.BUNDLE_WIRES_TYPE, null);
Modified: aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/framework/BundleRevisionsState.java
URL: http://svn.apache.org/viewvc/aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/framework/BundleRevisionsState.java?rev=1190387&r1=1190386&r2=1190387&view=diff
==============================================================================
--- aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/framework/BundleRevisionsState.java (original)
+++ aries/trunk/sandbox/jmx-next/jmx-core/src/main/java/org/apache/aries/jmx/framework/BundleRevisionsState.java Fri Oct 28 15:05:11 2011
@@ -17,6 +17,7 @@
package org.apache.aries.jmx.framework;
import java.io.IOException;
+import java.util.List;
import javax.management.openmbean.ArrayType;
import javax.management.openmbean.CompositeData;
@@ -27,7 +28,11 @@ import org.apache.aries.jmx.codec.Bundle
import org.apache.aries.jmx.util.FrameworkUtils;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRequirement;
import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleWire;
+import org.osgi.framework.wiring.BundleWiring;
import org.osgi.jmx.framework.BundleRevisionsStateMBean;
public class BundleRevisionsState implements BundleRevisionsStateMBean {
@@ -62,9 +67,13 @@ public class BundleRevisionsState implem
public CompositeData getCurrentWiring(long bundleId, String namespace) throws IOException {
Bundle bundle = FrameworkUtils.resolveBundle(bundleContext, bundleId);
BundleRevision currentRevision = bundle.adapt(BundleRevision.class);
+ BundleWiring wiring = currentRevision.getWiring();
+ List<BundleCapability> capabilities = wiring.getCapabilities(namespace);
+ List<BundleRequirement> requirements = wiring.getRequirements(namespace);
+ List<BundleWire> requiredWires = wiring.getRequiredWires(namespace);
System.out.println("******** getCurrentWiring: " + bundle);
- BundleWiringData data = new BundleWiringData(bundle.getBundleId());
+ BundleWiringData data = new BundleWiringData(bundle.getBundleId(), namespace, capabilities, requirements, requiredWires);
CompositeData compositeData = data.toCompositeData();
System.out.println("######## " + compositeData);
return compositeData;