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 2018/10/07 22:37:27 UTC

svn commit: r1843098 - in /felix/trunk/dependencymanager: ./ org.apache.felix.dependencymanager.annotation/ org.apache.felix.dependencymanager.annotation/resources/ org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/ o...

Author: pderop
Date: Sun Oct  7 22:37:27 2018
New Revision: 1843098

URL: http://svn.apache.org/viewvc?rev=1843098&view=rev
Log:
FELIX-5939: Fixed some javadocs. FELIX-5955: Move changelog.txt to toplevel project dir.

Added:
    felix/trunk/dependencymanager/changelog.txt
Removed:
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/resources/changelog.txt
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda/resources/changelog.txt
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/resources/changelog.txt
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/resources/changelog.txt
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager/resources/changelog.txt
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/Component.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/ServiceDependency.java
    felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda/bnd.bnd
    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/src/org/apache/felix/dm/ServiceDependency.java

Added: felix/trunk/dependencymanager/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/changelog.txt?rev=1843098&view=auto
==============================================================================
--- felix/trunk/dependencymanager/changelog.txt (added)
+++ felix/trunk/dependencymanager/changelog.txt Sun Oct  7 22:37:27 2018
@@ -0,0 +1,248 @@
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r12
+======================================================================
+
+** List of bundles being part of the release:
+    * org.apache.felix.dependencymanager; version=4.5.0
+    * org.apache.felix.dependencymanager.shell; version=4.0.7
+    * org.apache.felix.dependencymanager.runtime; version=4.0.6
+    * org.apache.felix.dependencymanager.annotation; version=5.0.0
+    * org.apache.felix.dependencymanager.lambda; version=1.2.0
+
+
+** Bug
+    * [FELIX-5683] - getServiceProperties returns null instead of empty dictionary
+    * [FELIX-5716] - Dead Lock in DM
+    * [FELIX-5768] - DM Lambda stop callback not being called
+    * [FELIX-5955] - Move changelog.txt to toplevel project dir
+
+** New Feature
+    * [FELIX-5336] - Add support for prototype scope services in DM4
+
+
+** Improvement
+    * [FELIX-5937] - Refactor DM bndtools/gradle project
+    * [FELIX-5939] - DM annotations enhancements
+    * [FELIX-5941] - DM APi enhancements
+
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r11
+======================================================================
+
+** List of bundles being part of the release:
+    * org.apache.felix.dependencymanager; version=4.4.1
+    * org.apache.felix.dependencymanager.shell; version=4.0.6
+    * org.apache.felix.dependencymanager.runtime; version=4.0.5
+    * org.apache.felix.dependencymanager.annotation; version=4.2.1
+    * org.apache.felix.dependencymanager.lambda; version=1.1.1
+
+** Bug
+    * [FELIX-5630] - NullObject is created for a required dependency if the component is removed and added again to the dependency manager
+    * [FELIX-5636] - Component of aspect service does not have any service properties anymore
+    * [FELIX-5657] - DM released sources can't be rebuilt
+
+** Improvement
+    * [FELIX-5619] - MultiProperyFilterIndex memory consumption
+    * [FELIX-5623] - Improve performance of ComponentImpl.getName method
+    * [FELIX-5650] - Support latest version of Gogo
+    * [FELIX-5653] - Simplify DM-Lambda samples
+    * [FELIX-5658] - Include poms in dm artifacts
+
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r9
+======================================================================
+
+** List of bundles being part of the release:
+    * org.apache.felix.dependencymanager; version=4.4.0
+    * org.apache.felix.dependencymanager.shell; version=4.0.5
+    * org.apache.felix.dependencymanager.runtime; version=4.0.4
+    * org.apache.felix.dependencymanager.annotation; version=4.2.0
+    * org.apache.felix.dependencymanager.lambda; version=1.1.0
+
+** Bug
+    * [FELIX-5236] - Single @Property annotation on a type doesn't work
+    * [FELIX-5242] - Configuration updates may be missed when the component is restarting
+    * [FELIX-5244] - Can't inject service using a method ref on a parent class method.
+    * [FELIX-5245] - Typo in error logged when a component callback is not found.
+    * [FELIX-5268] - Service not unregistered while bundle is starting
+    * [FELIX-5273] - Wrong log when a callback is not found from component instance(s)
+    * [FELIX-5274] - remove callback fails after manually removing dynamic dependencies
+    * [FELIX-5399] - Unable to define default map or list config types
+    * [FELIX-5400] - Can't override default configuration type list value using an empty list
+    * [FELIX-5401] - Can't override default configuration type map value using an empty map
+    * [FELIX-5402] - Factory configuration adapter ignores factory method
+    * [FELIX-5411] - When you stop a component, the service references are not ungotten.
+    * [FELIX-5426] - Remove callbacks aren't called for optional dependencies in a "circular" dependency scenario
+    * [FELIX-5428] - Dependency events set not cleared when component is removed
+    * [FELIX-5429] - Aspect swap callback sometimes not called on optional dependencies
+    * [FELIX-5469] - Methodcache system size property is not used
+    * [FELIX-5471] - Ensure that unbound services are always handled synchronously
+    * [FELIX-5517] - @Inject annotation ignored when applied on ServiceRegistration
+    * [FELIX-5519] - services are not ungotten when swapped by an aspect
+    * [FELIX-5523] - required dependencies added to a started adapter (or aspect) are not injected
+
+
+
+
+** Improvement
+    * [FELIX-5228] - Upgrade DM With latest release of BndTools
+    * [FELIX-5237] - Configurable invocation handler should use default method values
+    * [FELIX-5346] - Start annotation not propagated to sub classes
+    * [FELIX-5355] - Allow to use properties having dots with configuration proxies
+    * [FELIX-5403] - Improve the Javadoc for org.apache.felix.dm.ComponentStateListener
+    * [FELIX-5405] - Do not have org.apache.felix.dm.Logger invoke toString() of message parameters when enabled log level is not high enough 
+    * [FELIX-5406] - DM lambda fluent service properties don't support dots
+    * [FELIX-5407] - DM annotation plugin generates temp log files even if logging is disabled
+    * [FELIX-5408] - Parallel DM should not stop components asynchronously
+    * [FELIX-5467] - MultiPropertyFilterIndex is unusable when a service reference contains a lot of values for one key
+    * [FELIX-5499] - Remove usage of json.org from dependency manager
+    * [FELIX-5515] - Upgrade DM to OSGi R6 API
+    * [FELIX-5516] - Allow to not dereference services internally
+    * [FELIX-5518] - Remove all eclipse warnings in DM code
+    * [FELIX-5520] - ComponentStateListener not supported in DM lambda
+    * [FELIX-5521] - add more callback method signature in DM lambda service dependency callbacks
+    * [FELIX-5522] - Refactor aspect service implementation
+    * [FELIX-5524] - add more signatures for aspect swap callbacks
+    * [FELIX-5526] - Allow to use generic custom DM dependencies when using dm lambda.
+    * [FELIX-5531] - Document dependency callback signatures
+    * [FELIX-5532] - Swap callback is missing in @ServiceDependency annotation
+
+
+
+** Task
+    * [FELIX-5533] - Fix a semantic versioning issue when releasing dependency manager
+
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r8
+======================================================================
+
+** Bug
+    * [FELIX-5146] - Service adapters turn on autoconf even if callbacks are used
+    * [FELIX-5147] - Bundle Adapter auto configures class fields even if callbacks are used
+    * [FELIX-5153] - DM4 calls stop before ungetService() on ServiceFactory components
+    * [FELIX-5155] - Adapter/Aspect extra service dependencies injected twice if using callback instance
+    * [FELIX-5178] - Make some component parameters as volatile
+    * [FELIX-5181] - Only log info/debug if dm annotation log parameter is enabled
+    * [FELIX-5187] - No errog log when configuration dependency callback is not found
+    * [FELIX-5188] - No error log when a factory pid adapter update callback is not found
+    * [FELIX-5192] - ConfigurationDependency race condition when component is stopped
+    * [FELIX-5193] - Factory Pid Adapter race condition when component is stopped
+    * [FELIX-5200] - Factory configuration adapter not restarted
+
+
+** New Feature
+    * [FELIX-4689] - Create a more fluent syntax for the dependency manager builder
+
+
+** Improvement
+    * [FELIX-5126] - Build DM using Java 8
+    * [FELIX-5164] - Add support for callback instance in Aspects
+    * [FELIX-5177] - Support injecting configuration proxies
+    * [FELIX-5180] - Support for Java8 Repeatable Properties in DM annotations.
+    * [FELIX-5182] - Cleanup DM samples
+    * [FELIX-5201] - Improve how components are displayed with gogo shell
+
+
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r6
+======================================================================
+
+** Bug
+    * [FELIX-4974] - DM filter indices not enabled if the dependencymanager bundle is started first
+    * [FELIX-5045] - DM Optional callbacks may sometimes be invoked before start callback
+    * [FELIX-5046] - Gradle wrapper is not included in DM source release
+
+
+
+
+** Improvement
+    * [FELIX-4921] - Ensure binary equality of the same bundle between successive DM releases
+    * [FELIX-4922] - Simplify DM changelog management 
+    * [FELIX-5054] - Clean-up instance bound dependencies when component is destroyed
+    * [FELIX-5055] - Upgrade DM to BndTools 3.0.0
+    * [FELIX-5104] - Call a conf dependency callback Instance with an instantiated component
+    * [FELIX-5113] - Remove useless wrong test in ConfigurationDependencyImpl
+    * [FELIX-5114] - Schedule configuration update in Component executor synchronously
+
+Release Notes - Felix - Version  org.apache.felix.dependencymanager-r5:
+======================================================================
+
+Release Notes - Felix - Version   org.apache.felix.dependencymanager-r5
+
+
+
+** Bug
+    * [FELIX-4907] - ConfigurationDependency calls updated(null) when component is stopped.
+    * [FELIX-4910] - ComponentExecutorFactory does not allow to return null from getExecutorFor method.
+    * [FELIX-4913] - DM Optional callbacks may sometimes be invoked twice
+
+
+
+
+** Improvement
+    * [FELIX-4876] - DM Annotations bnd plugin compatibility with Bndtools 2.4.1 / 3.0.0 versions
+    * [FELIX-4877] - DM Annotations should detect service type using more method signatures.
+    * [FELIX-4915] - Skip unecessary manifest headers in DM bnd file
+
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r3:
+=====================================================================
+
+** Bug
+    * [FELIX-4858] - DependencyManager: missing createCopy method in timed service dependency
+    * [FELIX-4869] - Callbacks not invoked for dependencies that are added after the component is initialized
+
+
+
+
+** Improvement
+    * [FELIX-4614] - Factory create() method should have access to the component definition
+    * [FELIX-4873] - Enhance DM API to get missing and circular dependencies
+    * [FELIX-4878] - Support more signatures for Dependency callbacks
+    * [FELIX-4880] - Missing callback instance support for some adapters
+    * [FELIX-4889] - Refactor dm shell command to use the org.apache.dm.diagnostics api
+
+
+** Wish
+    * [FELIX-4875] - Update DM integration test with latest ConfigAdmin
+
+
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r2:
+=====================================================================
+
+** Bug
+    * [FELIX-4832] - ClassCastException with autoconfig Iterable fields
+    * [FELIX-4833] - Revisit some javadocs in the DM annotations.
+
+Release Notes - Felix - Version org.apache.felix.dependencymanager-r1:
+======================================================================
+
+** Bug
+    * [FELIX-4304] - DependencyManager ComponentImpl should not assume all service properties are stored in a Hashtable
+    * [FELIX-4394] - Race problems in DependencyManager Configuration Dependency
+    * [FELIX-4588] - createCopy method ConfigurationDependency produces a malfunctioning clone
+    * [FELIX-4594] - Propagation from dependencies overwrites service properties
+    * [FELIX-4598] - BundleDependency can effectively track only one bundle
+    * [FELIX-4602] - TemporalServiceDependency does not properly propagate RuntimeExceptions
+    * [FELIX-4709] - Incorrect Named Dependencies are binded to the Service Instance
+
+
+** New Feature
+    * [FELIX-4426] - Allow DM to manage collections of services
+    * [FELIX-4807] - New thread model for Dependency Manager
+
+
+** Improvement
+    * [FELIX-3914] - Log unsuccessful field injections
+    * [FELIX-4158] - ComponentDeclaration should give access to component information
+    * [FELIX-4667] - "top" command for the Dependency Manager Shell
+    * [FELIX-4672] - Allow callbacks to third party instance for adapters
+    * [FELIX-4673] - Log any error thrown when trying to create a null object.
+    * [FELIX-4777] - Dynamic initialization time configuration of @ConfigurationDependency 
+    * [FELIX-4805] - Deprecate DM annotation metatypes
+
+
+** Wish
+    * [FELIX-2706] - Support callback delegation for Configuration Dependecies
+    * [FELIX-4600] - Cherrypicking of propagated properties
+    * [FELIX-4676] - Add Provide-Capability for DependencyManager Runtime bundle
+    * [FELIX-4680] - Add more DM ServiceDependency callback signatures
+    * [FELIX-4683] - Allow to configure the DependencyManager shell scope
+    * [FELIX-4684] - Replace DependencyManager Runtime "factorySet" by a cleaner API
+    * [FELIX-4816] - bndtools-ify Dependency Manager
+    * [FELIX-4818] - New release process for Dependency Manager
+

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=1843098&r1=1843097&r2=1843098&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd Sun Oct  7 22:37:27 2018
@@ -21,7 +21,7 @@ Bundle-Version: 5.0.0
 	biz.aQute.bndlib;version=3.5
 Private-Package: org.apache.felix.dm.annotation.plugin.bnd
 Export-Package: org.apache.felix.dm.annotation.api
-Include-Resource: META-INF/=resources/
+Include-Resource: META-INF/=resources/,META-INF/changelog.txt=${workspace}/changelog.txt
 Bundle-Name: Apache Felix Dependency Manager Annotations
 Bundle-Description: Annotations for Apache Felix Dependency Manager
 Bundle-Category: osgi

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Component.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Component.java?rev=1843098&r1=1843097&r2=1843098&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Component.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.annotation/src/org/apache/felix/dm/annotation/api/Component.java Sun Oct  7 22:37:27 2018
@@ -56,7 +56,7 @@ import java.lang.annotation.Target;
  *   
  *     @Start
  *     void start() {
- *         // Our component is starting and is about to be registered in the OSGi registry as a Z service.
+ *         // Our component is starting and is about to be registered in the OSGi registry as a HelloService service.
  *     }   
  * }
  * </pre>

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=1843098&r1=1843097&r2=1843098&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 Sun Oct  7 22:37:27 2018
@@ -32,8 +32,18 @@ import java.lang.annotation.Target;
  * 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.
+ * After the init method returns, the added or configured dependencies are then tracked, and when all 
+ * dependencies are injected, then the start method (annotated with @Start) is invoked.
+ * 
+ * The method annotated with @Init may have the following signatures,
+ * <ol>
+ * <li>void init(Component component)</li>
+ * <li>void init()</li>
+ * <li>Map<String, String> init(Component component)</li>
+ * <li>Map<String, String> init()</li>
+ * </ol>
+ * 
+ * When the init method defines a Component argument, it can then be used by the method to add more dependencie using the Dependency Manager API.
  * 
  * <h3>Usage Examples</h3>
  * In this sample, the "PersistenceImpl" component dynamically configures the "storage" dependency from the "init" method. 
@@ -42,14 +52,9 @@ import java.lang.annotation.Target;
  * 
  * <blockquote>
  * <pre>
- * 
  * &#64;Component
  * public class PersistenceImpl implements Persistence {
  *     // Injected before init.
- *     &#64;ServiceDependency
- *     LogService log;
- *     
- *     // Injected before init.
  *     &#64;ConfigurationDependency
  *     void updated(Dictionary conf) {
  *        if (conf != null) {
@@ -60,20 +65,106 @@ import java.lang.annotation.Target;
  *     // 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
  *     Map&#60;String, String&#62; init() {
- *        log.log(LogService.LOG_WARNING, "init: storage type=" + storageType + ", storageRequired=" + storageRequired);
  *        Map&#60;String, String&#62; props = new HashMap&#60;&#62;();
  *        props.put("storage.required", Boolean.toString(_xmlConfiguration.isStorageRequired()))
  *        props.put("storage.filter", "(type=" + _xmlConfiguration.getStorageType() + ")");
  *        return props;       
  *     }
+ *  
+ *     // Injected after init (dependency filter is defined dynamically from our init method).
+ *     &#64;ServiceDependency(name="storage")
+ *     Storage storage;
+ * 
+ *     // All dependencies injected, including dynamic dependencies defined from init method.
+ *     &#64;Start
+ *     void start() {
+ *        log.log(LogService.LOG_WARNING, "start");
+ *     }
+ * 
+ *     &#64;Override
+ *     void store(String key, String value) {
+ *        storage.store(key, value);
+ *     }
+ * }
+ * </pre>
+ * </blockquote>
+ * 
+ * Same example as above, but this time the dependency is added from the init method using the Dependency Manager API:
+ * 
+ * <blockquote>
+ * <pre>
+ * &#64;Component
+ * public class PersistenceImpl implements Persistence {
+ *     // 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;
+ *  
+ *     // Dynamically configure the dependency declared with a "storage" name.
+ *     &#64;Init
+ *     void init(org.apache.felix.dm.Comppnent myComponent) {
+ *        boolean required = _xmlConfiguration.isStorageRequired();
+ *        String filter =  _xmlConfiguration.getStorageType();
+ *        DependencyManager dm = myComponent.getDependencyManager();
+ *        myComponent.add(dm.createServiceDependency().setService(Storage.class, filter).setRequired(required));
+ *     }
+ *  
+ *     // Injected after init, later, when the dependency added from the init() method is satisfied
+ *     volatile Storage storage;
+ * 
+ *     // All dependencies injected, including dynamic dependencies defined from init method.
+ *     &#64;Start
+ *     void start() {
+ *        log.log(LogService.LOG_WARNING, "start");
+ *     }
+ * 
+ *     &#64;Override
+ *     void store(String key, String value) {
+ *        storage.store(key, value);
+ *     }
+ * }
+ * </pre>
+ * </blockquote>
+ * 
+ * Same example as above, but this time the dependency is added from the init method using the Dependency Manager Lambda:
+ * 
+ * <blockquote>
+ * <pre>
+ * import static org.apache.felix.dm.lambda.DependencyManagerActivator.component;
+ * 
+ * &#64;Component
+ * public class PersistenceImpl implements Persistence {
+ *     // 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;
+ *  
+ *     // Dynamically configure the dependency declared with a "storage" name.
+ *     &#64;Init
+ *     void init(org.apache.felix.dm.Comppnent myComponent) {
+ *        boolean required = _xmlConfiguration.isStorageRequired();
+ *        String filter =  _xmlConfiguration.getStorageType();
+ *        component(myComponent, comp -> comp.withSvc(Storage.class, filter, required));
+ *     }
+ *  
+ *     // Injected after init, later, when the dependency added from the init() method is satisfied
+ *     volatile Storage storage;
+ * 
  *     // All dependencies injected, including dynamic dependencies defined from init method.
  *     &#64;Start
  *     void start() {

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=1843098&r1=1843097&r2=1843098&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 Sun Oct  7 22:37:27 2018
@@ -41,7 +41,7 @@ import java.lang.annotation.Target;
  * (ServiceReference ref, Object service)
  * (ServiceReference ref)
  * (Service service)
- * (Service service, Map propeerties)
+ * (Service service, Map properties)
  * (Map properties, Service, service)
  * (Service service, Dictionary properties)
  * (Dictionary properties, Service service)
@@ -70,7 +70,7 @@ import java.lang.annotation.Target;
  * <p> When the dependency is injected on a class field, the following field types are supported:
  * 
  * <ul>
- * <li> a field having the same type as the dependency. If the field may be accessed by anythread, then the field should be declared volatile, in order to ensure visibility 
+ * <li> a field having the same type as the dependency. If the field may be accessed by any thread, then the field should be declared volatile, in order to ensure visibility 
  *      when the field is auto injected concurrently.
  * <li> a field which is assignable to an  {@literal Iterable<T>} where T must match the dependency type. In this case, an Iterable will be injected by DependencyManager before the start 
  *      callback is called. The Iterable field may then be traversed to inspect the currently available dependency services. The Iterable can possibly be set to a final value 
@@ -91,6 +91,26 @@ import java.lang.annotation.Target;
  * }
  * </pre></blockquote>
  * 
+ * The dependency can also be injected using a method callback:
+ * 
+ * <blockquote><pre>
+ * &#64;Component
+ * class MyComponent {
+ *     &#64;ServiceDependency
+ *     void bind(MyDependency dependency) {}
+ * }
+ * </pre></blockquote>
+ * 
+ * Same example as before, but the callback signatures includes service properties:
+ * 
+ * <blockquote><pre>
+ * &#64;Component
+ * class MyComponent {
+ *     &#64;ServiceDependency
+ *     void bind(MyDependency dependency, Map&lt;String, Object&gt; serviceProperties) {}
+ * }
+ * </pre></blockquote>
+ * 
  * Another example, were we inject multiple dependencies to an Iterable field
  * 
  * <blockquote><pre>

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda/bnd.bnd?rev=1843098&r1=1843097&r2=1843098&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda/bnd.bnd Sun Oct  7 22:37:27 2018
@@ -28,4 +28,4 @@ Export-Package: \
 -runfw: org.apache.felix.framework;version='[4.4.1,4.4.1]'
 -runee: JavaSE-1.8
 Private-Package: org.apache.felix.dm.lambda.impl
-Include-Resource: META-INF/=resources/
+Include-Resource: META-INF/=resources/,META-INF/changelog.txt=${workspace}/changelog.txt

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=1843098&r1=1843097&r2=1843098&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.runtime/bnd.bnd Sun Oct  7 22:37:27 2018
@@ -26,7 +26,7 @@ Export-Package:  \
 	org.apache.felix.dm.runtime.api
 Provide-Capability: osgi.extender; osgi.extender="org.apache.felix.dependencymanager.runtime";\
 	uses:="org.apache.felix.dm";version:Version="4.0.0"
-Include-Resource: META-INF/=resources/
+Include-Resource: META-INF/=resources/,META-INF/changelog.txt=${workspace}/changelog.txt
 Bundle-Name: Apache Felix Dependency Manager Runtime
 Bundle-Description: Loads Apache Felix Dependency Manager component descriptors from active \
 	annoted bundles

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=1843098&r1=1843097&r2=1843098&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager.shell/bnd.bnd Sun Oct  7 22:37:27 2018
@@ -25,7 +25,7 @@ Private-Package: \
 	org.apache.felix.dm.shell
 Bundle-Activator:org.apache.felix.dm.shell.Activator
 Bundle-Version: 4.0.7
-Include-Resource: META-INF/=resources/
+Include-Resource: META-INF/=resources/,META-INF/changelog.txt=${workspace}/changelog.txt
 Bundle-Name: Apache Felix Dependency Manager Shell
 Bundle-Description: Gogo Shell commands for Apache Felix Dependency Manager
 Bundle-Category: osgi

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=1843098&r1=1843097&r2=1843098&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager/bnd.bnd (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager/bnd.bnd Sun Oct  7 22:37:27 2018
@@ -31,7 +31,7 @@ Export-Package:  \
 	org.apache.felix.dm.tracker,\
 	org.apache.felix.dm.context,\
 	org.apache.felix.dm.diagnostics
-Include-Resource: META-INF/=resources/
+Include-Resource: META-INF/=resources/,META-INF/changelog.txt=${workspace}/changelog.txt
 Import-Package: !org.junit,!org.mockito.*,org.osgi.framework;version="[1.8, 2)",*
 Bundle-Activator: org.apache.felix.dm.impl.Activator
 Bundle-Version: 4.5.0

Modified: felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/ServiceDependency.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/ServiceDependency.java?rev=1843098&r1=1843097&r2=1843098&view=diff
==============================================================================
--- felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/ServiceDependency.java (original)
+++ felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/ServiceDependency.java Sun Oct  7 22:37:27 2018
@@ -172,7 +172,7 @@ public interface ServiceDependency exten
      * can possibly be set to a final value so you can choose the Iterable implementation of your choice
      * (for example, a CopyOnWrite ArrayList, or a ConcurrentLinkedQueue).
      * 
-     * <li> a <code>Map&#60;K,V&#62;</code> where K must match the dependency type and V must exactly equals <code>Dictionary</code>. 
+     * <li> a <code>Map&#60;K,V&#62;</code> where K must match the dependency type and V must exactly be equal to <code>Dictionary</code>. 
      * In this case, a ConcurrentHashMap will be injected by DependencyManager before the start callback is called.
      * The Map may then be consulted to lookup current available dependency services, including the dependency service
      * properties (the map key holds the dependency service, and the map value holds the dependency service properties).