You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2010/04/06 17:18:02 UTC

svn commit: r931178 - in /felix/trunk/dependencymanager: core/src/main/java/org/apache/felix/dm/ core/src/main/java/org/apache/felix/dm/impl/ runtime/src/main/java/org/apache/felix/dm/runtime/

Author: marrs
Date: Tue Apr  6 15:17:57 2010
New Revision: 931178

URL: http://svn.apache.org/viewvc?rev=931178&view=rev
Log:
Added an extra parameter to resource adapters to specify a handler to invoke life cycle callbacks on. Experimental bit of API for now.

Modified:
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyActivatorBase.java
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterImpl.java
    felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyActivatorBase.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyActivatorBase.java?rev=931178&r1=931177&r2=931178&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyActivatorBase.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyActivatorBase.java Tue Apr  6 15:17:57 2010
@@ -171,11 +171,11 @@ public abstract class DependencyActivato
         return m_manager.createAdapterService(serviceInterface, serviceFilter, adapterInterface, adapterImplementation, adapterProperties);
     }
     
-    public Service createResourceAdapter(String resourceFilter, String adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
-        return m_manager.createResourceAdapterService(resourceFilter, adapterInterface, adapterProperties, adapterImplementation, propagate);
+    public Service createResourceAdapter(String resourceFilter, Object adapterHandler, String adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
+        return m_manager.createResourceAdapterService(resourceFilter, adapterHandler, adapterInterface, adapterProperties, adapterImplementation, propagate);
     }
-    public Service createResourceAdapter(String resourceFilter, String[] adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
-        return m_manager.createResourceAdapterService(resourceFilter, adapterInterface, adapterProperties, adapterImplementation, propagate);
+    public Service createResourceAdapter(String resourceFilter, Object adapterHandler, String[] adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
+        return m_manager.createResourceAdapterService(resourceFilter, adapterHandler, adapterInterface, adapterProperties, adapterImplementation, propagate);
     }
     
     public Service createBundleAdapterService(int bundleStateMask, String bundleFilter, Object adapterImplementation, String adapterInterface, Dictionary adapterProperties, boolean propagate) {

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java?rev=931178&r1=931177&r2=931178&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java Tue Apr  6 15:17:57 2010
@@ -252,6 +252,8 @@ public class DependencyManager {
      * service as a member it will be injected.
      * 
      * @param resourceFilter the filter condition to use with the resource
+     * @param adapterHandler a handler to invoke life cycle methods on for the adapter instance, or <code>null</code>
+     *     if you want to invoke these methods on the instance
      * @param adapterInterface the interface to use when registering adapters
      * @param adapterProperties additional properties to use with the adapter service registration
      * @param adapterImplementation the implementation of the adapter
@@ -259,18 +261,18 @@ public class DependencyManager {
      * @return a service that acts as a factory for generating resource adapters
      * @see Resource
      */
-    public Service createResourceAdapterService(String resourceFilter, String adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
+    public Service createResourceAdapterService(String resourceFilter, Object adapterHandler, String adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
         return createService()
-            .setImplementation(new ResourceAdapterImpl(resourceFilter, adapterImplementation, adapterInterface, adapterProperties, propagate))
+            .setImplementation(new ResourceAdapterImpl(resourceFilter, adapterHandler, adapterImplementation, adapterInterface, adapterProperties, propagate))
             .add(createResourceDependency()
                 .setFilter(resourceFilter)
                 .setAutoConfig(false)
                 .setCallbacks("added", "removed")
             );
     }
-    public Service createResourceAdapterService(String resourceFilter, String[] adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
+    public Service createResourceAdapterService(String resourceFilter, Object adapterHandler, String[] adapterInterface, Dictionary adapterProperties, Object adapterImplementation, boolean propagate) {
         return createService()
-            .setImplementation(new ResourceAdapterImpl(resourceFilter, adapterImplementation, adapterInterface, adapterProperties, propagate))
+            .setImplementation(new ResourceAdapterImpl(resourceFilter, adapterHandler, adapterImplementation, adapterInterface, adapterProperties, propagate))
             .add(createResourceDependency()
                 .setFilter(resourceFilter)
                 .setAutoConfig(false)

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterImpl.java?rev=931178&r1=931177&r2=931178&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterImpl.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ResourceAdapterImpl.java Tue Apr  6 15:17:57 2010
@@ -33,17 +33,20 @@ public class ResourceAdapterImpl extends
     private final Object m_adapterInterface;
     private final Dictionary m_adapterProperties;
     private final boolean m_propagate;
+    private final Object m_adapterHandler;
 
-    public ResourceAdapterImpl(String resourceFilter, Object adapterImplementation, String adapterInterface, Dictionary adapterProperties, boolean propagate) {
+    public ResourceAdapterImpl(String resourceFilter, Object adapterHandler, Object adapterImplementation, String adapterInterface, Dictionary adapterProperties, boolean propagate) {
         m_resourceFilter = resourceFilter;
+        m_adapterHandler = adapterHandler;
         m_adapterImplementation = adapterImplementation;
         m_adapterInterface = adapterInterface;
         m_adapterProperties = adapterProperties;
         m_propagate = propagate;
     }
 
-    public ResourceAdapterImpl(String resourceFilter, Object adapterImplementation, String[] adapterInterfaces, Dictionary adapterProperties, boolean propagate) {
+    public ResourceAdapterImpl(String resourceFilter, Object adapterHandler, Object adapterImplementation, String[] adapterInterfaces, Dictionary adapterProperties, boolean propagate) {
         m_resourceFilter = resourceFilter;
+        m_adapterHandler = adapterHandler;
         m_adapterImplementation = adapterImplementation;
         m_adapterInterface = adapterInterfaces;
         m_adapterProperties = adapterProperties;
@@ -68,6 +71,7 @@ public class ResourceAdapterImpl extends
             return m_manager.createService()
                 .setInterface((String) m_adapterInterface, props)
                 .setImplementation(m_adapterImplementation)
+                .setCallbacks(m_adapterHandler, "init", "start", "stop", "destroy")
                 .add(dependencies)
                 .add(m_manager.createResourceDependency()
                     .setResource(resource)
@@ -81,6 +85,7 @@ public class ResourceAdapterImpl extends
             return m_manager.createService()
                 .setInterface((String[]) m_adapterInterface, props)
                 .setImplementation(m_adapterImplementation)
+                .setCallbacks(m_adapterHandler, "init", "start", "stop", "destroy")
                 .add(dependencies)
                 .add(m_manager.createResourceDependency()
                     .setResource(resource)

Modified: felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java?rev=931178&r1=931177&r2=931178&view=diff
==============================================================================
--- felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java (original)
+++ felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java Tue Apr  6 15:17:57 2010
@@ -411,7 +411,7 @@ public class ComponentManager implements
         Class<?> serviceClass = b.loadClass(service);
         Dictionary<String, String> properties = parser.getDictionary(DescriptorParam.properties, null);
         boolean propagate = "true".equals(parser.getString(DescriptorParam.propagate, "false"));
-        Service srv = dm.createResourceAdapterService(filter, serviceClass.getName(), properties, impl, propagate);  
+        Service srv = dm.createResourceAdapterService(filter, null, serviceClass.getName(), properties, impl, propagate);  
         setCommonServiceParams(srv, parser);
         return srv;
     }