Updated the POM and cleaned up some code (documentation) in preparation for the release.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@738617 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/pom.xml b/dependencymanager/pom.xml
index a0a10aa..e67e36d 100644
--- a/dependencymanager/pom.xml
+++ b/dependencymanager/pom.xml
@@ -27,19 +27,19 @@
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
<name>Apache Felix Dependency Manager</name>
- <version>1.1.0-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
<artifactId>org.apache.felix.dependencymanager</artifactId>
<dependencies>
<dependency>
<groupId>${pom.groupId}</groupId>
<artifactId>org.osgi.core</artifactId>
- <version>1.0.0</version>
+ <version>1.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>${pom.groupId}</groupId>
<artifactId>org.osgi.compendium</artifactId>
- <version>1.0.0</version>
+ <version>1.2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
diff --git a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/Service.java b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/Service.java
index cbd98b5..dddc800 100644
--- a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/Service.java
+++ b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/Service.java
@@ -54,6 +54,7 @@
* @return this service
*/
public Service setInterface(String serviceName, Dictionary properties);
+
/**
* Sets the public interfaces under which this service should be registered
* in the OSGi service registry.
@@ -217,8 +218,10 @@
* method to invoke. The method should return the implementation, and can
* use any method to create it. Actually, this can be used together with
* <code>setComposition</code> to create a composition of instances that
- * work together to implement a service. The factory method is called on
- * ??? TODO ???
+ * work together to implement a service.
+ * <p>
+ * Note that currently, there is no default for the factory, so please use
+ * <code>setFactory(factory, createMethod)</code> instead.
*
* @param createMethod the name of the create method
*/
diff --git a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponent.java b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponent.java
index 9f31891..2d70ea7 100644
--- a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponent.java
+++ b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponent.java
@@ -19,15 +19,24 @@
package org.apache.felix.dependencymanager;
/**
- * Describes a service component.
+ * Describes a service component. Service components form descriptions of services
+ * that are managed by the dependency manager. They can be used to query their state
+ * for monitoring tools. The dependency manager shell command is an example of
+ * such a tool.
*
* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
*/
public interface ServiceComponent {
+ /** Names for the states of this component. */
public static final String[] STATE_NAMES = { "unregistered", "registered" };
+ /** State constant for an unregistered component. */
public static final int STATE_UNREGISTERED = 0;
+ /** State constant for a registered component. */
public static final int STATE_REGISTERED = 1;
+ /** Returns a list of dependencies associated with this service component. */
public ServiceComponentDependency[] getComponentDependencies();
+ /** Returns the name of this service component. */
public String getName();
+ /** Returns the state of this service component. */
public int getState();
}
diff --git a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponentDependency.java b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponentDependency.java
index ac99254..53c13ac 100644
--- a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponentDependency.java
+++ b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceComponentDependency.java
@@ -19,22 +19,33 @@
package org.apache.felix.dependencymanager;
/**
- * Describes a service component dependency.
+ * Describes a service component dependency. They form descriptions of dependencies
+ * that are managed by the dependency manager. They can be used to query their state
+ * for monitoring tools. The dependency manager shell command is an example of
+ * such a tool.
*
* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
*/
public interface ServiceComponentDependency {
+ /** Names for the states of this dependency. */
public static final String[] STATE_NAMES = {
"optional unavailable",
"optional available",
"required unavailable",
"required available"
};
+ /** State constant for an unavailable, optional dependency. */
public static final int STATE_UNAVAILABLE_OPTIONAL = 0;
+ /** State constant for an available, optional dependency. */
public static final int STATE_AVAILABLE_OPTIONAL = 1;
+ /** State constant for an unavailable, required dependency. */
public static final int STATE_UNAVAILABLE_REQUIRED = 2;
+ /** State constant for an available, required dependency. */
public static final int STATE_AVAILABLE_REQUIRED = 3;
+ /** Returns the name of this dependency. */
public String getName();
+ /** Returns the name of the type of this dependency. */
public String getType();
+ /** Returns the state of this dependency. */
public int getState();
}
diff --git a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
index 8a4d6e1..7b81464 100644
--- a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
+++ b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
@@ -571,7 +571,6 @@
return this;
}
-
private void ensureNotActive() {
if (m_tracker != null) {
throw new IllegalStateException("Cannot modify state while active.");
diff --git a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
index a9a744c..a50dfac 100644
--- a/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
+++ b/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
@@ -568,9 +568,9 @@
}
}
else {
- // TODO!!!! where does the factory come from if not explicitly defined
- // could be the activator?
- // could be ???
+ // TODO review if we want to try to default to something if not specified
+ // for now the JavaDoc of setFactory(method) reflects the fact that we need
+ // to review it
}
if (factory == null) {
m_logger.log(Logger.LOG_ERROR, "Factory cannot be null.");