Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java
 Thu Feb 18 21:07:16 2016
@@ -45,13 +45,13 @@ public class FactoryInjectedWithConfigur
         m_e = new Ensure();
         
         // Create the component that creates a configuration.
-        Component configurator = component(m).impl(new 
Configurator("foobar")).withSrv(ConfigurationAdmin.class).build();
+        Component configurator = component(m).impl(new 
Configurator("foobar")).withSvc(ConfigurationAdmin.class).build();
         
         // Create the object that has to be injected with the configuration 
before its create method is called.
         MyFactory factory = new MyFactory();
         
         // Create the Component for the MyComponent class that is created 
using the factory above.
-        Component myComponent = component(m).factory(factory, 
"create").withCnf(b->b.pid("foobar").cbi(factory, "updated")).build();
+        Component myComponent = component(m).factory(factory, 
"create").withCnf(b->b.pid("foobar").update(factory, "updated")).build();
         
         // provide the configuration
         m.add(configurator);
@@ -67,13 +67,13 @@ public class FactoryInjectedWithConfigur
         m_e = new Ensure();
         
         // Create the component that creates a configuration.
-        Component configurator = component(m).impl(new 
Configurator("foobar")).withSrv(ConfigurationAdmin.class).build();
+        Component configurator = component(m).impl(new 
Configurator("foobar")).withSvc(ConfigurationAdmin.class).build();
         
         // Create the object that has to be injected with the configuration 
before its create method is called.
         MyFactory factory = new MyFactory();
         
         // Create the Component for the MyComponent class that is created 
using the factory above.
-        Component myComponent = component(m).factory(factory, 
"create").withCnf(b->b.pid("foobar").cbi(factory::updated)).build();
+        Component myComponent = component(m).factory(factory, 
"create").withCnf(b->b.pid("foobar").update(factory::updated)).build();
         
         // provide the configuration
         m.add(configurator);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/InstanceBoundDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/InstanceBoundDependencyTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/InstanceBoundDependencyTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/InstanceBoundDependencyTest.java
 Thu Feb 18 21:07:16 2016
@@ -46,7 +46,7 @@ public class InstanceBoundDependencyTest
         // Create a "C" component: it depends on some S1 services, and on some 
S2 instance-bound services (declared from C.init() method)        
         C cimpl = new C();
         Component c = component(m).impl(cimpl)
-            .withSrv(S1.class, sb->sb.cb("addS1", "changeS1", 
"removeS1").autoConfig(true)).build();
+            .withSvc(S1.class, 
sb->sb.add("addS1").change("changeS1").remove("removeS1").autoConfig(true)).build();
         m.add(c);
         
         // Add S1 (s1_1): C.add(S1 s1) is called, then init() is called where 
a dependency is declared on S2
@@ -108,6 +108,7 @@ public class InstanceBoundDependencyTest
     }
     
     // Our "C" component: it depends on S1 (required) and S2 
(required/instance bound)
+    // Class tested with reflection based callbacks
     class C {        
         final Map<String, ServiceReference> m_s1Map = new HashMap();
         final Map<String, ServiceReference> m_s2Map = new HashMap();
@@ -150,7 +151,7 @@ public class InstanceBoundDependencyTest
         }
         
         void init(Component c) {
-            component(c, comp->comp.withSrv(S2.class, srv -> srv.cb(C::addS2, 
C::changeS2, C::removeS2)));
+            component(c, comp->comp.withSvc(S2.class, srv -> 
srv.add("addS2").change("changeS2").remove("removeS2")));
             m_e.step(1);
         }
     }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ModifiedBundleDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ModifiedBundleDependencyTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ModifiedBundleDependencyTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ModifiedBundleDependencyTest.java
 Thu Feb 18 21:07:16 2016
@@ -64,7 +64,7 @@ public class ModifiedBundleDependencyTes
 
         void init(Component c) {
             m_e.step(2);
-            component(c, comp -> comp.withSrv(A.class, srv -> srv.cb("add", 
"remove")));
+            component(c, comp -> comp.withSvc(A.class, srv -> 
srv.add("add").remove("remove")));
         }
         
         public void add(A a) {
@@ -105,7 +105,7 @@ public class ModifiedBundleDependencyTes
         String filter = "(Bundle-SymbolicName=org.apache.felix.metatype)";
         int mask = 
Bundle.INSTALLED|Bundle.ACTIVE|Bundle.RESOLVED|Bundle.STARTING;
         Component b = component(m)
-            .provides(B.class).impl(new BImpl(e)).withBundle(bd -> 
bd.filter(filter).mask(mask).cb("add", "change", "remove")).build();        
+            .provides(B.class).impl(new BImpl(e)).withBundle(bd -> 
bd.filter(filter).mask(mask).add("add").change("change").remove("remove")).build();
         
                                                                            
         Bundle dmtest = getBundle("org.apache.felix.metatype");
         try {
@@ -141,7 +141,7 @@ public class ModifiedBundleDependencyTes
         String filter = "(Bundle-SymbolicName=org.apache.felix.metatype)";
         int mask = 
Bundle.INSTALLED|Bundle.ACTIVE|Bundle.RESOLVED|Bundle.STARTING;
         Component b = component(m).provides(B.class).impl(impl)
-            .withBundle(bd -> bd.filter(filter).mask(mask).cbi(impl::add, 
impl::change, impl::remove)).build();                
+            .withBundle(bd -> 
bd.filter(filter).mask(mask).add(impl::add).change(impl::change).remove(impl::remove)).build();
          
         
         Bundle dmtest = getBundle("org.apache.felix.metatype");
         try {

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependenciesTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependenciesTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependenciesTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependenciesTest.java
 Thu Feb 18 21:07:16 2016
@@ -38,8 +38,8 @@ public class MultipleExtraDependenciesTe
          DependencyManager m = getDM();
          // Helper class that ensures certain steps get executed in sequence
          Ensure e = new Ensure();
-         Component c1 = component(m).provides(Service1.class).impl(new 
MyComponent1(e)).withSrv(Service2.class, 
srv->srv.autoConfig("m_service2")).build();
-         Component c2 = component(m).impl(new 
MyComponent2(e)).withSrv(Service1.class, 
srv->srv.required(false).autoConfig(false).cb("added")).build();
+         Component c1 = component(m).provides(Service1.class).impl(new 
MyComponent1(e)).withSvc(Service2.class, 
srv->srv.autoConfig("m_service2")).build();
+         Component c2 = component(m).impl(new 
MyComponent2(e)).withSvc(Service1.class, 
srv->srv.required(false).autoConfig(false).add("added")).build();
          Component c3 = 
component(m).provides(Service2.class).impl(Service2Impl.class).build();
          Component c4 = 
component(m).impl(Service3Impl1.class).provides(Service3.class, type -> 
"xx").build();
          Component c5 = 
component(m).impl(Service3Impl2.class).provides(Service3.class, type -> 
"yy").build();
@@ -72,8 +72,8 @@ public class MultipleExtraDependenciesTe
         DependencyManager m = getDM();
         // Helper class that ensures certain steps get executed in sequence
         Ensure e = new Ensure();
-        Component c1 = component(m).provides(Service1.class).impl(new 
MyComponent1(e)).withSrv(Service2.class, 
srv->srv.autoConfig("m_service2")).build();
-        Component c2 = component(m).impl(new 
MyComponent2(e)).withSrv(Service1.class, 
srv->srv.required(false).autoConfig(false).cb("added")).build();
+        Component c1 = component(m).provides(Service1.class).impl(new 
MyComponent1(e)).withSvc(Service2.class, 
srv->srv.autoConfig("m_service2")).build();
+        Component c2 = component(m).impl(new 
MyComponent2(e)).withSvc(Service1.class, 
srv->srv.required(false).autoConfig(false).add("added")).build();
         Component c3 = 
component(m).provides(Service2.class).impl(Service2Impl.class).build();
         Component c4 = 
component(m).impl(Service3Impl1.class).provides(Service3.class, type -> 
"xx").build();
         Component c5 = 
component(m).impl(Service3Impl2.class).provides(Service3.class, type -> 
"yy").build();
@@ -121,8 +121,8 @@ public class MultipleExtraDependenciesTe
             // Service3/yy not yet available
 
             component(c, comp -> comp
-                .withSrv(Service3.class, 
srv->srv.filter("(type=xx)").autoConfig("m_service3_xx"))
-                .withSrv(Service3.class, 
srv->srv.filter("(type=yy)").autoConfig("m_service3_yy")));
+                .withSvc(Service3.class, 
srv->srv.filter("(type=xx)").autoConfig("m_service3_xx"))
+                .withSvc(Service3.class, 
srv->srv.filter("(type=yy)").autoConfig("m_service3_yy")));
         }
         
         void start() {

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest.java
 Thu Feb 18 21:07:16 2016
@@ -37,8 +37,8 @@ public class MultipleExtraDependencyTest
         
         Component sp2 = component(m)
               .impl(ServiceProvider2.class).provides(ServiceProvider2.class)
-              .withSrv(Runnable.class, 
srv->srv.filter("(foo=bar)").required(false).autoConfig("m_runnable"))
-              .withSrv(Sequencer.class, srv->srv.cb("bind"))
+              .withSvc(Runnable.class, 
srv->srv.filter("(foo=bar)").required(false).autoConfig("m_runnable"))
+              .withSvc(Sequencer.class, srv->srv.add("bind"))
               .composition("getComposition")
               .build();
 
@@ -46,15 +46,15 @@ public class MultipleExtraDependencyTest
               .impl(ServiceProvider.class)
               .provides(ServiceInterface.class, foo -> "bar")
               .start("start").stop("stop")
-              .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
-              .withSrv(ServiceProvider2.class, srv->srv.cb("bind", "unbind"))
+              .withSvc(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+              .withSvc(ServiceProvider2.class, 
srv->srv.add("bind").remove("unbind"))
               .build();
         
         Component sc = component(m)
               .impl(ServiceConsumer.class)
               .start("start").stop("stop")
-              .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
-              .withSrv(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service"))
+              .withSvc(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+              .withSvc(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service"))
               .build();
         
         Component sequencer = component(m)

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest2.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest2.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest2.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleExtraDependencyTest2.java
 Thu Feb 18 21:07:16 2016
@@ -127,8 +127,8 @@ public class MultipleExtraDependencyTest
 
         public void init(Component s) {
             component(s, comp->comp
-                .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
-                .withSrv(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service")));
+                .withSvc(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+                .withSvc(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service")));
         }
         
         void start() {
@@ -150,8 +150,8 @@ public class MultipleExtraDependencyTest
         public void init(Component c)
         {
             component(c, comp->comp
-                .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
-                .withSrv(ServiceProvider2.class, srv->srv.cb("bind", 
"unbind")));
+                .withSvc(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+                .withSvc(ServiceProvider2.class, 
srv->srv.add("bind").remove("unbind")));
         }
         
         void bind(ServiceProvider2 provider2)
@@ -191,8 +191,8 @@ public class MultipleExtraDependencyTest
         public void init(Component c)
         {
             component(c, comp->comp
-                     .withSrv(Runnable.class, 
srv->srv.optional().filter("(foo=bar)"))
-                     .withSrv(Sequencer.class, srv->srv.cb("bind")));
+                     .withSvc(Runnable.class, 
srv->srv.optional().filter("(foo=bar)"))
+                     .withSvc(Sequencer.class, srv->srv.add("bind")));
         }
         
         void bind(Sequencer seq)

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleServiceDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleServiceDependencyTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleServiceDependencyTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/MultipleServiceDependencyTest.java
 Thu Feb 18 21:07:16 2016
@@ -36,7 +36,7 @@ public class MultipleServiceDependencyTe
        // create a service provider and consumer
        Component provider = component(m).impl(new 
ServiceProvider(e)).provides(ServiceInterface.class.getName()).build();
        Component providerWithHighRank = component(m).impl(new 
ServiceProvider2(e)).provides(ServiceInterface.class.getName(), 
Constants.SERVICE_RANKING, Integer.valueOf(5)).build();
-       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSrv(ServiceInterface.class).build();
+       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSvc(ServiceInterface.class).build();
        m.add(provider);
        m.add(providerWithHighRank);
        m.add(consumer);
@@ -56,7 +56,7 @@ public class MultipleServiceDependencyTe
        // create a service provider and consumer
        Component provider = component(m).impl(new 
ServiceProvider(e)).provides(ServiceInterface.class.getName()).build();
        Component provider2 = component(m).impl(new 
ServiceProvider2(e)).provides(ServiceInterface.class.getName()).build();
-       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSrv(ServiceInterface.class).build();
+       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSvc(ServiceInterface.class).build();
        m.add(provider2);
        m.add(consumer);
        e.waitForStep(3, 5000);
@@ -76,7 +76,7 @@ public class MultipleServiceDependencyTe
        // create a service provider and consumer
        Component provider = component(m).impl(new 
ServiceProvider(e)).provides(ServiceInterface.class.getName()).build();
        Component provider2 = component(m).impl(new 
ServiceProvider2(e)).provides(ServiceInterface.class.getName()).build();
-       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSrv(ServiceInterface.class, srv->srv.cb("add", 
"remove")).build();
+       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSvc(ServiceInterface.class, 
srv->srv.add("add").remove("remove")).build();
        m.add(provider2);
        m.add(consumer);
        e.waitForStep(3, 15000);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/RemovedDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/RemovedDependencyTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/RemovedDependencyTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/RemovedDependencyTest.java
 Thu Feb 18 21:07:16 2016
@@ -67,8 +67,8 @@ public class RemovedDependencyTest exten
         ServiceConsumer consumer = new ServiceConsumer(e, d3);
         Component sc = component(m).impl(consumer).build();
         
-        Dependency d1 = serviceDependency(sc, 
ServiceInterface.class).filter("(name=provider1)").cb("add", "remove").build();
-        Dependency d2 = serviceDependency(sc, 
ServiceInterface.class).filter("(name=provider2)").cb("add", "remove").build();
+        Dependency d1 = serviceDependency(sc, 
ServiceInterface.class).filter("(name=provider1)").add("add").remove("remove").build();
+        Dependency d2 = serviceDependency(sc, 
ServiceInterface.class).filter("(name=provider2)").add("add").remove("remove").build();
         
         sc.add(d1, d2);
             

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ResourceProvider.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ResourceProvider.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ResourceProvider.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ResourceProvider.java
 Thu Feb 18 21:07:16 2016
@@ -66,7 +66,7 @@ class ResourceProvider {
     }
 
     @SuppressWarnings({ "deprecation", "unchecked" })
-       public void add(ServiceReference<ResourceHandler> ref, ResourceHandler 
handler) {
+       public void add(ResourceHandler handler, 
ServiceReference<ResourceHandler> ref) {
         String filterString = (String) ref.getProperty("filter");
         Filter filter = null;
         if (filterString != null) {
@@ -88,7 +88,7 @@ class ResourceProvider {
         }
     }
 
-    public void remove(ServiceReference<ResourceHandler> ref, ResourceHandler 
handler) {
+    public void remove(ResourceHandler handler, 
ServiceReference<ResourceHandler> ref) {
         Filter filter;
         synchronized (m_handlers) {
             filter = (Filter) m_handlers.remove(handler);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyCallbackSignaturesTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyCallbackSignaturesTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyCallbackSignaturesTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyCallbackSignaturesTest.java
 Thu Feb 18 21:07:16 2016
@@ -47,15 +47,15 @@ public class ServiceDependencyCallbackSi
         Component provider = component(m)
             .impl(new ProviderImpl()).provides(Provider.class.getName(), 
props).build();
         
-        component(m, c->c.impl(new Consumer1()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer2()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer3()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer4()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer5()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer6()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer7()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer8()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer9()).withSrv(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
+        component(m, c->c.impl(new Consumer1()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer2()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer3()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer4()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer5()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer6()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer7()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer8()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
+        component(m, c->c.impl(new Consumer9()).withSvc(Provider.class, 
srv->srv.add("bind").change("change").remove("remove")));
 
         m.add(provider);
         m_ensure.waitForStep(9, 5000);
@@ -68,7 +68,7 @@ public class ServiceDependencyCallbackSi
         m.remove(provider);
         m_ensure.waitForStep(26, 5000);
     }
-    
+        
     /**
      * Tests if all possible dependency callbacks signatures supported by 
ServiceDependency.
      */
@@ -80,15 +80,15 @@ public class ServiceDependencyCallbackSi
         Component provider = component(m)
             .impl(new ProviderImpl()).provides(Provider.class.getName(), 
props).build();
         
-        component(m, c->c.impl(new Consumer1()).withSrv(Provider.class, 
srv->srv.cb(Consumer1::bind, Consumer1::change, Consumer1::remove)));
-        component(m, c->c.impl(new Consumer2()).withSrv(Provider.class, 
srv->srv.cb(Consumer2::bind, Consumer2::change, Consumer2::remove)));
-        component(m, c->c.impl(new Consumer3()).withSrv(Provider.class, 
srv->srv.cb(Consumer3::bind, Consumer3::change, Consumer3::remove)));
-        component(m, c->c.impl(new Consumer4()).withSrv(Provider.class, 
srv->srv.cb(Consumer4::bind, Consumer4::change, Consumer4::remove)));
-        component(m, c->c.impl(new Consumer5()).withSrv(Provider.class, 
srv->srv.cb(Consumer5::bind, Consumer5::change, Consumer5::remove)));
-        component(m, c->c.impl(new Consumer6()).withSrv(Provider.class, 
srv->srv.cb(Consumer6::bind, Consumer6::change, Consumer6::remove)));
-        component(m, c->c.impl(new Consumer7()).withSrv(Provider.class, 
srv->srv.cb(Consumer7::bind, Consumer7::change, Consumer7::remove)));
-        component(m, c->c.impl(new Consumer8()).withSrv(Provider.class, 
srv->srv.cb(Consumer8::bind, Consumer8::change, Consumer8::remove)));
-        component(m, c->c.impl(new Consumer9()).withSrv(Provider.class, 
srv->srv.cb(Consumer9::bind, Consumer9::change, Consumer9::remove)));
+        component(m, c->c.impl(new Consumer1()).withSvc(Provider.class, 
srv->srv.add(Consumer1::bind).change(Consumer1::change).remove(Consumer1::remove)));
+        component(m, c->c.impl(new Consumer2()).withSvc(Provider.class, 
srv->srv.add(Consumer2::bind).change(Consumer2::change).remove(Consumer2::remove)));
+        component(m, c->c.impl(new Consumer3()).withSvc(Provider.class, 
srv->srv.add(Consumer3::bind).change(Consumer3::change).remove(Consumer3::remove)));
+        component(m, c->c.impl(new Consumer4()).withSvc(Provider.class, 
srv->srv.add(Consumer4::bindRef).change(Consumer4::changeRef).remove(Consumer4::removeRef)));
+        component(m, c->c.impl(new Consumer5()).withSvc(Provider.class, 
srv->srv.add(Consumer5::bindRef).change(Consumer5::changeRef).remove(Consumer5::removeRef)));
+        component(m, c->c.impl(new Consumer6()).withSvc(Provider.class, 
srv->srv.add(Consumer6::bindRef).change(Consumer6::changeRef).remove(Consumer6::removeRef)));
+        component(m, c->c.impl(new Consumer7()).withSvc(Provider.class, 
srv->srv.add(Consumer7::bindRef).change(Consumer7::changeRef).remove(Consumer7::removeRef)));
+        component(m, c->c.impl(new Consumer8()).withSvc(Provider.class, 
srv->srv.add(Consumer8::bindRef).change(Consumer8::changeRef).remove(Consumer8::removeRef)));
+        component(m, c->c.impl(new Consumer9()).withSvc(Provider.class, 
srv->srv.add(Consumer9::bindRef).change(Consumer9::changeRef).remove(Consumer9::removeRef)));
 
         m.add(provider);
         m_ensure.waitForStep(9, 5000);
@@ -101,14 +101,6 @@ public class ServiceDependencyCallbackSi
         m.remove(provider);
         m_ensure.waitForStep(26, 5000);
     }
-    
-    private void declareConsumer(DependencyManager m, Object consumerImpl) {
-        Component consumer = component(m)
-            .impl(consumerImpl)
-            .withSrv(Provider.class, srv->srv.cb("bind", "change", "change"))
-            .build();
-        m.add(consumer);
-    }
 
     public static interface Provider {        
     }
@@ -169,19 +161,33 @@ public class ServiceDependencyCallbackSi
     }
 
     class Consumer4 {        
-        void bind(ServiceReference ref, Provider provider) {
+        void bindRef(Provider provider, ServiceReference ref) { // method ref 
callback
+            bind(ref, provider);
+        }
+        
+        void bind(ServiceReference ref, Provider provider) { // reflection 
based callback
             Assert.assertNotNull(ref);
             Assert.assertNotNull(provider);
             Assert.assertEquals("bar", ref.getProperty("foo"));
             m_ensure.step();
         }
-        void change(ServiceReference ref, Provider provider) {
+        
+        void changeRef(Provider provider, ServiceReference ref) { // method 
ref callback
+            change(ref, provider);
+        }
+        
+        void change(ServiceReference ref, Provider provider) { // reflection 
based callback
             Assert.assertNotNull(ref);
             Assert.assertNotNull(provider);
             Assert.assertEquals("zoo", ref.getProperty("foo"));
             m_ensure.step();
         }
-        void remove(ServiceReference ref, Provider provider) {
+        
+        void removeRef(Provider provider, ServiceReference ref) { // method 
ref callback
+            remove(ref, provider);
+        }
+        
+        void remove(ServiceReference ref, Provider provider) { // reflection 
based callback
             Assert.assertNotNull(ref);
             Assert.assertNotNull(provider);
             Assert.assertEquals("zoo", ref.getProperty("foo"));
@@ -190,40 +196,73 @@ public class ServiceDependencyCallbackSi
     }
         
     class Consumer5 {        
-        void bind(ServiceReference ref) {
+        void bindRef(Provider provider, ServiceReference ref) { // method ref 
callback
+            bind(ref);
+        }
+        
+        void bind(ServiceReference ref) { // reflection based callback
             Assert.assertNotNull(ref);
             Assert.assertEquals("bar", ref.getProperty("foo"));
             m_ensure.step();
         }
-        void change(ServiceReference ref) {
+      
+        void changeRef(Provider provider, ServiceReference ref) { // method 
ref callback
+            change(ref);
+        }
+        
+        void change(ServiceReference ref) { // reflection based callback
             Assert.assertNotNull(ref);
             Assert.assertEquals("zoo", ref.getProperty("foo"));
             m_ensure.step();
         }
-        void remove(ServiceReference ref) {
+        
+        void removeRef(Provider provider, ServiceReference ref) { // method 
ref callback
+            remove(ref);
+        }
+
+        void remove(ServiceReference ref) { // reflection based callback
             Assert.assertNotNull(ref);
             Assert.assertEquals("zoo", ref.getProperty("foo"));
             m_ensure.step();
         }
     }
 
-    class Consumer6 {        
-        void bind(Component c) {
+    class Consumer6 {     
+        
+        void bindRef(Provider p, Component c) { // method ref callback
+            bind(c);
+        }
+        
+        void bind(Component c) { // reflection based callback
             Assert.assertNotNull(c);
             m_ensure.step();
         }
-        void change(Component c) {
+        
+        void changeRef(Provider p, Component c) { // method ref callback
+            change(c);
+        }
+
+        void change(Component c) { // reflection based callback
             Assert.assertNotNull(c);
             m_ensure.step();
         }
-        void remove(Component c) {
+        
+        void removeRef(Provider p, Component c) { // method ref callback
+            remove(c);
+        }
+
+        void remove(Component c) { // reflection based callback
             Assert.assertNotNull(c);
             m_ensure.step();
         }
     }
         
     class Consumer7 {
-        void bind(Component c, ServiceReference ref) {
+        void bindRef(Provider p, Component c, ServiceReference ref) { // 
reflection callback
+            bind(c, ref);
+        }
+        
+        void bind(Component c, ServiceReference ref) { // reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(ref);
             Assert.assertEquals("bar", ref.getProperty("foo"));
@@ -231,7 +270,12 @@ public class ServiceDependencyCallbackSi
             Assert.assertEquals(context.getService(ref).getClass(), 
ProviderImpl.class);
             m_ensure.step();
         }
-        void change(Component c, ServiceReference ref) {
+        
+        void changeRef(Provider p, Component c, ServiceReference ref) { // 
reflection callback
+            change(c, ref);
+        }
+        
+        void change(Component c, ServiceReference ref) { // reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(ref);
             Assert.assertEquals("zoo", ref.getProperty("foo"));
@@ -239,7 +283,12 @@ public class ServiceDependencyCallbackSi
             Assert.assertEquals(context.getService(ref).getClass(), 
ProviderImpl.class);
             m_ensure.step();
         }
-        void remove(Component c, ServiceReference ref) {
+        
+        void removeRef(Provider p, Component c, ServiceReference ref) { // 
reflection callback
+            remove(c, ref);
+        }
+        
+        void remove(Component c, ServiceReference ref) { // reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(ref);
             Assert.assertEquals("zoo", ref.getProperty("foo"));
@@ -250,17 +299,31 @@ public class ServiceDependencyCallbackSi
     }
         
     class Consumer8 {
-        void bind(Component c, Provider provider) {
+        void bindRef(Provider p, Component c) { // method ref callback
+            bind(c, p);
+        }
+        
+        void bind(Component c, Provider provider) { // reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(provider);
             m_ensure.step();
         }
-        void change(Component c, Provider provider) {
+        
+        void changeRef(Provider p, Component c) { // method ref callback
+            change(c, p);
+        }
+        
+        void change(Component c, Provider provider) { // reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(provider);
             m_ensure.step();
         }
-        void remove(Component c, Provider provider) {
+        
+        void removeRef(Provider p, Component c) { // method ref callback
+            remove(c, p);
+        }
+        
+        void remove(Component c, Provider provider) { // reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(provider);
             m_ensure.step();
@@ -268,7 +331,11 @@ public class ServiceDependencyCallbackSi
     }
     
     class Consumer9 {
-        void bind(Component c, ServiceReference ref, Provider provider) {
+        void bindRef(Provider provider, Component c, ServiceReference ref) { 
// method ref callback
+            bind(c, ref, provider);
+        }
+        
+        void bind(Component c, ServiceReference ref, Provider provider) { // 
reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(ref);
             Assert.assertNotNull(provider);
@@ -276,7 +343,12 @@ public class ServiceDependencyCallbackSi
             Assert.assertEquals(context.getService(ref), provider);
             m_ensure.step();
         }
-        void change(Component c, ServiceReference ref, Provider provider) {
+        
+        void changeRef(Provider provider, Component c, ServiceReference ref) { 
// method ref callback
+            change(c, ref, provider);
+        }
+        
+        void change(Component c, ServiceReference ref, Provider provider) { // 
reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(ref);
             Assert.assertNotNull(provider);
@@ -284,7 +356,12 @@ public class ServiceDependencyCallbackSi
             Assert.assertEquals(context.getService(ref), provider);
             m_ensure.step();
         }
-        void remove(Component c, ServiceReference ref, Provider provider) {
+        
+        void removeRef(Provider provider, Component c, ServiceReference ref) { 
// method ref callback
+            remove(c, ref, provider);
+        }
+        
+        void remove(Component c, ServiceReference ref, Provider provider) { // 
reflection callback
             Assert.assertNotNull(c);
             Assert.assertNotNull(ref);
             Assert.assertNotNull(provider);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyInjectionTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyInjectionTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyInjectionTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyInjectionTest.java
 Thu Feb 18 21:07:16 2016
@@ -34,20 +34,20 @@ public class ServiceDependencyInjectionT
         // create a service provider and consumer
         ServiceProvider provider = new ServiceProvider(e);
         Component sp = 
component(m).impl(provider).provides(ServiceInterface2.class.getName()).build();
-        Component sc = component(m).impl(new 
ServiceConsumer()).withSrv(ServiceInterface2.class).build();
+        Component sc = component(m).impl(new 
ServiceConsumer()).withSvc(ServiceInterface2.class).build();
            
         Component sc2 = component(m) // all dependencies are optional
             .impl(new ServiceConsumerNamedInjection(false, false)) 
-            .withSrv(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service"))
-            .withSrv(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service2"))
-            .withSrv(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service3"))
+            .withSvc(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service"))
+            .withSvc(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service2"))
+            .withSvc(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service3"))
             .build();
         
         Component sc3 = component(m) // second dependency is required, first 
and third are optional
             .impl(new ServiceConsumerNamedInjection(false, false))
-            .withSrv(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service"))
-            .withSrv(ServiceInterface2.class, 
s->s.required().autoConfig("m_service2"))
-            .withSrv(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service3"))
+            .withSvc(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service"))
+            .withSvc(ServiceInterface2.class, 
s->s.required().autoConfig("m_service2"))
+            .withSvc(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service3"))
             .build();
         
         Component sc4 = component(m)

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyPropagateTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyPropagateTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyPropagateTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyPropagateTest.java
 Thu Feb 18 21:07:16 2016
@@ -45,12 +45,12 @@ public class ServiceDependencyPropagateT
         
         Component c1 = component(m)
                       .impl(new C1(e))
-                      .withSrv(C2.class, s->s.cb("bind")).build();
+                      .withSvc(C2.class, s->s.add("bind")).build();
 
         Component c2 = component(m)
                       .provides(C2.class.getName(), new Hashtable() {{ 
put("foo", "bar"); }})
                       .impl(new C2())
-                      .withSrv(C3.class, s->s.propagate()).build();
+                      .withSvc(C3.class, s->s.propagate()).build();
 
         Component c3 = component(m)
                       .provides(C3.class.getName(), new Hashtable() {{ 
put("foo2", "bar2"); put("foo", "overriden");}})
@@ -78,13 +78,13 @@ public class ServiceDependencyPropagateT
         Ensure e = new Ensure();
         Component c1 = component(m)
                       .impl(new C1(e))
-                      .withSrv(C2.class, s->s.cb("bind")).build();
+                      .withSvc(C2.class, s->s.add("bind")).build();
 
         C2 c2Impl = new C2();
         Component c2 = component(m)
                       .provides(C2.class.getName(), new Hashtable() {{ 
put("foo", "bar"); }})
                       .impl(c2Impl)
-                      .withSrv(C3.class, s->s.propagate(c2Impl, 
"getServiceProperties")).build();
+                      .withSvc(C3.class, s->s.propagate(c2Impl, 
"getServiceProperties")).build();
         
         Component c3 = component(m)
                       .provides(C3.class.getName())
@@ -104,13 +104,13 @@ public class ServiceDependencyPropagateT
         Ensure e = new Ensure();
         Component c1 = component(m)
                       .impl(new C1(e))
-                      .withSrv(C2.class, s->s.cb(C1::bind)).build();
+                      .withSvc(C2.class, s->s.add(C1::bind)).build();
 
         C2 c2Impl = new C2();
         Component c2 = component(m)
                       .provides(C2.class.getName(), new Hashtable() {{ 
put("foo", "bar"); }})
                       .impl(c2Impl)
-                      .withSrv(C3.class, 
s->s.propagate(c2Impl::getServiceProperties)).build();
+                      .withSvc(C3.class, 
s->s.propagate(c2Impl::getServiceProperties)).build();
         
         Component c3 = component(m)
                       .provides(C3.class.getName())

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyTest.java
 Thu Feb 18 21:07:16 2016
@@ -33,10 +33,10 @@ public class ServiceDependencyTest exten
         Ensure e = new Ensure();
         // create a service provider and consumer
         Component sp = component(m).impl(new 
ServiceProvider(e)).provides(ServiceInterface.class).build();
-        Component sc = component(m).impl(new 
ServiceConsumer(e)).withSrv(ServiceInterface.class).build();
+        Component sc = component(m).impl(new 
ServiceConsumer(e)).withSvc(ServiceInterface.class).build();
                        
         Component sc2 = component(m).impl(new ServiceConsumerCallbacks(e))
-            .withSrv(ServiceInterface.class, srv -> 
srv.required(false).cb(ServiceConsumerCallbacks::add, 
ServiceConsumerCallbacks::remove))
+            .withSvc(ServiceInterface.class, srv -> 
srv.required(false).add(ServiceConsumerCallbacks::add).remove(ServiceConsumerCallbacks::remove))
             .build();
 
         m.add(sp);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java
 Thu Feb 18 21:07:16 2016
@@ -52,7 +52,7 @@ public class ServiceDependencyThroughCal
                CallbackInstance instance = new CallbackInstance();
                component(m, comp -> comp
                                .impl(new SimpleService() {})
-                               .withSrv(Service.class, srv -> 
srv.cbi(instance::added, instance::removed)));
+                               .withSvc(Service.class, srv -> 
srv.add(instance::added).remove(instance::removed)));
                
                Assert.assertEquals(numberOfServices, instance.getCount());
                m.clear();

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceUpdateTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceUpdateTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceUpdateTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/ServiceUpdateTest.java
 Thu Feb 18 21:07:16 2016
@@ -43,11 +43,11 @@ public class ServiceUpdateTest extends T
         // activate it
         component(m, comp -> comp
                        .impl(new ServiceProvider(e))
-                       .withSrv(ServiceInterface.class, srv -> srv
-                                       .cb(ServiceProvider::add, 
ServiceProvider::change, ServiceProvider::remove)));
+                       .withSvc(ServiceInterface.class, srv -> srv
+                                       
.add(ServiceProvider::add).change(ServiceProvider::change).remove(ServiceProvider::remove)));
         component(m, comp -> comp
                        .impl(provider)
-                       .withSrv(ResourceHandler.class, srv -> 
srv.cb(ResourceProvider::add, ResourceProvider::remove)));
+                       .withSvc(ResourceHandler.class, srv -> 
srv.add(ResourceProvider::add).remove(ResourceProvider::remove)));
                
         // TODO implement resource adapters in new builder API and use it for 
the following resource adapter.
         

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/TemporalServiceDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/TemporalServiceDependencyTest.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/TemporalServiceDependencyTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/lambda/itest/TemporalServiceDependencyTest.java
 Thu Feb 18 21:07:16 2016
@@ -44,7 +44,7 @@ public class TemporalServiceDependencyTe
         TemporalServiceProvider2 provider2 = new TemporalServiceProvider2(e);
         Component sp2 = 
component(m).impl(provider2).provides(TemporalServiceInterface.class.getName()).build();
         TemporalServiceConsumer consumer = new TemporalServiceConsumer(e);
-        Component sc = 
component(m).impl(consumer).withSrv(TemporalServiceInterface.class, 
s->s.timeout(10000)).build();
+        Component sc = 
component(m).impl(consumer).withSvc(TemporalServiceInterface.class, 
s->s.timeout(10000)).build();
         // add the service consumer
         m.add(sc);
         // now add the first provider
@@ -76,7 +76,7 @@ public class TemporalServiceDependencyTe
         TemporalServiceProvider2 provider2 = new TemporalServiceProvider2(e);
         Component sp2 = 
component(m).impl(provider2).provides(TemporalServiceInterface.class.getName()).build();
         TemporalServiceConsumerWithCallback consumer = new 
TemporalServiceConsumerWithCallback(e);
-        Component sc = 
component(m).impl(consumer).withSrv(TemporalServiceInterface.class, 
srv->srv.cb("add", "remove").timeout(10000)).build();
+        Component sc = 
component(m).impl(consumer).withSvc(TemporalServiceInterface.class, 
srv->srv.add("add").remove("remove").timeout(10000)).build();
             
         // add the service consumer
         m.add(sc);
@@ -114,7 +114,7 @@ public class TemporalServiceDependencyTe
         Component sp2 = 
component(m).impl(provider2).provides(TemporalServiceInterface.class.getName()).build();
         TemporalServiceConsumerAdapterWithCallback consumer = new 
TemporalServiceConsumerAdapterWithCallback(e);
         Component sc = m.createAdapterService(Adaptee.class, 
null).setImplementation(consumer);
-        ServiceDependency temporalDep = serviceDependency(sc, 
TemporalServiceInterface.class).timeout(10000).cb("add", "remove").build();
+        ServiceDependency temporalDep = serviceDependency(sc, 
TemporalServiceInterface.class).timeout(10000).add("add").remove("remove").build();
         sc.add(temporalDep);
         Component adaptee = component(m).impl(new 
Adaptee()).provides(Adaptee.class.getName()).build();
             
@@ -171,7 +171,7 @@ public class TemporalServiceDependencyTe
         };
         Component consumerComp = component(m)
                        .impl(consumer)
-                       .withSrv(Runnable.class, 
s->s.timeout(5000).filter("(target=" + getClass().getSimpleName() + 
")")).build();
+                       .withSvc(Runnable.class, 
s->s.timeout(5000).filter("(target=" + getClass().getSimpleName() + 
")")).build();
         m.add(consumerComp);
         m.add(providerComp);
         ensure.waitForStep(2, 5000);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Activator.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Activator.java
 Thu Feb 18 21:07:16 2016
@@ -20,7 +20,9 @@ package org.apache.felix.dm.lambda.sampl
 
 import static java.lang.System.out;
 
+import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.lambda.DependencyManagerActivator;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.log.LogService;
 
@@ -39,8 +41,8 @@ import org.osgi.service.log.LogService;
  */
 public class Activator extends DependencyManagerActivator {
     @Override
-    public void activate() throws Exception {
-       out.println("type \"log info\" to see the logs emitted by this test.");
+    public void init(BundleContext ctx, DependencyManager dm) throws Exception 
{
+       out.println("type \"log warn\" to see the logs emitted by this test.");
 
        // Create the Factory used to instantiate ProvuderImpl, 
ProviderComposite1 and ProviderComposite2
         ProviderFactory factory = new ProviderFactory();
@@ -51,13 +53,11 @@ public class Activator extends Dependenc
         // before creating the composition of classes.
         component(comp -> comp
             .factory(factory::create, factory::getComposition)
-            .start(ProviderImpl::start) // only call start on ProviderImpl     
     
-            .withSrv(LogService.class, srv -> 
srv.cb(ProviderImpl::bind).cb(ProviderComposite1::bind))
-            .withCnf(conf -> 
conf.pid(ProviderFactory.class).cbi(factory::updated)));
+            .start(ProviderImpl::start) // only call start on ProviderImpl
+            .withSvc(LogService.class, srv -> 
srv.add(ProviderImpl::bind).add(ProviderComposite1::bind))
+            .withCnf(conf -> conf.update(MyConfig.class, factory::updated)));
                 
         // Creates a configuration with pid name = 
"org.apache.felix.dependencymanager.lambda.samples.compositefactory.ProviderFactory"
-        component(comp -> comp
-            .impl(Configurator.class)
-            .withSrv(ConfigurationAdmin.class));
-    }
+        component(comp -> 
comp.impl(Configurator.class).withSvc(ConfigurationAdmin.class));
+    }    
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Configurator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Configurator.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Configurator.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/Configurator.java
 Thu Feb 18 21:07:16 2016
@@ -12,7 +12,7 @@ public class Configurator {
     
     void start() throws IOException {
         // Configure the ServiceConsumer component
-        Configuration c = 
m_cm.getConfiguration(ProviderFactory.class.getName(), null);
+        Configuration c = m_cm.getConfiguration(MyConfig.class.getName(), 
null);
         Dictionary<String, Object> props = new Hashtable<>();
         props.put("foo", "bar");
         c.update(props);

Added: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/MyConfig.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/MyConfig.java?rev=1731147&view=auto
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/MyConfig.java
 (added)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/MyConfig.java
 Thu Feb 18 21:07:16 2016
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.dm.lambda.samples.compositefactory;
+
+/**
+ * Our properties interface that is implemented by DependencyManager. 
+ * @author <a href="mailto:[email protected]";>Felix Project Team</a>
+ */
+public interface MyConfig {
+    String getFoo();
+}

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite1.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite1.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite1.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite1.java
 Thu Feb 18 21:07:16 2016
@@ -31,6 +31,10 @@ public class ProviderComposite1 {
     }
 
     void start() {
-        m_log.log(LogService.LOG_INFO, "ProviderParticipant1.start()");
+        m_log.log(LogService.LOG_WARNING, "ProviderParticipant1.start()");
+    }
+    
+    public String toString() {
+        return "ProviderComposite1";
     }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite2.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite2.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite2.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderComposite2.java
 Thu Feb 18 21:07:16 2016
@@ -22,5 +22,7 @@ package org.apache.felix.dm.lambda.sampl
  * @author <a href="mailto:[email protected]";>Felix Project Team</a>
  */
 public class ProviderComposite2 {
-
+    public String toString() {
+        return "ProviderComposite2";
+    }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderFactory.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderFactory.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderFactory.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderFactory.java
 Thu Feb 18 21:07:16 2016
@@ -18,8 +18,6 @@
  */
 package org.apache.felix.dm.lambda.samples.compositefactory;
 
-import java.util.Dictionary;
-
 /**
  * Pojo used to create all the objects composition used to implements the 
"Provider" Service.
  * The manager is using a Configuration injected by Config Admin, in order to 
configure the 
@@ -32,11 +30,10 @@ public class ProviderFactory {
     private ProviderComposite2 m_composite2;
     private ProviderImpl m_providerImpl;
     @SuppressWarnings("unused")
-       private Dictionary<String, Object> m_conf;
+       private MyConfig m_conf;
 
-    public void updated(Dictionary<String, Object> conf) {
-        // validate configuration and throw an exception if the properties are 
invalid
-        m_conf = conf;
+    public void updated(MyConfig conf) {
+        m_conf = conf; // conf.getFoo() returns "bar"
     }
 
     /**

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderImpl.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/compositefactory/ProviderImpl.java
 Thu Feb 18 21:07:16 2016
@@ -44,6 +44,6 @@ public class ProviderImpl implements Pro
     }
 
     void start() {
-        m_log.log(LogService.LOG_INFO, "ProviderImpl.start(): participants=" + 
m_participant1 + "," + m_participant2);
+        m_log.log(LogService.LOG_WARNING, "ProviderImpl.start(): 
participants=" + m_participant1 + "," + m_participant2);
     }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/Activator.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/Activator.java
 Thu Feb 18 21:07:16 2016
@@ -20,7 +20,9 @@ package org.apache.felix.dm.lambda.sampl
 
 import static java.lang.System.out;
 
+import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.lambda.DependencyManagerActivator;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.log.LogService;
 
 /**
@@ -28,8 +30,8 @@ import org.osgi.service.log.LogService;
  */
 public class Activator extends DependencyManagerActivator {
     @Override
-    public void activate() throws Exception {
-       out.println("type \"log info\" to see the logs emitted by this test.");
+    public void init(BundleContext ctx, DependencyManager dm) throws Exception 
{
+       out.println("type \"log warn\" to see the logs emitted by this test.");
 
        // Create a pair of Device/DeviceParameter service with id=1
         createDeviceAndParameter(1);
@@ -44,8 +46,8 @@ public class Activator extends Dependenc
         // Creates a component that simply displays all available 
DeviceParameter adapter services.
         component(comp -> comp
             .impl(DeviceAccessConsumer.class)
-            .withSrv(LogService.class)
-            .withSrv(DeviceAccess.class, device -> 
device.cb(DeviceAccessConsumer::add)));       
+            .withSvc(LogService.class)
+            .withSvc(DeviceAccess.class, device -> 
device.add(DeviceAccessConsumer::add)));       
     }
     
     private void createDeviceAndParameter(int id) {

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessConsumer.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessConsumer.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessConsumer.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessConsumer.java
 Thu Feb 18 21:07:16 2016
@@ -29,7 +29,7 @@ public class DeviceAccessConsumer {
     volatile LogService log;
 
     void add(DeviceAccess deviceAccess, Map<String, Object> props) {
-        log.log(LogService.LOG_INFO, "DeviceAccessConsumer: Handling device 
access: id=" + props.get("device.access.id") 
+        log.log(LogService.LOG_WARNING, "DeviceAccessConsumer: Handling device 
access: id=" + props.get("device.access.id") 
             + "\n\t device=" + deviceAccess.getDevice() 
             + "\n\t device parameter=" + deviceAccess.getDeviceParameter()
             + "\n\t device access properties=" + props);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessImpl.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceAccessImpl.java
 Thu Feb 18 21:07:16 2016
@@ -35,7 +35,7 @@ public class DeviceAccessImpl implements
                 
         component(c, builder -> builder
             .properties("device.access.id", device.getDeviceId())
-            .withSrv(DeviceParameter.class, srv -> srv.filter("(device.id=" + 
device.getDeviceId() + ")")));
+            .withSvc(DeviceParameter.class, srv -> srv.filter("(device.id=" + 
device.getDeviceId() + ")")));
     }
     
     @Override

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceImpl.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceImpl.java
 Thu Feb 18 21:07:16 2016
@@ -32,4 +32,10 @@ public class DeviceImpl implements Devic
     public int getDeviceId() {
         return id;
     }
+    
+    
+    @Override
+    public String toString() {
+        return "Device #" + id;
+    }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceParameterImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceParameterImpl.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceParameterImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/device/DeviceParameterImpl.java
 Thu Feb 18 21:07:16 2016
@@ -32,4 +32,9 @@ public class DeviceParameterImpl impleme
     public int getDeviceId() {
         return id;
     }
+    
+    @Override
+    public String toString() {
+        return "DeviceParameter #" + id;
+    }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/Activator.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/Activator.java
 Thu Feb 18 21:07:16 2016
@@ -22,7 +22,9 @@ import static java.lang.System.out;
 import static 
org.apache.felix.service.command.CommandProcessor.COMMAND_FUNCTION;
 import static org.apache.felix.service.command.CommandProcessor.COMMAND_SCOPE;
 
+import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.lambda.DependencyManagerActivator;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.log.LogService;
 
 /**
@@ -30,7 +32,7 @@ import org.osgi.service.log.LogService;
  */
 public class Activator extends DependencyManagerActivator {
     @Override
-    public void activate() throws Exception {
+    public void init(BundleContext ctx, DependencyManager dm) throws Exception 
{
        out.println("type \"log info\" to see the logs emitted by this test.");
 
         // Create the factory configuration for our DictionaryImpl service. An 
instance of the DictionaryImpl is created for each
@@ -38,25 +40,24 @@ public class Activator extends Dependenc
         factoryPidAdapter(adapter -> adapter
             .impl(DictionaryImpl.class)
             .provides(DictionaryService.class)
-            .factoryPid(DictionaryConfiguration.class)
             .propagate()
-            .cb(DictionaryImpl::updated)
-            .withSrv(LogService.class));
+            .update(DictionaryConfiguration.class, DictionaryImpl::updated)
+            .withSvc(LogService.class));
                             
         // Create the Dictionary Aspect that decorates any registered 
Dictionary service. For each Dictionary, an instance of the 
         // DictionaryAspect service is created).
         aspect(DictionaryService.class, aspect -> aspect
             .impl(DictionaryAspect.class)
             .filter("(lang=en)").rank(10)
-            .withCnf(conf -> 
conf.pid(DictionaryAspectConfiguration.class).cb(DictionaryAspect::addWords))
-            .withSrv(LogService.class));
+            .withCnf(conf -> conf.update(DictionaryAspectConfiguration.class, 
DictionaryAspect::addWords))
+            .withSvc(LogService.class));
                     
         // Create the SpellChecker component. It depends on all available 
DictionaryService instances, possibly
         // decorated by some DictionaryAspects.
         component(comp -> comp
             .impl(SpellChecker.class)
             .provides(SpellChecker.class, COMMAND_SCOPE, "dictionary", 
COMMAND_FUNCTION, new String[] {"spellcheck"}) 
-            .withSrv(DictionaryService.class)
-            .withSrv(LogService.class));
+            .withSvc(DictionaryService.class)
+            .withSvc(LogService.class));
     }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryAspect.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryAspect.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryAspect.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryAspect.java
 Thu Feb 18 21:07:16 2016
@@ -11,13 +11,10 @@
  */
 package org.apache.felix.dm.lambda.samples.dictionary;
 
-import java.util.Dictionary;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.osgi.service.log.LogService;
 
-import aQute.bnd.annotation.metatype.Configurable;
-
 /**
  * This aspect applies to the English DictionaryService, and allows to 
decorate it with some
  * custom English words, which are configurable from WebConsole.
@@ -43,13 +40,13 @@ public class DictionaryAspect implements
     private LogService m_log;
 
     /**
-     * Defines a configuration dependency for retrieving our english custom 
words (by default,
-     * our PID is our full class name).
+     * Defines a configuration dependency for retrieving our english custom 
words.
+     * Dependency Manager will inject a dynamic proxy that implements our 
DictionaryAspectConfiguration interface.
+     * The dynamic proxy is used to wrap the actual Dictionary configuration.
+     * The pid for our configuration is by default the fqdn of our 
DictionaryAspectConfiguration interface.
      */
-    protected void addWords(Dictionary<String, ?> config) {
-        if (config != null) {
-            // We use the bnd "Configurable" helper in order to get an 
implementation for our DictionaryConfiguration interface.
-            DictionaryConfiguration cnf = 
Configurable.createConfigurable(DictionaryConfiguration.class, config);
+    protected void addWords(DictionaryAspectConfiguration cnf) {
+        if (cnf != null) {
             m_words.clear();
             for (String word : cnf.words()) {
                 m_words.add(word);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryImpl.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/dictionary/DictionaryImpl.java
 Thu Feb 18 21:07:16 2016
@@ -18,13 +18,10 @@
  */
 package org.apache.felix.dm.lambda.samples.dictionary;
 
-import java.util.Dictionary;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.osgi.service.log.LogService;
 
-import aQute.bnd.annotation.metatype.Configurable;
-
 /**
  * A Dictionary Service, instantiated from webconsole, when you add some 
configurations instances to the
  * DictionaryConfiguration factory pid. The Configuration metatype 
informations is described using the
@@ -61,17 +58,12 @@ public class DictionaryImpl implements D
      * Our service will be initialized from ConfigAdmin.
      * @param config The configuration where we'll lookup our words list 
(key=".words").
      */
-    protected void updated(Dictionary<String, ?> config) {
-        if (config != null) {
-            // We use the bnd "Configurable" helper in order to get an 
implementation for our DictionaryConfiguration interface.
-            DictionaryConfiguration cnf = 
Configurable.createConfigurable(DictionaryConfiguration.class, config);
-
-            m_lang = cnf.lang();
-            m_words.clear();
-            for (String word : cnf.words()) {
-                m_words.add(word);
-            }
-        }
+    protected void updated(DictionaryConfiguration cnf) {
+        m_lang = cnf.lang();
+        m_words.clear();
+        for (String word : cnf.words()) {
+            m_words.add(word);
+        }        
     }
 
     /**

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/Activator.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/Activator.java
 Thu Feb 18 21:07:16 2016
@@ -20,7 +20,9 @@ package org.apache.felix.dm.lambda.sampl
 
 import static java.lang.System.out;
 
+import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.lambda.DependencyManagerActivator;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.log.LogService;
 
 /**
@@ -28,13 +30,13 @@ import org.osgi.service.log.LogService;
  */
 public class Activator extends DependencyManagerActivator {
     @Override
-    public void activate() throws Exception {
-       out.println("type \"log info\" to see the logs emitted by this test.");
+    public void init(BundleContext ctx, DependencyManager dm) throws Exception 
{
+       out.println("type \"log warn\" to see the logs emitted by this test.");
 
         component(comp -> comp
             .factory(ProviderFactory::new, ProviderFactory::create)       
             .provides(Provider.class)
             .start(ProviderImpl::start)                      
-            .withSrv(LogService.class, log -> log.cb(ProviderImpl::set)));
+            .withSvc(LogService.class, log -> log.add(ProviderImpl::set)));
     }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/ProviderImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/ProviderImpl.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/ProviderImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/factory/ProviderImpl.java
 Thu Feb 18 21:07:16 2016
@@ -33,6 +33,6 @@ public class ProviderImpl implements Pro
     void set(LogService log) { m_log = log; }
 
     void start() {
-        m_log.log(LogService.LOG_INFO, "ProviderImpl.start()");
+        m_log.log(LogService.LOG_WARNING, "ProviderImpl.start()");
     }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/Activator.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/Activator.java
 Thu Feb 18 21:07:16 2016
@@ -20,7 +20,9 @@ package org.apache.felix.dm.lambda.sampl
 
 import static java.lang.System.out;
 
+import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.lambda.DependencyManagerActivator;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.log.LogService;
 
 /**
@@ -38,21 +40,21 @@ public class Activator extends Dependenc
      * Initialize our components using new DM-lambda activator base.
      */
     @Override
-    public void activate() throws Exception {
-       out.println("type \"log info\" to see the logs emitted by this test.");
+    public void init(BundleContext ctx, DependencyManager dm) throws Exception 
{
+       out.println("type \"log warn\" to see the logs emitted by this test.");
        
        // System.setProperty("http.proxyHost","your.http.proxy.host");
        // System.setProperty("http.proxyPort", "your.http.proxy.port");
                
-        // Create the PageLinks service, which asynchronously download the 
content of the Felix web page.
+        // Create the PageLinks service, which asynchronously downloads the 
content of the Felix web page.
        // The PageLink service will be started once the page has been 
downloaded (using a CompletableFuture).
         component(comp -> comp
             .factory(() -> new PageLinksImpl("http://felix.apache.org/";))
             .provides(PageLinks.class)
-            .withSrv(LogService.class, log -> log.cb(PageLinksImpl::bind)));
+            .withSvc(LogService.class, log -> log.add(PageLinksImpl::bind)));
         
         // Just wait for the PageLinks service and display all links found 
from the Felix web site.
-        component(comp -> comp.impl(this).withSrv(PageLinks.class, page -> 
page.cbi(this::setPageLinks))); 
+        component(comp -> comp.impl(this).withSvc(PageLinks.class, page -> 
page.add(this::setPageLinks))); 
     }
         
     /**

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/PageLinksImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/PageLinksImpl.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/PageLinksImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/future/PageLinksImpl.java
 Thu Feb 18 21:07:16 2016
@@ -37,7 +37,7 @@ public class PageLinksImpl implements Pa
                .thenApply(this::parseLinks);          
 
            // Add the future dependency so we'll be started once the 
CompletableFuture "futureLinks" has completed.
-           component(c, comp -> comp.withFuture(futureLinks, future -> 
future.cbi(this::setLinks)));
+           component(c, comp -> comp.withFuture(futureLinks, future -> 
future.complete(this::setLinks)));
        }
        
        // Called when our future has completed.
@@ -47,7 +47,7 @@ public class PageLinksImpl implements Pa
     
        // once our future has completed, our component is started.
        void start() {
-               m_log.log(LogService.LOG_INFO, "Service starting: number of 
links found from Felix web site: " + m_links.size());
+               m_log.log(LogService.LOG_WARNING, "Service starting: number of 
links found from Felix web site: " + m_links.size());
        }
        
        @Override

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java?rev=1731147&r1=1731146&r2=1731147&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java
 Thu Feb 18 21:07:16 2016
@@ -20,7 +20,9 @@ package org.apache.felix.dm.lambda.sampl
 
 import static java.lang.System.out;
 
+import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.lambda.DependencyManagerActivator;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.event.EventAdmin;
 import org.osgi.service.log.LogService;
@@ -30,25 +32,28 @@ import org.osgi.service.log.LogService;
  */
 public class Activator extends DependencyManagerActivator {
     @Override
-    public void activate() throws Exception {
-       out.println("type \"log info\" to see the logs emitted by this test.");
+    public void init(BundleContext ctx, DependencyManager dm) throws Exception 
{
+       out.println("type \"log warn\" to see the logs emitted by this test.");
        
        // Creates a Service Provider (property names are deduced from lambda 
parameter names).
        // (service dependencies are required by default)
         component(comp -> comp.impl(ServiceProviderImpl.class)
             .provides(ServiceProvider.class, p1 -> "v1", p2 -> 123)
-            .withSrv(LogService.class));
+            .withSvc(LogService.class));
             
         // Creates a Service Consumer. we depend on LogService, EventAdmin and 
on our ServiceProvider.
         // (LogService and EventAdmin are declared in one single method call).
+        // We also depend on a configuration. Our ServiceConsumer.updated 
method takes as argument a "Configuration" interface
+        // which is used to wrap the actual properties behind a dynamic proxy 
for our "Configuration" interface that is implemented by Dependency Manager.
+        // (the pid is assumed to be by default the fqdn of our Configuration 
interface).
         component(comp -> comp.impl(ServiceConsumer.class)
-            .withSrv(LogService.class, EventAdmin.class)
-            .withSrv(ServiceProvider.class, srv -> srv.filter("(p1=v1)")) 
-            .withCnf(ServiceConsumer.class));  
+            .withSvc(LogService.class, EventAdmin.class)
+            .withSvc(ServiceProvider.class, srv -> srv.filter("(p1=v1)")) 
+            .withCnf(cnf -> cnf.update(Configuration.class, 
ServiceConsumer::updated))); 
         
         // Creates a component that populates some properties in the 
Configuration Admin.
         // Here, we inject the CM (Configuration Admin) service dependency 
using a method reference:
-        component(comp -> comp.impl(Configurator.class)
-            .withSrv(ConfigurationAdmin.class, srv -> 
srv.cb(Configurator::bind)));
+        component(comp -> comp.factory(() -> new 
Configurator(Configuration.class.getName()))
+            .withSvc(ConfigurationAdmin.class, srv -> 
srv.add(Configurator::bind)));
     }
 }



Reply via email to