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 2015/03/19 20:39:07 UTC

svn commit: r1667855 - in /felix/trunk/dependencymanager: cnf/localrepo/ cnf/releaserepo/ cnf/releaserepo/org.apache.felix.dependencymanager.annotation/ cnf/releaserepo/org.apache.felix.dependencymanager.runtime/ cnf/releaserepo/org.apache.felix.depend...

Author: pderop
Date: Thu Mar 19 19:39:06 2015
New Revision: 1667855

URL: http://svn.apache.org/r1667855
Log:
Removed core/runtime/shell 3.2.0 bundles from the release repo, and replaced them by the new 4.0.0 version.
Added annotation 4.0.0 in release repo.
FELIX-4833: Fixed some javadocs in the annotations.
Updated changelogs with FELIX-4833, and FELIX-4832.
Updated runtime version to 4.0.1 (automatic baselining).
Updated core version to 4.0.1 (automatic baselining).

Added:
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.annotation/
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.annotation/org.apache.felix.dependencymanager.annotation-4.0.0.jar   (with props)
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.runtime/org.apache.felix.dependencymanager.runtime-4.0.0.jar   (with props)
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.shell/org.apache.felix.dependencymanager.shell-4.0.0.jar   (with props)
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager/org.apache.felix.dependencymanager-4.0.0.jar   (with props)
Removed:
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.runtime/org.apache.felix.dependencymanager.runtime-3.2.0.jar
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.shell/org.apache.felix.dependencymanager.shell-3.2.0.jar
    felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager/org.apache.felix.dependencymanager-3.2.0.jar
Modified:
    felix/trunk/dependencymanager/cnf/localrepo/index.xml
    felix/trunk/dependencymanager/cnf/localrepo/index.xml.sha
    felix/trunk/dependencymanager/cnf/releaserepo/index.xml
    felix/trunk/dependencymanager/cnf/releaserepo/index.xml.sha
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/resources/changelog.txt
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/BundleDependency.java
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Init.java
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ResourceDependency.java
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ServiceDependency.java
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/bnd.bnd
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager/bnd.bnd
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager/resources/changelog.txt

Modified: felix/trunk/dependencymanager/cnf/localrepo/index.xml
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/localrepo/index.xml?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
Binary files - no diff available.

Modified: felix/trunk/dependencymanager/cnf/localrepo/index.xml.sha
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/localrepo/index.xml.sha?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/cnf/localrepo/index.xml.sha (original)
+++ felix/trunk/dependencymanager/cnf/localrepo/index.xml.sha Thu Mar 19 19:39:06 2015
@@ -1 +1 @@
-6985dc81e95848d75021052d7dd392b0f3eae258fdc1ed883c10f6b2be40555b
\ No newline at end of file
+2ebc056763851c77351f864aab070f3f7f808fe1fd23c24d7590140705dd0882
\ No newline at end of file

Modified: felix/trunk/dependencymanager/cnf/releaserepo/index.xml
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/releaserepo/index.xml?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
Binary files - no diff available.

Modified: felix/trunk/dependencymanager/cnf/releaserepo/index.xml.sha
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/releaserepo/index.xml.sha?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/cnf/releaserepo/index.xml.sha (original)
+++ felix/trunk/dependencymanager/cnf/releaserepo/index.xml.sha Thu Mar 19 19:39:06 2015
@@ -1 +1 @@
-52327447e0d3fc0d7d29dd203c14473caad9388425a7d7dff83adfcb0d814765
\ No newline at end of file
+c60665646276baa2aeaf7b160059286bf32c4a4f5fefc361135868d07b66a5c9
\ No newline at end of file

Added: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.annotation/org.apache.felix.dependencymanager.annotation-4.0.0.jar
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.annotation/org.apache.felix.dependencymanager.annotation-4.0.0.jar?rev=1667855&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.annotation/org.apache.felix.dependencymanager.annotation-4.0.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/zip

Added: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.runtime/org.apache.felix.dependencymanager.runtime-4.0.0.jar
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.runtime/org.apache.felix.dependencymanager.runtime-4.0.0.jar?rev=1667855&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.runtime/org.apache.felix.dependencymanager.runtime-4.0.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/zip

Added: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.shell/org.apache.felix.dependencymanager.shell-4.0.0.jar
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.shell/org.apache.felix.dependencymanager.shell-4.0.0.jar?rev=1667855&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager.shell/org.apache.felix.dependencymanager.shell-4.0.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/zip

Added: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager/org.apache.felix.dependencymanager-4.0.0.jar
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager/org.apache.felix.dependencymanager-4.0.0.jar?rev=1667855&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/dependencymanager/cnf/releaserepo/org.apache.felix.dependencymanager/org.apache.felix.dependencymanager-4.0.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/zip

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=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd Thu Mar 19 19:39:06 2015
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-Bundle-Version:4.0.0
+Bundle-Version: 4.0.1
 -buildpath:  \
 	osgi.core;version=4.2,\
 	de.twentyeleven.skysail.org.json-osgi;version=20080701.0,\

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/resources/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/resources/changelog.txt?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/resources/changelog.txt (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/resources/changelog.txt Thu Mar 19 19:39:06 2015
@@ -1,3 +1,8 @@
+Release org.apache.felix.dependencymanager.r2:
+---------------------------------------------
+
+FELIX-4833: Revisit some javadocs in the DM annotations.
+
 Release org.apache.felix.dependencymanager.r1:
 ---------------------------------------------
 

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/BundleDependency.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/BundleDependency.java?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/BundleDependency.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/BundleDependency.java Thu Mar 19 19:39:06 2015
@@ -102,6 +102,8 @@ public @interface BundleDependency
      * All unnamed dependencies will be injected before the init() method; so from the init() method, you can
      * then pick up whatever information needed from already injected (unnamed) dependencies, and configure dynamically
      * your named dependencies, which will then be calculated once the init() method returns.
+     * 
+     * <p> See {@link Init} annotation for an example usage of a dependency dynamically configured from the init method.
      */
     String name() default "";
 }

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Init.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Init.java?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Init.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Init.java Thu Mar 19 19:39:06 2015
@@ -24,33 +24,66 @@ import java.lang.annotation.RetentionPol
 import java.lang.annotation.Target;
 
 /**
- * Annotates a method which will be invoked when the Service is initializing.
- * All required dependencies are already injected before the annotated method is called, and 
- * optional dependencies on class fields are injected with NullObjects if the optional
- * dependencies are not currently available.<p>
- * 
- * If some dependencies are declared using a <b>named</b> &#64;{@link ServiceDependency} annotation, 
- * then the annotated method may optionally return a Map used to dynamically configure such 
- * dependencies (Please refer to &#64;{@link ServiceDependency#name()} attribute for more 
- * information about this feature).<p>
- * 
- * After the init method returns, the component is then invoked in the method annotated with
- * &#64;{@link Start}, in order to notify that the component is about to be registered into the OSGi 
- * registry (if this one provides a service). However, you can take control of when the service is registered,
- * using the &#64;{@link LifecycleController} annotation).
+ * Annotates a method used to configure dynamic dependencies.
+ * When this method is invoked, all required dependencies (except the ones declared with a <code>name</code> 
+ * attribute) are already injected, and optional dependencies on class fields 
+ * are also already injected (possibly with NullObjects).<p>
+ * 
+ * The purpose of the @Init method is to either declare more dynamic dependencies using the DM API, or to
+ * return a Map used to dynamically configure dependencies that are annotated using a <code>name</code> attribute. 
+ * 
+ * After the init method returns, the added or configured dependencies are then tracked, and when all dynamic 
+ * dependencies are injected, then the start method (annotated with @Start) is then invoked.
  * 
  * <h3>Usage Examples</h3>
- * Here, the "VideoPlayer" init method is called after the "log" dependency is injected.
+ * In this sample, the "PersistenceImpl" component dynamically configures the "storage" dependency from the "init" method. 
+ * The dependency "required" flag and filter string are derived from an xml configuration that is already injected before the init 
+ * method.
+ * 
  * <blockquote>
  * <pre>
  * 
  * &#64;Component
- * public class VideoPlayer {
+ * public class PersistenceImpl implements Persistence {
+ *     // Injected before init.
  *     &#64;ServiceDependency
  *     LogService log;
  *     
+ *     // Injected before init.
+ *     &#64;ConfigurationDependency
+ *     void updated(Dictionary conf) {
+ *        if (conf != null) {
+ *           _xmlConfiguration = parseXmlConfiguration(conf.get("xmlConfiguration"));
+ *        }
+ *     }
+ *     
+ *     // Parsed xml configuration, where we'll get our storage service filter and required dependency flag.
+ *     XmlConfiguration _xmlConfiguration;
+ *  
+ *     // Injected after init (dependency filter is defined dynamically from our init method).
+ *     &#64;ServiceDependency(name="storage")
+ *     Storage storage;
+ * 
+ *     // Dynamically configure the dependency declared with a "storage" name.
  *     &#64;Init
- *     void init() {} // initialize our service (the "log" dependency is already injected).
+ *     Map<String, String> init() {
+ *        log.log(LogService.LOG_WARNING, "init: storage type=" + storageType + ", storageRequired=" + storageRequired);
+ *        Map<String, String> props = new HashMap<>();
+ *        props.put("storage.required", Boolean.toString(_xmlConfiguration.isStorageRequired()))
+ *        props.put("storage.filter", "(type=" + _xmlConfiguration.getStorageType() + ")");
+ *        return props;       
+ *     }
+ *     
+ *     // All dependencies injected, including dynamic dependencies defined from init method.
+ *     &#64;Start
+ *     void start() {
+ *        log.log(LogService.LOG_WARNING, "start");
+ *     }
+ * 
+ *     @Override
+ *     void store(String key, String value) {
+ *        storage.store(key, value);
+ *     }
  * }
  * </pre>
  * </blockquote>

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ResourceDependency.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ResourceDependency.java?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ResourceDependency.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ResourceDependency.java Thu Mar 19 19:39:06 2015
@@ -150,6 +150,8 @@ public @interface ResourceDependency
      * All unnamed dependencies will be injected before the init() method; so from the init() method, you can
      * then pick up whatever information needed from already injected (unnamed) dependencies, and configure dynamically
      * your named dependencies, which will then be calculated once the init() method returns.
+     * 
+     * <p> See {@link Init} annotation for an example usage of a dependency dynamically configured from the init method.
      */
     String name() default "";   
 }

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ServiceDependency.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ServiceDependency.java?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ServiceDependency.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ServiceDependency.java Thu Mar 19 19:39:06 2015
@@ -126,54 +126,7 @@ public @interface ServiceDependency
      * then pick up whatever information needed from already injected (unnamed) dependencies, and configure dynamically
      * your named dependencies, which will then be calculated once the init() method returns.
      * 
-     * <p> Usage example of a Service whose dependency filter is configured from ConfigAdmin:
-     * 
-     * <blockquote><pre>
-     *  &#47;**
-     *    * A Service whose service dependency "otherService" filter is configured from ConfigAdmin
-     *    *&#47;
-     *  &#64;Service
-     *  class X {
-     *      private Dictionary m_config;
-     *      
-     *      &#47;**
-     *       * Initialize our service from config ... and store the config for later usage (from our init method)
-     *       *&#47; 
-     *      &#64;ConfigurationDependency(pid="MyPid")
-     *      void configure(Dictionary conf) {
-     *           m_config = config;
-     *      }
-     * 
-     *      &#47;**
-     *       * All unnamed dependencies are injected: we can now configure other named
-     *       * dependencies, using the already injected configuration.
-     *       * The returned Map will be used to configure our "otherService" Dependency.
-     *       *&#47;
-     *      &#64;Init
-     *      Map init() {
-     *          return new HashMap() {{
-     *              put("otherService.filter", m_config.get("filter"));
-     *              put("otherService.required", m_config.get("required"));
-     *          }};
-     *      } 
-     *
-     *      &#47;**
-     *       * This named dependency filter/required flag will be configured by our init method (see above).
-     *       *&#47;
-     *      &#64;ServiceDependency(name="otherService") 
-     *      void bindOtherService(OtherService other) {
-     *      }
-     *      
-     *      &#47;**
-     *       * All dependencies are injected and our service is now ready to be published.
-     *       * Notice that you can also use the publisher service attribute if you need 
-     *       * to take control on service exposition.
-     *       *&#47;
-     *      &#64;Start
-     *      void start() {
-     *      }
-     *  }
-     *  </pre></blockquote>
+     * <p> See {@link Init} annotation for an example usage of a dependency dynamically configured from the init method.
      */
     String name() default "";
     

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd Thu Mar 19 19:39:06 2015
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-Bundle-Version: 4.0.0
+Bundle-Version: 4.0.1
 -buildpath: \
 	osgi.core;version=4.2,\
 	osgi.cmpn;version=4.2,\

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/bnd.bnd?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/bnd.bnd Thu Mar 19 19:39:06 2015
@@ -24,7 +24,7 @@
 Private-Package: \
 	org.apache.felix.dm.shell
 Bundle-Activator:org.apache.felix.dm.shell.Activator
-Bundle-Version: 4.0.0
+Bundle-Version: 4.0.1
 Include-Resource: META-INF/=resources/LICENSE,\
 	META-INF/=resources/NOTICE,\
 	META-INF/=resources/DEPENDENCIES,\

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/bnd.bnd?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager/bnd.bnd Thu Mar 19 19:39:06 2015
@@ -34,7 +34,7 @@ Include-Resource: META-INF/=resources/LI
 	META-INF/=resources/changelog.txt
 Import-Package: !org.junit,!org.mockito.*,*
 Bundle-Activator: org.apache.felix.dm.impl.Activator
-Bundle-Version: 4.0.0
+Bundle-Version: 4.0.1
 Bundle-Name: Apache Felix Dependency Manager
 Bundle-Description: Provides dynamic service and component dependency management
 Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager/resources/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/resources/changelog.txt?rev=1667855&r1=1667854&r2=1667855&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager/resources/changelog.txt (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager/resources/changelog.txt Thu Mar 19 19:39:06 2015
@@ -1,3 +1,8 @@
+Release org.apache.felix.dependencymanager.r2:
+---------------------------------------------
+
+FELIX-4832: ClassCastException with autoconfig Iterable fields.
+
 Release org.apache.felix.dependencymanager.r1:
 ---------------------------------------------