[jboss-cvs] JBossAS SVN: r90422 - in projects/jboss-osgi/trunk: blueprint/impl and 9 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 18 08:53:44 EDT 2009
Author: thomas.diesler at jboss.com
Date: 2009-06-18 08:53:44 -0400 (Thu, 18 Jun 2009)
New Revision: 90422
Added:
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentFactory.java
Modified:
projects/jboss-osgi/trunk/blueprint/impl/pom.xml
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BeanManager.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceManager.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceReferenceManager.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BeanMetadataImpl.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java
projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java
projects/jboss-osgi/trunk/distribution/pom.xml
projects/jboss-osgi/trunk/husky/harness/pom.xml
projects/jboss-osgi/trunk/husky/pom.xml
projects/jboss-osgi/trunk/husky/testsuite/pom.xml
projects/jboss-osgi/trunk/pom.xml
projects/jboss-osgi/trunk/spi/pom.xml
projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/service/MicrocontainerService.java
Log:
Install top-level beans in MC
Modified: projects/jboss-osgi/trunk/blueprint/impl/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/pom.xml 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/pom.xml 2009-06-18 12:53:44 UTC (rev 90422)
@@ -19,7 +19,6 @@
<dependency>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-spi</artifactId>
- <version>${version}</version>
</dependency>
<!-- Provided Dependencies -->
@@ -66,6 +65,9 @@
</Export-Package>
<Import-Package>
org.apache.xerces.dom,
+ org.jboss.beans.metadata.*,
+ org.jboss.dependency.spi*,
+ org.jboss.kernel.spi*,
org.jboss.osgi.common.log;version=1.0,
org.jboss.osgi.spi;version=1.0,
org.jboss.osgi.spi.service;version=1.0,
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -23,11 +23,19 @@
//$Id$
+import static org.jboss.osgi.spi.service.MicrocontainerService.BEAN_KERNEL_CONTROLLER;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.osgi.common.log.LogServiceTracker;
+import org.jboss.osgi.spi.service.MicrocontainerService;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
import org.osgi.service.blueprint.reflect.BeanMetadata;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
import org.osgi.service.blueprint.reflect.ServiceMetadata;
import org.osgi.service.blueprint.reflect.ServiceReferenceMetadata;
+import org.osgi.service.log.LogService;
/**
* For each of the ComponentMetadata objects, the Blueprint Container has a
@@ -44,11 +52,14 @@
*/
public abstract class AbstractManager
{
+ protected LogService log;
protected BundleContext context;
+
private ComponentMetadata component;
public AbstractManager(BundleContext context, ComponentMetadata component)
{
+ this.log = new LogServiceTracker(context);
this.context = context;
this.component = component;
}
@@ -63,16 +74,55 @@
return component;
}
+ public int getInitialization()
+ {
+ return component.getInitialization();
+ }
+
public void activate()
{
- // do nothing
+ log.log(LogService.LOG_DEBUG, "activate: " + component);
}
public void shutdown()
{
- // do nothing
+ log.log(LogService.LOG_DEBUG, "shutdown: " + component);
}
+ protected void installKernelBean(BeanMetaData kernelBean)
+ {
+ KernelController controller = getKernelController();
+ try
+ {
+ controller.install(kernelBean);
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ catch (Throwable th)
+ {
+ throw new IllegalStateException("Cannot install kernel bean", th);
+ }
+ }
+
+ protected void uninstallKernelBean(BeanMetaData kernelBean)
+ {
+ KernelController controller = getKernelController();
+ controller.uninstall(kernelBean);
+ }
+
+ protected KernelController getKernelController()
+ {
+ ServiceReference sref = context.getServiceReference(MicrocontainerService.class.getName());
+ if (sref == null)
+ throw new IllegalStateException("Cannot obtain MicrocontainerService");
+
+ MicrocontainerService service = (MicrocontainerService)context.getService(sref);
+ KernelController controller = service.getRegisteredBean(KernelController.class, BEAN_KERNEL_CONTROLLER);
+ return controller;
+ }
+
static AbstractManager createManager(BundleContext context, ComponentMetadata comp)
{
AbstractManager manager = null;
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BeanManager.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BeanManager.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BeanManager.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -23,6 +23,11 @@
//$Id$
+
+import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.osgi.blueprint.reflect.BeanMetadataImpl;
import org.osgi.framework.BundleContext;
import org.osgi.service.blueprint.reflect.BeanMetadata;
@@ -48,11 +53,39 @@
*/
public class BeanManager extends AbstractManager
{
- private BeanMetadata beanMetadata;
+ private BeanMetadataImpl beanMetadata;
+ private BeanMetaData kernelBean;
- public BeanManager(BundleContext context, BeanMetadata beanMetadata)
+ public BeanManager(BundleContext context, BeanMetadata compMetadata)
{
- super(context, beanMetadata);
- this.beanMetadata = beanMetadata;
+ super(context, compMetadata);
+ this.beanMetadata = (BeanMetadataImpl)compMetadata;
}
+
+ @Override
+ public void activate()
+ {
+ super.activate();
+
+ kernelBean = getKernelBean(beanMetadata);
+ installKernelBean(kernelBean);
+ }
+
+ @Override
+ public void shutdown()
+ {
+ if (kernelBean != null)
+ uninstallKernelBean(kernelBean);
+
+ super.shutdown();
+ }
+
+ private BeanMetaData getKernelBean(BeanMetadataImpl compMetadata)
+ {
+ String name = compMetadata.getKey();
+ String clazz = compMetadata.getClassName();
+
+ BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, clazz);
+ return builder.getBeanMetaData();
+ }
}
\ No newline at end of file
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -23,6 +23,8 @@
//$Id: BlueprintContextImpl.java 90313 2009-06-17 10:37:51Z thomas.diesler at jboss.com $
+import static org.osgi.service.blueprint.reflect.ComponentMetadata.INITIALIZATION_EAGER;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -107,10 +109,11 @@
*/
public void shutdown()
{
- for (AbstractManager manager : managers.values())
- {
+ List<AbstractManager> list = new ArrayList<AbstractManager>(managers.values());
+ Collections.reverse(list);
+
+ for (AbstractManager manager : list)
manager.shutdown();
- }
}
public BundleContext getBundleContext()
@@ -171,8 +174,25 @@
for (ComponentMetadata comp : bpMetadata.getComponents())
{
AbstractManager manager = AbstractManager.createManager(context, comp);
- managers.put(manager.getId(), manager);
+
+ String key = manager.getId();
+ if (key == null)
+ throw new IllegalStateException("Component id cannot be null for: " + comp);
+
+ // All top level components share a single namespace.
+ // That is, it is an error if the same id is used multiple times.
+ if (managers.get(key) != null)
+ throw new IllegalStateException("Duplicate top-level component: " + key);
+
+ managers.put(key, manager);
}
+
+ // Activated the eager managers
+ for (AbstractManager manager : managers.values())
+ {
+ if (manager.getInitialization() == INITIALIZATION_EAGER)
+ manager.activate();
+ }
}
private BlueprintMetadata getBlueprintMetadata()
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceManager.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceManager.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceManager.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -23,7 +23,9 @@
//$Id$
+import org.jboss.osgi.blueprint.reflect.ServiceMetadataImpl;
import org.osgi.framework.BundleContext;
+import org.osgi.service.blueprint.reflect.BeanMetadata;
import org.osgi.service.blueprint.reflect.ServiceMetadata;
/**
@@ -38,11 +40,35 @@
*/
public class ServiceManager extends AbstractManager
{
- private ServiceMetadata serviceMetadata;
+ private ServiceMetadataImpl serviceMetadata;
+ private AbstractManager beanManager;
- public ServiceManager(BundleContext context, ServiceMetadata serviceMetadata)
+ public ServiceManager(BundleContext context, ServiceMetadata compMetadata)
{
- super(context, serviceMetadata);
- this.serviceMetadata = serviceMetadata;
+ super(context, compMetadata);
+ this.serviceMetadata = (ServiceMetadataImpl)compMetadata;
+
+ // Create the anonymous bean manager
+ BeanMetadata beanMetadata = serviceMetadata.getBeanMetadata();
+ if (beanMetadata != null)
+ beanManager = (AbstractManager)AbstractManager.createManager(context, beanMetadata);
}
+
+ @Override
+ public void activate()
+ {
+ super.activate();
+
+ if (beanManager != null)
+ beanManager.activate();
+ }
+
+ @Override
+ public void shutdown()
+ {
+ if (beanManager != null)
+ beanManager.shutdown();
+
+ super.shutdown();
+ }
}
\ No newline at end of file
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceReferenceManager.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceReferenceManager.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/ServiceReferenceManager.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -23,6 +23,7 @@
//$Id$
+import org.jboss.osgi.blueprint.reflect.ServiceReferenceMetadataImpl;
import org.osgi.framework.BundleContext;
import org.osgi.service.blueprint.reflect.ServiceReferenceMetadata;
@@ -39,11 +40,11 @@
*/
public class ServiceReferenceManager extends AbstractManager
{
- private ServiceReferenceMetadata srefMetadata;
+ private ServiceReferenceMetadataImpl srefMetadata;
- public ServiceReferenceManager(BundleContext context, ServiceReferenceMetadata srefMetadata)
+ public ServiceReferenceManager(BundleContext context, ServiceReferenceMetadata compMetadata)
{
- super(context, srefMetadata);
- this.srefMetadata = srefMetadata;
+ super(context, compMetadata);
+ this.srefMetadata = (ServiceReferenceMetadataImpl)compMetadata;
}
}
\ No newline at end of file
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -26,6 +26,8 @@
import java.util.ArrayList;
import java.util.List;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+
/**
* The Component type is the base type for top-level
* Blueprint components. The <bean> <reference>, <service>, <ref-set>, and <ref-list>
@@ -76,6 +78,9 @@
public int getInitialization()
{
+ if (initialization == 0)
+ initialization = ComponentMetadata.INITIALIZATION_EAGER;
+
return initialization;
}
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BeanMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BeanMetadataImpl.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BeanMetadataImpl.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -31,6 +31,7 @@
import org.osgi.service.blueprint.reflect.BeanArgument;
import org.osgi.service.blueprint.reflect.BeanMetadata;
import org.osgi.service.blueprint.reflect.BeanProperty;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
import org.osgi.service.blueprint.reflect.Target;
/**
@@ -41,14 +42,30 @@
*/
public class BeanMetadataImpl extends ComponentMetadataImpl implements BeanMetadata
{
+ private ComponentMetadata parent;
private TBean tBean;
public BeanMetadataImpl(BundleContext context, TBean tBean)
{
+ this(context, null, tBean);
+ }
+
+ public BeanMetadataImpl(BundleContext context, ComponentMetadata parent, TBean tBean)
+ {
super(context, tBean);
+ this.parent = parent;
this.tBean = tBean;
}
+ public String getKey()
+ {
+ String key = super.getId();
+ if (key == null && parent != null)
+ key = parent.getId() + "#anonymousBean";
+
+ return key;
+ }
+
public List<BeanArgument> getArguments()
{
throw new NotImplementedException();
@@ -93,4 +110,9 @@
{
return tBean.getScope();
}
+
+ public String toString()
+ {
+ return "Bean[key=" + getKey() + "]";
+ }
}
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -29,11 +29,8 @@
import java.util.List;
import java.util.Map;
-import org.jboss.osgi.blueprint.parser.xb.TBean;
import org.jboss.osgi.blueprint.parser.xb.TBlueprint;
import org.jboss.osgi.blueprint.parser.xb.TComponent;
-import org.jboss.osgi.blueprint.parser.xb.TService;
-import org.jboss.osgi.blueprint.parser.xb.TServiceReference;
import org.jboss.osgi.spi.NotImplementedException;
import org.osgi.framework.BundleContext;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
@@ -66,10 +63,18 @@
public void initialize()
{
+ ComponentFactory factory = new ComponentFactory(context);
for (TComponent tComp : tBlueprint.getComponents())
{
- ComponentMetadata comp = createComponent(tComp);
- components.put(comp.getId(), comp);
+ ComponentMetadata comp = factory.createComponent(tComp);
+ String key = comp.getId();
+
+ // All top level components share a single namespace.
+ // That is, it is an error if the same id is used multiple times.
+ if (components.get(key) != null)
+ throw new IllegalStateException("Duplicate top-level component: " + key);
+
+ components.put(key, comp);
}
}
@@ -87,26 +92,4 @@
throw new NotImplementedException("Blueprint metadata merge not yet implemented");
}
-
- private ComponentMetadata createComponent(TComponent tComp)
- {
- ComponentMetadata comp = null;
-
- if (tComp.getId() == null)
- tComp.setId(".anonymousId#" + (components.size() + 1));
-
- if (tComp instanceof TBean)
- comp = new BeanMetadataImpl(context, (TBean)tComp);
-
- else if (tComp instanceof TService)
- comp = new ServiceMetadataImpl(context, (TService)tComp);
-
- else if (tComp instanceof TServiceReference)
- comp = new ServiceReferenceMetadataImpl(context, (TServiceReference)tComp);
-
- if (comp == null)
- throw new IllegalArgumentException("Unsupported component type: " + tComp);
-
- return comp;
- }
}
Added: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentFactory.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentFactory.java (rev 0)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentFactory.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -0,0 +1,75 @@
+/*
+ * 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.blueprint.reflect;
+
+// $Id$
+
+import org.jboss.osgi.blueprint.parser.xb.TBean;
+import org.jboss.osgi.blueprint.parser.xb.TComponent;
+import org.jboss.osgi.blueprint.parser.xb.TService;
+import org.jboss.osgi.blueprint.parser.xb.TServiceReference;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+
+/**
+ * A factory for component metadata.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
+ */
+public class ComponentFactory
+{
+ private BundleContext context;
+ private int anonymousId;
+
+ public ComponentFactory(BundleContext context)
+ {
+ this.context = context;
+ }
+
+ public ComponentMetadata createComponent(TComponent tComp)
+ {
+ return createComponent(null, tComp, false);
+ }
+
+ public ComponentMetadata createComponent(ComponentMetadata parent, TComponent tComp, boolean anonymous)
+ {
+ ComponentMetadata comp = null;
+
+ if (anonymous == false && tComp.getId() == null)
+ tComp.setId(".anonymousId#" + (++anonymousId));
+
+ if (tComp instanceof TBean)
+ comp = new BeanMetadataImpl(context, parent, (TBean)tComp);
+
+ else if (tComp instanceof TService)
+ comp = new ServiceMetadataImpl(context, (TService)tComp);
+
+ else if (tComp instanceof TServiceReference)
+ comp = new ServiceReferenceMetadataImpl(context, (TServiceReference)tComp);
+
+ if (comp == null)
+ throw new IllegalArgumentException("Unsupported component type: " + tComp);
+
+ return comp;
+ }
+}
Property changes on: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -37,10 +37,12 @@
*/
public class ComponentMetadataImpl implements ComponentMetadata
{
+ protected BundleContext context;
protected TComponent tComp;
public ComponentMetadataImpl(BundleContext context, TComponent tComp)
{
+ this.context = context;
this.tComp = tComp;
}
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -30,6 +30,7 @@
import org.jboss.osgi.blueprint.parser.xb.TService;
import org.jboss.osgi.spi.NotImplementedException;
import org.osgi.framework.BundleContext;
+import org.osgi.service.blueprint.reflect.BeanMetadata;
import org.osgi.service.blueprint.reflect.MapEntry;
import org.osgi.service.blueprint.reflect.RegistrationListener;
import org.osgi.service.blueprint.reflect.ServiceMetadata;
@@ -44,6 +45,7 @@
public class ServiceMetadataImpl extends ComponentMetadataImpl implements ServiceMetadata
{
private TService tService;
+ private BeanMetadata beanMetadata;
public ServiceMetadataImpl(BundleContext context, TService tService)
{
@@ -90,4 +92,19 @@
{
throw new NotImplementedException();
}
+
+ public BeanMetadata getBeanMetadata()
+ {
+ if (beanMetadata == null && tService.getBean() != null)
+ {
+ ComponentFactory factory = new ComponentFactory(context);
+ beanMetadata = (BeanMetadata)factory.createComponent(this, tService.getBean(), true);
+ }
+ return beanMetadata;
+ }
+
+ public String toString()
+ {
+ return "Service[id=" + getId() + "]";
+ }
}
Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -82,4 +82,9 @@
{
throw new NotImplementedException();
}
+
+ public String toString()
+ {
+ return "Reference[id=" + getId() + "]";
+ }
}
Modified: projects/jboss-osgi/trunk/distribution/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/pom.xml 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/distribution/pom.xml 2009-06-18 12:53:44 UTC (rev 90422)
@@ -55,18 +55,18 @@
<dependency>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-spi</artifactId>
- <version>${version}</version>
+ <version>${version.jboss.osgi.spi}</version>
</dependency>
<dependency>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-spi</artifactId>
- <version>${version}</version>
+ <version>${version.jboss.osgi.spi}</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-spi</artifactId>
- <version>${version}</version>
+ <version>${version.jboss.osgi.spi}</version>
<classifier>javadoc</classifier>
</dependency>
<dependency>
Modified: projects/jboss-osgi/trunk/husky/harness/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/husky/harness/pom.xml 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/husky/harness/pom.xml 2009-06-18 12:53:44 UTC (rev 90422)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-husky</artifactId>
- <version>1.0.0.Beta3</version>
+ <version>1.0.0-SNAPSHOT</version>
</parent>
<!-- Dependencies -->
Modified: projects/jboss-osgi/trunk/husky/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/husky/pom.xml 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/husky/pom.xml 2009-06-18 12:53:44 UTC (rev 90422)
@@ -22,6 +22,8 @@
<artifactId>jboss-osgi-husky</artifactId>
<packaging>pom</packaging>
+ <version>1.0.0-SNAPSHOT</version>
+
<parent>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi</artifactId>
Modified: projects/jboss-osgi/trunk/husky/testsuite/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/husky/testsuite/pom.xml 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/husky/testsuite/pom.xml 2009-06-18 12:53:44 UTC (rev 90422)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-husky</artifactId>
- <version>1.0.0.Beta3</version>
+ <version>1.0.0-SNAPSHOT</version>
</parent>
<!-- Dependencies -->
Modified: projects/jboss-osgi/trunk/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/pom.xml 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/pom.xml 2009-06-18 12:53:44 UTC (rev 90422)
@@ -46,15 +46,17 @@
<version.jboss.osgi.common.core>2.2.11</version.jboss.osgi.common.core>
<version.jboss.osgi.deployers>1.0.0.Beta2</version.jboss.osgi.deployers>
<version.jboss.osgi.hotdeploy>1.0.0-SNAPSHOT</version.jboss.osgi.hotdeploy>
- <version.jboss.osgi.integration.jbossas>1.0.0.Beta2</version.jboss.osgi.integration.jbossas>
+ <version.jboss.osgi.husky>1.0.0-SNAPSHOT</version.jboss.osgi.husky>
+ <version.jboss.osgi.integration.jbossas>1.0.0-SNAPSHOT</version.jboss.osgi.integration.jbossas>
<version.jboss.osgi.jaxb>2.1.10</version.jboss.osgi.jaxb>
<version.jboss.osgi.jmx>1.0.0.Beta2</version.jboss.osgi.jmx>
<version.jboss.osgi.jndi>1.0.0.Beta2</version.jboss.osgi.jndi>
- <version.jboss.osgi.microcontainer>1.0.0.Beta2</version.jboss.osgi.microcontainer>
+ <version.jboss.osgi.microcontainer>1.0.0-SNAPSHOT</version.jboss.osgi.microcontainer>
<version.jboss.osgi.remotelog>1.0.0.Beta2</version.jboss.osgi.remotelog>
<version.jboss.osgi.runtime.equinox>1.0.0.Beta2</version.jboss.osgi.runtime.equinox>
<version.jboss.osgi.runtime.felix>1.0.0.Beta2</version.jboss.osgi.runtime.felix>
<version.jboss.osgi.runtime.knopflerfish>1.0.0.Beta2</version.jboss.osgi.runtime.knopflerfish>
+ <version.jboss.osgi.spi>1.0.0-SNAPSHOT</version.jboss.osgi.spi>
<version.jboss.osgi.webconsole>1.0.0.Beta2</version.jboss.osgi.webconsole>
<version.jboss.osgi.xml.binding>2.0.0</version.jboss.osgi.xml.binding>
<version.junit>4.6</version.junit>
@@ -163,7 +165,7 @@
<dependency>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-husky-harness</artifactId>
- <version>${version}</version>
+ <version>${version.jboss.osgi.husky}</version>
</dependency>
<dependency>
<groupId>org.jboss.osgi</groupId>
@@ -183,7 +185,7 @@
<dependency>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-spi</artifactId>
- <version>${version}</version>
+ <version>${version.jboss.osgi.spi}</version>
</dependency>
<dependency>
<groupId>org.jboss.osgi.bundles</groupId>
Modified: projects/jboss-osgi/trunk/spi/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/spi/pom.xml 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/spi/pom.xml 2009-06-18 12:53:44 UTC (rev 90422)
@@ -8,6 +8,8 @@
<artifactId>jboss-osgi-spi</artifactId>
<packaging>jar</packaging>
+ <version>1.0.0-SNAPSHOT</version>
+
<!-- Parent -->
<parent>
<groupId>org.jboss.osgi</groupId>
Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/service/MicrocontainerService.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/service/MicrocontainerService.java 2009-06-18 12:37:06 UTC (rev 90421)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/service/MicrocontainerService.java 2009-06-18 12:53:44 UTC (rev 90422)
@@ -54,13 +54,19 @@
String BEAN_KERNEL = "jboss.kernel:service=Kernel";
/*
- * * Get the list of registered beans.
+ * Get the list of registered beans.
*/
List<String> getRegisteredBeans();
/*
- * * Get a registered bean from the Kernel.
+ * Get a registered bean from the Kernel.
* @return null if there is no bean registered under this name
*/
Object getRegisteredBean(String beanName);
+
+ /*
+ * Get a registered bean from the Kernel.
+ * @return null if there is no bean registered under this name
+ */
+ <T> T getRegisteredBean(Class<T> clazz, String beanName);
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list