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