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 2016/09/08 10:49:34 UTC
svn commit: r1759776 - in /felix/trunk/dependencymanager:
org.apache.felix.dependencymanager.annotation/
org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/
org.apache.felix.dependencymanager.annotation/src/org/apache/...
Author: pderop
Date: Thu Sep 8 10:49:34 2016
New Revision: 1759776
URL: http://svn.apache.org/viewvc?rev=1759776&view=rev
Log:
FELIX-5238: ConfigurationDependency should provide the setRequired() method.
Modified:
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ConfigurationDependency.java
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/packageinfo
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd?rev=1759776&r1=1759775&r2=1759776&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd Thu Sep 8 10:49:34 2016
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-Bundle-Version: 4.1.1
+Bundle-Version: 4.2.0
-buildpath: \
osgi.core;version=4.2,\
de.twentyeleven.skysail.org.json-osgi;version=20080701.0,\
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ConfigurationDependency.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ConfigurationDependency.java?rev=1759776&r1=1759775&r2=1759776&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ConfigurationDependency.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ConfigurationDependency.java Thu Sep 8 10:49:34 2016
@@ -29,7 +29,7 @@ import java.util.Map;
/**
* Annotates a method for injecting a Configuration Dependency. A configuration dependency
- * is always required, and allows you to depend on the availability of a valid configuration
+ * is required by default, and allows you to depend on the availability of a valid configuration
* for your component. This dependency requires the OSGi Configuration Admin Service.
*
* The annotation can be applied on a callback method which accepts the following parameters:
@@ -62,7 +62,7 @@ import java.util.Map;
* String ipAddress();
*
* @AD(description = "Enter the printer address port number.")
- * int portNumber();
+ * default int portNumber() { return 8080; }
* }
* </pre>
* </blockquote>
@@ -220,6 +220,15 @@ public @interface ConfigurationDependenc
*/
String name() default "";
+ /**
+ * Sets the required flag which determines if this configuration dependency is required or not.
+ * A configuration dependency is required by default.
+ *
+ * @param required the required flag
+ * @return this service dependency
+ */
+ boolean required() default true;
+
/**
* The label used to display the tab name (or section) where the properties are displayed. Example: "Printer Service".
* @return The label used to display the tab name where the properties are displayed.
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/packageinfo
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/packageinfo?rev=1759776&r1=1759775&r2=1759776&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/packageinfo (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/packageinfo Thu Sep 8 10:49:34 2016
@@ -1 +1 @@
-version 1.1.0
\ No newline at end of file
+version 1.2.0
\ No newline at end of file
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java?rev=1759776&r1=1759775&r2=1759776&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java Thu Sep 8 10:49:34 2016
@@ -710,6 +710,9 @@ public class AnnotationCollector extends
// propagate attribute
writer.putString(annotation, EntryParam.propagate, null);
+
+ // required flag (true by default)
+ writer.putString(annotation, EntryParam.required, Boolean.TRUE.toString());
// Property Meta Types
parseMetaTypes(annotation, pid, false);
Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java?rev=1759776&r1=1759775&r2=1759776&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/src/org/apache/felix/dm/runtime/DependencyBuilder.java Thu Sep 8 10:49:34 2016
@@ -143,10 +143,11 @@ public class DependencyBuilder
String pid = m_metaData.getString(Params.pid);
boolean propagate = "true".equals(m_metaData.getString(Params.propagate, "false"));
String callback = m_metaData.getString(Params.updated, "updated");
- return createConfigurationDependency(dm, b, pid, callback, confProxyType, propagate);
+ boolean required = "true".equals(m_metaData.getString(Params.required, "true"));
+ return createConfigurationDependency(dm, b, pid, callback, confProxyType, propagate, required);
}
- private Dependency createConfigurationDependency(DependencyManager dm, Bundle b, String pid, String callback, String confProxyType, boolean propagate)
+ private Dependency createConfigurationDependency(DependencyManager dm, Bundle b, String pid, String callback, String confProxyType, boolean propagate, boolean required)
throws ClassNotFoundException
{
if (pid == null)
@@ -166,6 +167,7 @@ public class DependencyBuilder
cd.setCallback(callback);
}
cd.setPropagate(propagate);
+ cd.setRequired(required);
return cd;
}