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;
}