Author: thomas.diesler(a)jboss.com
Date: 2010-02-23 09:13:09 -0500 (Tue, 23 Feb 2010)
New Revision: 101332
Removed:
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteFramework.java
projects/jboss-osgi/projects/testing/trunk/src/test/java/org/jboss/test/osgi/husky/
Modified:
projects/jboss-osgi/projects/testing/trunk/pom.xml
projects/jboss-osgi/projects/testing/trunk/scripts/assembly-bundles.xml
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteServiceReference.java
Log:
WIP
Modified: projects/jboss-osgi/projects/testing/trunk/pom.xml
===================================================================
--- projects/jboss-osgi/projects/testing/trunk/pom.xml 2010-02-23 14:11:34 UTC (rev
101331)
+++ projects/jboss-osgi/projects/testing/trunk/pom.xml 2010-02-23 14:13:09 UTC (rev
101332)
@@ -42,7 +42,9 @@
<properties>
<version.apache.aries.jmx>1.0.0-incubating-SNAPSHOT</version.apache.aries.jmx>
<version.apache.felix.log>1.0.0</version.apache.felix.log>
+ <version.jboss.osgi.common>1.0.4-SNAPSHOT</version.jboss.osgi.common>
<version.jboss.osgi.jmx>1.0.4-SNAPSHOT</version.jboss.osgi.jmx>
+ <version.jboss.osgi.jndi>1.0.3-SNAPSHOT</version.jboss.osgi.jndi>
<version.jboss.osgi.spi>1.0.5-SNAPSHOT</version.jboss.osgi.spi>
<version.jboss.osgi.runtime.felix>2.0.2.SP1-SNAPSHOT</version.jboss.osgi.runtime.felix>
<version.osgi>4.2.0</version.osgi>
@@ -60,8 +62,8 @@
<version>${version.jboss.osgi.spi}</version>
</dependency>
<dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-jmx</artifactId>
+ <groupId>org.jboss.osgi.jmx</groupId>
+ <artifactId>jboss-osgi-jmx-api</artifactId>
<version>${version.jboss.osgi.jmx}</version>
</dependency>
<dependency>
@@ -92,6 +94,24 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-common</artifactId>
+ <version>${version.jboss.osgi.common}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jmx</groupId>
+ <artifactId>jboss-osgi-jmx</artifactId>
+ <version>${version.jboss.osgi.jmx}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jndi</groupId>
+ <artifactId>jboss-osgi-jndi</artifactId>
+ <version>${version.jboss.osgi.jndi}</version>
+ <scope>provided</scope>
+ </dependency>
<!-- OSGi Dependencies -->
<dependency>
Modified: projects/jboss-osgi/projects/testing/trunk/scripts/assembly-bundles.xml
===================================================================
--- projects/jboss-osgi/projects/testing/trunk/scripts/assembly-bundles.xml 2010-02-23
14:11:34 UTC (rev 101331)
+++ projects/jboss-osgi/projects/testing/trunk/scripts/assembly-bundles.xml 2010-02-23
14:13:09 UTC (rev 101332)
@@ -19,15 +19,6 @@
<include>*:jboss-osgi-common:jar</include>
<include>*:jboss-osgi-jmx:jar</include>
<include>*:jboss-osgi-jndi:jar</include>
- </includes>
- <useStrictFiltering>true</useStrictFiltering>
- <scope>compile</scope>
- <unpack>false</unpack>
- </dependencySet>
- <dependencySet>
- <outputDirectory>bundles</outputDirectory>
-
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
- <includes>
<include>*:org.apache.aries.jmx:jar</include>
<include>*:org.apache.felix.log:jar</include>
<include>*:org.osgi.compendium:jar</include>
Deleted:
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteFramework.java
===================================================================
---
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteFramework.java 2010-02-23
14:11:34 UTC (rev 101331)
+++
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteFramework.java 2010-02-23
14:13:09 UTC (rev 101332)
@@ -1,49 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.osgi.testing.internal;
-
-//$Id$
-
-import org.jboss.osgi.spi.management.ManagedServiceReference;
-
-/**
- * The supported functionality of a remote OSGi Framework
- *
- * @author thomas.diesler(a)jboss.com
- * @since 04-Mar-2009
- */
-public interface RemoteFramework
-{
- /**
- * Returns a ServiceReference object for a service that implements and was registered
- * under the specified class.
- */
- ManagedServiceReference getServiceReference(String clazz);
-
- /**
- * Returns an array of ManagedServiceReference objects.
- * The returned array of ManagedServiceReference objects contains services
- * that were registered under the specified class, match the specified filter
criteria,
- * and the packages for the class names under which the services were registered.
- */
- ManagedServiceReference[] getServiceReferences(String clazz, String filter);
-}
\ No newline at end of file
Modified:
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java
===================================================================
---
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java 2010-02-23
14:11:34 UTC (rev 101331)
+++
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java 2010-02-23
14:13:09 UTC (rev 101332)
@@ -23,8 +23,11 @@
import java.io.IOException;
+import javax.management.ObjectName;
+
+import org.jboss.osgi.jmx.FrameworkMBeanExt;
import org.jboss.osgi.spi.management.MBeanProxy;
-import org.jboss.osgi.spi.management.ManagedFrameworkMBean;
+import org.jboss.osgi.spi.management.ObjectNameFactory;
import org.jboss.osgi.testing.OSGiBundle;
import org.jboss.osgi.testing.OSGiPackageAdmin;
import org.jboss.osgi.testing.OSGiRuntime;
@@ -51,7 +54,8 @@
//
https://www.osgi.org/members/bugzilla/show_bug.cgi?id=1586
if (bundles == null)
{
- ManagedFrameworkMBean mbeanProxy = MBeanProxy.get(runtime.getMBeanServer(),
ManagedFrameworkMBean.MBEAN_MANAGED_FRAMEWORK, ManagedFrameworkMBean.class);
+ ObjectName objectName = ObjectNameFactory.create(FrameworkMBeanExt.OBJECTNAME);
+ FrameworkMBeanExt mbeanProxy = MBeanProxy.get(runtime.getMBeanServer(),
objectName, FrameworkMBeanExt.class);
return mbeanProxy.resolveAllBundles();
}
@@ -73,7 +77,8 @@
//
https://www.osgi.org/members/bugzilla/show_bug.cgi?id=1586
if (bundles == null)
{
- ManagedFrameworkMBean mbeanProxy = MBeanProxy.get(runtime.getMBeanServer(),
ManagedFrameworkMBean.MBEAN_MANAGED_FRAMEWORK, ManagedFrameworkMBean.class);
+ ObjectName objectName = ObjectNameFactory.create(FrameworkMBeanExt.OBJECTNAME);
+ FrameworkMBeanExt mbeanProxy = MBeanProxy.get(runtime.getMBeanServer(),
objectName, FrameworkMBeanExt.class);
mbeanProxy.refreshAllPackages();
return;
}
Modified:
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java
===================================================================
---
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java 2010-02-23
14:11:34 UTC (rev 101331)
+++
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java 2010-02-23
14:13:09 UTC (rev 101332)
@@ -23,9 +23,13 @@
// $Id$
+import java.io.IOException;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Set;
import javax.management.MBeanServerConnection;
@@ -35,9 +39,9 @@
import javax.naming.InitialContext;
import javax.naming.NamingException;
+import org.jboss.osgi.jmx.ServiceStateMBeanExt;
import org.jboss.osgi.spi.management.MBeanProxy;
-import org.jboss.osgi.spi.management.ManagedFrameworkMBean;
-import org.jboss.osgi.spi.management.ManagedServiceReference;
+import org.jboss.osgi.spi.management.ObjectNameFactory;
import org.jboss.osgi.spi.util.BundleInfo;
import org.jboss.osgi.testing.OSGiBundle;
import org.jboss.osgi.testing.OSGiPackageAdmin;
@@ -46,6 +50,7 @@
import org.jboss.osgi.testing.OSGiTestHelper;
import org.osgi.framework.BundleException;
import org.osgi.jmx.framework.BundleStateMBean;
+import org.osgi.jmx.framework.ServiceStateMBean;
/**
* A remote implementation of the {@link OSGiRuntime}
@@ -56,7 +61,7 @@
public class RemoteRuntime extends OSGiRuntimeImpl
{
private MBeanServerConnection mbeanServer;
-
+
public RemoteRuntime(OSGiTestHelper helper)
{
super(helper);
@@ -71,7 +76,7 @@
String rootURL = info.getRootURL().toExternalForm();
long bundleId = getFrameworkMBean().installBundle(rootURL);
-
+
RemoteBundle bundle = new RemoteBundle(this, bundleId);
return registerBundle(bundle.getLocation(), bundle);
}
@@ -110,7 +115,7 @@
{
TabularData listBundles = getBundleStateMBean().listBundles();
Iterator<?> iterator = listBundles.values().iterator();
- while(iterator.hasNext())
+ while (iterator.hasNext())
{
CompositeData next = (CompositeData)iterator.next();
Object bundleId = next.get(BundleStateMBean.IDENTIFIER);
@@ -139,23 +144,56 @@
public OSGiServiceReference getServiceReference(String clazz)
{
- ManagedServiceReference manref = getRemoteFramework().getServiceReference(clazz);
- return manref != null ? new RemoteServiceReference(manref) : null;
+ CompositeData serviceData;
+ TabularData propertiesData;
+ try
+ {
+ ServiceStateMBeanExt serviceState = getServiceStateMBeanExt();
+ serviceData = serviceState.getService(clazz);
+ if (serviceData == null)
+ return null;
+
+ Long serviceId = (Long)serviceData.get(ServiceStateMBean.IDENTIFIER);
+ propertiesData = serviceState.getProperties(serviceId);
+ }
+ catch (IOException ex)
+ {
+ throw new IllegalStateException(ex);
+ }
+ return new RemoteServiceReference(serviceData, propertiesData);
}
+ @SuppressWarnings("unchecked")
public OSGiServiceReference[] getServiceReferences(String clazz, String filter)
{
- OSGiServiceReference[] srefs = null;
+ TabularData servicesData;
+ List<OSGiServiceReference> srefs;
+ try
+ {
+ ServiceStateMBeanExt serviceState = getServiceStateMBeanExt();
+ servicesData = serviceState.getServices(clazz, filter);
+ if (servicesData == null)
+ return null;
- ManagedServiceReference[] manrefs =
getRemoteFramework().getServiceReferences(clazz, filter);
- if (manrefs != null)
+ srefs = new ArrayList<OSGiServiceReference>();
+ for (CompositeData serviceData :
(Collection<CompositeData>)servicesData.values())
+ {
+ Long serviceId = (Long)serviceData.get(ServiceStateMBean.IDENTIFIER);
+ TabularData propertiesData = serviceState.getProperties(serviceId);
+ srefs.add(new RemoteServiceReference(serviceData, propertiesData));
+ }
+ }
+ catch (IOException ex)
{
- srefs = new OSGiServiceReference[manrefs.length];
- for (int i = 0; i < manrefs.length; i++)
- srefs[i] = new RemoteServiceReference(manrefs[i]);
+ throw new IllegalStateException(ex);
}
+ return srefs.toArray(new OSGiServiceReference[servicesData.size()]);
+ }
- return srefs;
+ private ServiceStateMBeanExt getServiceStateMBeanExt()
+ {
+ ObjectName objectName = ObjectNameFactory.create(ServiceStateMBeanExt.OBJECTNAME);
+ return MBeanProxy.get(getMBeanServer(), objectName, ServiceStateMBeanExt.class);
}
public MBeanServerConnection getMBeanServer()
@@ -180,25 +218,6 @@
return new RemotePackageAdmin(this);
}
- private RemoteFramework getRemoteFramework()
- {
- ObjectName objectName = ManagedFrameworkMBean.MBEAN_MANAGED_FRAMEWORK;
- final ManagedFrameworkMBean managedFramework = MBeanProxy.get(getMBeanServer(),
objectName, ManagedFrameworkMBean.class);
-
- return new RemoteFramework()
- {
- public ManagedServiceReference getServiceReference(String clazz)
- {
- return managedFramework.getServiceReference(clazz);
- }
-
- public ManagedServiceReference[] getServiceReferences(String clazz, String
filter)
- {
- return managedFramework.getServiceReferences(clazz, filter);
- }
- };
- }
-
public boolean isRemoteRuntime()
{
return true;
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
14:11:34 UTC (rev 101331)
+++
projects/jboss-osgi/projects/testing/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteServiceReference.java 2010-02-23
14:13:09 UTC (rev 101332)
@@ -21,7 +21,9 @@
*/
package org.jboss.osgi.testing.internal;
-import org.jboss.osgi.spi.management.ManagedServiceReference;
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.TabularData;
+
import org.jboss.osgi.testing.OSGiServiceReference;
/**
@@ -32,21 +34,22 @@
*/
public class RemoteServiceReference implements OSGiServiceReference
{
- private ManagedServiceReference sref;
+ private CompositeData serviceData;
+ private TabularData propertiesData;
- public RemoteServiceReference(ManagedServiceReference sref)
+ public RemoteServiceReference(CompositeData serviceData, TabularData propertiesData)
{
- this.sref = sref;
+ this.serviceData = serviceData;
+ this.propertiesData = propertiesData;
}
public Object getProperty(String key)
{
- return sref.getProperty(key);
+ return null;
}
public String[] getPropertyKeys()
{
- return sref.getPropertyKeys();
+ return null;
}
-
}