fixed javadoc. Added Aspect support
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@907745 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
index 5c0ab85..339d31a 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
@@ -41,7 +41,7 @@
/**
* This class parses service descriptors generated by the annotation bnd processor.
- * The descriptors are located under OSGI-INF/ directory. Such files are actually
+ * The descriptors are located under OSGI-INF/dependencymanager directory. Such files are actually
* referenced by a specific "DependendencyManager-Component" manifest header.
*/
public class ComponentManager implements SynchronousBundleListener
@@ -151,6 +151,10 @@
service = createService(b, dm, parser);
break;
+ case AspectService:
+ service = createAspectService(b, dm, parser);
+ break;
+
case ServiceDependency:
checkServiceParsed(service);
service.add(createServiceDependency(b, dm, parser, false));
@@ -372,4 +376,22 @@
cd.setCallback(callback);
return cd;
}
+
+ /**
+ * Creates an Aspect Service.
+ * @param b
+ * @param dm
+ * @param parser
+ * @return
+ */
+ private Service createAspectService(Bundle b, DependencyManager dm, DescriptorParser parser)
+ throws ClassNotFoundException
+ {
+ Class<?> serviceInterface = b.loadClass(parser.getString(DescriptorParam.service));
+ String serviceFilter = parser.getString(DescriptorParam.filter, null);
+ Class<?> aspectImplementation = b.loadClass(parser.getString(DescriptorParam.impl));
+ Dictionary<String, String> aspectProperties = parser.getDictionary(DescriptorParam.properties, null);
+ Service service = dm.createAspectService(serviceInterface, serviceFilter, aspectImplementation, aspectProperties);
+ return service;
+ }
}