You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2010/03/06 23:32:26 UTC
svn commit: r919864 - in
/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime:
ComponentManager.java DescriptorEntry.java
Author: pderop
Date: Sat Mar 6 22:32:26 2010
New Revision: 919864
URL: http://svn.apache.org/viewvc?rev=919864&view=rev
Log:
Fixed bug when parsing BundleDependency's propagate attribute. Added ResourceAdapter and ResourceDependency annotations.
Modified:
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java
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=919864&r1=919863&r2=919864&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 Sat Mar 6 22:32:26 2010
@@ -31,6 +31,7 @@
import org.apache.felix.dm.dependencies.BundleDependency;
import org.apache.felix.dm.dependencies.ConfigurationDependency;
import org.apache.felix.dm.dependencies.Dependency;
+import org.apache.felix.dm.dependencies.ResourceDependency;
import org.apache.felix.dm.dependencies.ServiceDependency;
import org.apache.felix.dm.dependencies.TemporalServiceDependency;
import org.apache.felix.dm.service.Service;
@@ -164,6 +165,10 @@
service = createBundleAdapterService(b, dm, parser);
break;
+ case ResourceAdapterService:
+ service = createResourceAdapterService(b, dm, parser);
+ break;
+
case ServiceDependency:
checkServiceParsed(service);
service.add(createServiceDependency(b, dm, parser, false));
@@ -183,6 +188,11 @@
checkServiceParsed(service);
service.add(createBundleDependency(b, dm, parser));
break;
+
+ case ResourceDependency:
+ checkServiceParsed(service);
+ service.add(createResourceDependency(b, dm, parser));
+ break;
}
}
@@ -386,6 +396,27 @@
}
/**
+ * Creates a Resource Adapter Service.
+ * @param b
+ * @param dm
+ * @param parser
+ * @return
+ */
+ private Service createResourceAdapterService(Bundle b, DependencyManager dm, DescriptorParser parser)
+ throws ClassNotFoundException
+ {
+ String filter = parser.getString(DescriptorParam.filter, null);
+ Class<?> impl = b.loadClass(parser.getString(DescriptorParam.impl));
+ String service = parser.getString(DescriptorParam.service);
+ 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, properties, impl, propagate);
+ setCommonServiceParams(srv, parser);
+ return srv;
+ }
+
+ /**
* Creates a ServiceDependency that we parsed from a component descriptor "ServiceDependency" entry.
* @param b
* @param dm
@@ -510,7 +541,33 @@
}
// propagate
- bd.setPropagate("true".equals(parser.getString(DescriptorParam.stateMask, "false")));
+ bd.setPropagate("true".equals(parser.getString(DescriptorParam.propagate, "false")));
return bd;
}
-}
+
+ private Dependency createResourceDependency(Bundle b, DependencyManager dm,
+ DescriptorParser parser)
+ {
+ ResourceDependency rd = dm.createResourceDependency();
+
+ // Set add/changed/removed
+ String added = parser.getString(DescriptorParam.added, null);
+ String changed = parser.getString(DescriptorParam.changed, null);
+ String removed = parser.getString(DescriptorParam.removed, null);
+ rd.setCallbacks(added, changed, removed);
+
+ // required
+ rd.setRequired("true".equals(parser.getString(DescriptorParam.required, "true")));
+
+ // filter
+ String filter = parser.getString(DescriptorParam.filter, null);
+ if (filter != null)
+ {
+ rd.setFilter(filter);
+ }
+
+ // propagate
+ rd.setPropagate("true".equals(parser.getString(DescriptorParam.propagate, "false")));
+ return rd;
+ }
+}
\ No newline at end of file
Modified: felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java?rev=919864&r1=919863&r2=919864&view=diff
==============================================================================
--- felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java (original)
+++ felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/DescriptorEntry.java Sat Mar 6 22:32:26 2010
@@ -28,8 +28,10 @@
AspectService,
AdapterService,
BundleAdapterService,
+ ResourceAdapterService,
ServiceDependency,
TemporalServiceDependency,
ConfigurationDependency,
- BundleDependency
+ BundleDependency,
+ ResourceDependency
}