[jboss-osgi-commits] JBoss-OSGI SVN: r101342 - in projects/jboss-osgi/projects: testing/trunk/src/main/java/org/jboss/osgi/testing/internal and 1 other directory.
jboss-osgi-commits at lists.jboss.org
jboss-osgi-commits at lists.jboss.org
Tue Feb 23 15:41:58 EST 2010
Author: thomas.diesler at jboss.com
Date: 2010-02-23 15:41:57 -0500 (Tue, 23 Feb 2010)
New Revision: 101342
Modified:
projects/jboss-osgi/projects/bundles/jmx/trunk/jmx-bundle/src/test/java/org/jboss/test/osgi/jmx/ServiceStateMBeanTestCase.java
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteServiceReference.java
Log:
Obtain service properties via ServiceStateMBean
Modified: projects/jboss-osgi/projects/bundles/jmx/trunk/jmx-bundle/src/test/java/org/jboss/test/osgi/jmx/ServiceStateMBeanTestCase.java
===================================================================
--- projects/jboss-osgi/projects/bundles/jmx/trunk/jmx-bundle/src/test/java/org/jboss/test/osgi/jmx/ServiceStateMBeanTestCase.java 2010-02-23 20:18:50 UTC (rev 101341)
+++ projects/jboss-osgi/projects/bundles/jmx/trunk/jmx-bundle/src/test/java/org/jboss/test/osgi/jmx/ServiceStateMBeanTestCase.java 2010-02-23 20:41:57 UTC (rev 101342)
@@ -32,6 +32,9 @@
import org.jboss.osgi.jmx.ServiceStateMBeanExt;
import org.junit.Test;
+import org.osgi.framework.Constants;
+import org.osgi.jmx.JmxConstants;
+import org.osgi.jmx.framework.ServiceStateMBean;
/**
* A test that excercises the ServiceStateMBean
@@ -53,8 +56,17 @@
public void getService() throws Exception
{
ServiceStateMBeanExt serviceState = getServiceState();
- CompositeData data = serviceState.getService(MBeanServer.class.getName());
- assertNotNull("MBeanServer service not null", data);
+ CompositeData serviceData = serviceState.getService(MBeanServer.class.getName());
+ assertNotNull("MBeanServer service not null", serviceData);
+
+ Long serviceId = (Long)serviceData.get(ServiceStateMBean.IDENTIFIER);
+ assertNotNull("service.id not null", serviceId);
+
+ TabularData props = serviceState.getProperties(serviceId);
+ assertNotNull("Properties not null", props);
+
+ CompositeData idData = props.get(new Object[] { Constants.SERVICE_ID });
+ assertEquals(serviceId.toString(), idData.get(JmxConstants.VALUE));
}
@Test
Modified: projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteServiceReference.java
===================================================================
--- projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteServiceReference.java 2010-02-23 20:18:50 UTC (rev 101341)
+++ projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteServiceReference.java 2010-02-23 20:41:57 UTC (rev 101342)
@@ -21,10 +21,14 @@
*/
package org.jboss.osgi.testing.internal;
+import java.util.ArrayList;
+import java.util.List;
+
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.TabularData;
import org.jboss.osgi.testing.OSGiServiceReference;
+import org.osgi.jmx.JmxConstants;
/**
* A remote implementation of the {@link OSGiServiceReference}
@@ -34,22 +38,30 @@
*/
public class RemoteServiceReference implements OSGiServiceReference
{
- private CompositeData serviceData;
- private TabularData propertiesData;
+ private TabularData propsData;
- public RemoteServiceReference(CompositeData serviceData, TabularData propertiesData)
+ public RemoteServiceReference(CompositeData serviceData, TabularData propData)
{
- this.serviceData = serviceData;
- this.propertiesData = propertiesData;
+ this.propsData = propData;
}
public Object getProperty(String key)
{
- return null;
+ CompositeData propData = propsData.get(new Object[] { key });
+ if (propData == null)
+ return null;
+
+ // [TODO] decode value
+ Object value = propData.get(JmxConstants.VALUE);
+ return value;
}
public String[] getPropertyKeys()
{
- return null;
+ List<String> keys = new ArrayList<String>();
+ for(Object key : propsData.keySet())
+ keys.add((String)key);
+
+ return keys.toArray(new String[keys.size()]);
}
}
More information about the jboss-osgi-commits
mailing list