Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/InstanceBoundDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/InstanceBoundDependencyTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/InstanceBoundDependencyTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/InstanceBoundDependencyTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import java.util.HashMap;
 import java.util.Hashtable;
@@ -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)
-            .withService(S1.class, sb->sb.cb("addS1", "changeS1", 
"removeS1").autoConfig(true)).build();
+            .withSrv(S1.class, sb->sb.cb("addS1", "changeS1", 
"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
@@ -150,7 +150,7 @@ public class InstanceBoundDependencyTest
         }
         
         void init(Component c) {
-            component(c, comp->comp.withService(S2.class, srv -> 
srv.cb(C::addS2, C::changeS2, C::removeS2)));
+            component(c, comp->comp.withSrv(S2.class, srv -> srv.cb(C::addS2, 
C::changeS2, C::removeS2)));
             m_e.step(1);
         }
     }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ModifiedBundleDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ModifiedBundleDependencyTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ModifiedBundleDependencyTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ModifiedBundleDependencyTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
@@ -64,7 +64,7 @@ public class ModifiedBundleDependencyTes
 
         void init(Component c) {
             m_e.step(2);
-            component(c, comp -> comp.withService(A.class, srv -> 
srv.cb("add", "remove")));
+            component(c, comp -> comp.withSrv(A.class, srv -> srv.cb("add", 
"remove")));
         }
         
         public void add(A a) {

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependenciesTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependenciesTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependenciesTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependenciesTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
@@ -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)).withService(Service2.class, 
srv->srv.autoConfig("m_service2")).build();
-         Component c2 = component(m).impl(new 
MyComponent2(e)).withService(Service1.class, 
srv->srv.required(false).autoConfig(false).cb("added")).build();
+         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 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)).withService(Service2.class, 
srv->srv.autoConfig("m_service2")).build();
-        Component c2 = component(m).impl(new 
MyComponent2(e)).withService(Service1.class, 
srv->srv.required(false).autoConfig(false).cb("added")).build();
+        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 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
-                .withService(Service3.class, 
srv->srv.filter("(type=xx)").autoConfig("m_service3_xx"))
-                .withService(Service3.class, 
srv->srv.filter("(type=yy)").autoConfig("m_service3_yy")));
+                .withSrv(Service3.class, 
srv->srv.filter("(type=xx)").autoConfig("m_service3_xx"))
+                .withSrv(Service3.class, 
srv->srv.filter("(type=yy)").autoConfig("m_service3_yy")));
         }
         
         void start() {

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,9 +18,9 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
-
-import java.util.Hashtable;
+import static org.apache.felix.dm.lambda.ComponentCallback.START;
+import static org.apache.felix.dm.lambda.ComponentCallback.STOP;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
@@ -39,26 +39,24 @@ public class MultipleExtraDependencyTest
         
         Component sp2 = component(m)
               .impl(ServiceProvider2.class).provides(ServiceProvider2.class)
-              .withService(Runnable.class, 
srv->srv.filter("(foo=bar)").required(false).autoConfig("m_runnable"))
-              .withService(Sequencer.class, srv->srv.cb("bind"))
-              .life(null, "start", "stop", null)
+              .withSrv(Runnable.class, 
srv->srv.filter("(foo=bar)").required(false).autoConfig("m_runnable"))
+              .withSrv(Sequencer.class, srv->srv.cb("bind"))
               .composition("getComposition")
               .build();
 
         Component sp = component(m)
               .impl(ServiceProvider.class)
-              .provides(ServiceInterface.class.getName(), 
-                            new Hashtable() {{ put("foo", "bar"); }})
-              .withService(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
-              .withService(ServiceProvider2.class, srv->srv.cb("bind", 
"unbind"))
-              .life(null, "start", "stop")
+              .provides(ServiceInterface.class, foo -> "bar")
+              .cb(START, "start").cb(STOP, "stop")
+              .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+              .withSrv(ServiceProvider2.class, srv->srv.cb("bind", "unbind"))
               .build();
         
         Component sc = component(m)
               .impl(ServiceConsumer.class)
-              .withService(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
-              .withService(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service"))
-              .life(null, "start", "stop")
+              .cb(START, "start").cb(STOP, "stop")
+              .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+              .withSrv(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service"))
               .build();
         
         Component sequencer = component(m)

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest2.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest2.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest2.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleExtraDependencyTest2.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,10 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.ComponentCallback.INIT;
+import static org.apache.felix.dm.lambda.ComponentCallback.START;
+import static org.apache.felix.dm.lambda.ComponentCallback.STOP;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.Dependency;
@@ -38,18 +41,18 @@ public class MultipleExtraDependencyTest
         Component sp2 = component(m)
             .impl(ServiceProvider2.class)
             .provides(ServiceProvider2.class)
-            .life("init", "start", "stop")
+            .cb(INIT, "init").cb(START, "start").cb(STOP, "stop")
             .composition("getComposition").build();
         
         Component sp = component(m)
             .impl(ServiceProvider.class)
             .provides(ServiceInterface.class, "foo", "bar")                    
        
-            .life("init", "start", "stop")
+            .cb(INIT, ServiceProvider::init).cb(START, 
ServiceProvider::start).cb(STOP, ServiceProvider::stop)
             .build();
         
         Component sc = component(m)
             .impl(ServiceConsumer.class)
-            .life("init", "start", "stop")
+            .cb(INIT, "init").cb(START, "start").cb(STOP, "stop")
             .build();
         
         // Provide the Sequencer service to the MultipleAnnotationsTest class.
@@ -127,8 +130,8 @@ public class MultipleExtraDependencyTest
 
         public void init(Component s) {
             component(s, comp->comp
-                .withService(Sequencer.class, 
srv->srv.autoConfig("m_sequencer"))
-                .withService(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service")));
+                .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+                .withSrv(ServiceInterface.class, 
srv->srv.filter("(foo=bar)").autoConfig("m_service")));
         }
         
         void start() {
@@ -150,8 +153,8 @@ public class MultipleExtraDependencyTest
         public void init(Component c)
         {
             component(c, comp->comp
-                .withService(Sequencer.class, 
srv->srv.autoConfig("m_sequencer"))
-                .withService(ServiceProvider2.class, srv->srv.cb("bind", 
"unbind")));
+                .withSrv(Sequencer.class, srv->srv.autoConfig("m_sequencer"))
+                .withSrv(ServiceProvider2.class, srv->srv.cb("bind", 
"unbind")));
         }
         
         void bind(ServiceProvider2 provider2)
@@ -191,8 +194,8 @@ public class MultipleExtraDependencyTest
         public void init(Component c)
         {
             component(c, comp->comp
-                     .withService(Runnable.class, 
srv->srv.optional().filter("(foo=bar)"))
-                     .withService(Sequencer.class, srv->srv.cb("bind")));
+                     .withSrv(Runnable.class, 
srv->srv.optional().filter("(foo=bar)"))
+                     .withSrv(Sequencer.class, srv->srv.cb("bind")));
         }
         
         void bind(Sequencer seq)

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleServiceDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleServiceDependencyTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleServiceDependencyTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/MultipleServiceDependencyTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
@@ -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)).withService(ServiceInterface.class).build();
+       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSrv(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)).withService(ServiceInterface.class).build();
+       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSrv(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)).withService(ServiceInterface.class, srv->srv.cb("add", 
"remove")).build();
+       Component consumer = component(m).impl(new 
ServiceConsumer(e)).withSrv(ServiceInterface.class, srv->srv.cb("add", 
"remove")).build();
        m.add(provider2);
        m.add(consumer);
        e.waitForStep(3, 15000);

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/RemovedDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/RemovedDependencyTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/RemovedDependencyTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/RemovedDependencyTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,8 +18,8 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.serviceDependency;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
+import static 
org.apache.felix.dm.lambda.DependencyActivatorBase.serviceDependency;
 
 import java.util.ArrayList;
 import java.util.Hashtable;

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyCallbackSignaturesTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyCallbackSignaturesTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyCallbackSignaturesTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyCallbackSignaturesTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import java.util.Dictionary;
 import java.util.Hashtable;
@@ -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()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer2()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer3()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer4()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer5()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer6()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer7()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer8()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
-        component(m, c->c.impl(new Consumer9()).withService(Provider.class, 
srv->srv.cb("bind", "change", "remove")));
+        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")));
 
         m.add(provider);
         m_ensure.waitForStep(9, 5000);
@@ -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()).withService(Provider.class, 
srv->srv.cb(Consumer1::bind, Consumer1::change, Consumer1::remove)));
-        component(m, c->c.impl(new Consumer2()).withService(Provider.class, 
srv->srv.cb(Consumer2::bind, Consumer2::change, Consumer2::remove)));
-        component(m, c->c.impl(new Consumer3()).withService(Provider.class, 
srv->srv.cb(Consumer3::bind, Consumer3::change, Consumer3::remove)));
-        component(m, c->c.impl(new Consumer4()).withService(Provider.class, 
srv->srv.cb(Consumer4::bind, Consumer4::change, Consumer4::remove)));
-        component(m, c->c.impl(new Consumer5()).withService(Provider.class, 
srv->srv.cb(Consumer5::bind, Consumer5::change, Consumer5::remove)));
-        component(m, c->c.impl(new Consumer6()).withService(Provider.class, 
srv->srv.cb(Consumer6::bind, Consumer6::change, Consumer6::remove)));
-        component(m, c->c.impl(new Consumer7()).withService(Provider.class, 
srv->srv.cb(Consumer7::bind, Consumer7::change, Consumer7::remove)));
-        component(m, c->c.impl(new Consumer8()).withService(Provider.class, 
srv->srv.cb(Consumer8::bind, Consumer8::change, Consumer8::remove)));
-        component(m, c->c.impl(new Consumer9()).withService(Provider.class, 
srv->srv.cb(Consumer9::bind, Consumer9::change, Consumer9::remove)));
+        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)));
 
         m.add(provider);
         m_ensure.waitForStep(9, 5000);
@@ -105,7 +105,7 @@ public class ServiceDependencyCallbackSi
     private void declareConsumer(DependencyManager m, Object consumerImpl) {
         Component consumer = component(m)
             .impl(consumerImpl)
-            .withService(Provider.class, srv->srv.cb("bind", "change", 
"change"))
+            .withSrv(Provider.class, srv->srv.cb("bind", "change", "change"))
             .build();
         m.add(consumer);
     }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyInjectionTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyInjectionTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyInjectionTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyInjectionTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
@@ -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()).withService(ServiceInterface2.class).build();
+        Component sc = component(m).impl(new 
ServiceConsumer()).withSrv(ServiceInterface2.class).build();
            
         Component sc2 = component(m) // all dependencies are optional
             .impl(new ServiceConsumerNamedInjection(false, false)) 
-            .withService(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service"))
-            .withService(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service2"))
-            .withService(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service3"))
+            .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"))
             .build();
         
         Component sc3 = component(m) // second dependency is required, first 
and third are optional
             .impl(new ServiceConsumerNamedInjection(false, false))
-            .withService(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service"))
-            .withService(ServiceInterface2.class, 
s->s.required().autoConfig("m_service2"))
-            .withService(ServiceInterface2.class, 
s->s.optional().autoConfig("m_service3"))
+            .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"))
             .build();
         
         Component sc4 = component(m)

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyPropagateTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyPropagateTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyPropagateTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyPropagateTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import java.util.Dictionary;
 import java.util.Hashtable;
@@ -45,12 +45,12 @@ public class ServiceDependencyPropagateT
         
         Component c1 = component(m)
                       .impl(new C1(e))
-                      .withService(C2.class, s->s.cb("bind")).build();
+                      .withSrv(C2.class, s->s.cb("bind")).build();
 
         Component c2 = component(m)
                       .provides(C2.class.getName(), new Hashtable() {{ 
put("foo", "bar"); }})
                       .impl(new C2())
-                      .withService(C3.class, s->s.propagate()).build();
+                      .withSrv(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))
-                      .withService(C2.class, s->s.cb("bind")).build();
+                      .withSrv(C2.class, s->s.cb("bind")).build();
 
         C2 c2Impl = new C2();
         Component c2 = component(m)
                       .provides(C2.class.getName(), new Hashtable() {{ 
put("foo", "bar"); }})
                       .impl(c2Impl)
-                      .withService(C3.class, s->s.propagate(c2Impl, 
"getServiceProperties")).build();
+                      .withSrv(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))
-                      .withService(C2.class, s->s.cb(C1::bind)).build();
+                      .withSrv(C2.class, s->s.cb(C1::bind)).build();
 
         C2 c2Impl = new C2();
         Component c2 = component(m)
                       .provides(C2.class.getName(), new Hashtable() {{ 
put("foo", "bar"); }})
                       .impl(c2Impl)
-                      .withService(C3.class, 
s->s.propagate(c2Impl::getServiceProperties)).build();
+                      .withSrv(C3.class, 
s->s.propagate(c2Impl::getServiceProperties)).build();
         
         Component c3 = component(m)
                       .provides(C3.class.getName())

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
@@ -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)).withService(ServiceInterface.class).build();
+        Component sc = component(m).impl(new 
ServiceConsumer(e)).withSrv(ServiceInterface.class).build();
                        
         Component sc2 = component(m).impl(new ServiceConsumerCallbacks(e))
-            .withService(ServiceInterface.class, srv -> 
srv.required(false).cb(ServiceConsumerCallbacks::add, 
ServiceConsumerCallbacks::remove))
+            .withSrv(ServiceInterface.class, srv -> 
srv.required(false).cb(ServiceConsumerCallbacks::add, 
ServiceConsumerCallbacks::remove))
             .build();
 
         m.add(sp);

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceDependencyThroughCallbackInstanceTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Assert;
@@ -52,7 +52,7 @@ public class ServiceDependencyThroughCal
                CallbackInstance instance = new CallbackInstance();
                component(m, comp -> comp
                                .impl(new SimpleService() {})
-                               .withService(Service.class, srv -> 
srv.cbi(instance::added, instance::removed)));
+                               .withSrv(Service.class, srv -> 
srv.cbi(instance::added, instance::removed)));
                
                Assert.assertEquals(numberOfServices, instance.getCount());
                m.clear();

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceUpdateTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceUpdateTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceUpdateTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/ServiceUpdateTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import java.net.URL;
 import java.util.Dictionary;
@@ -43,11 +43,11 @@ public class ServiceUpdateTest extends T
         // activate it
         component(m, comp -> comp
                        .impl(new ServiceProvider(e))
-                       .withService(ServiceInterface.class, srv -> srv
+                       .withSrv(ServiceInterface.class, srv -> srv
                                        .cb(ServiceProvider::add, 
ServiceProvider::change, ServiceProvider::remove)));
         component(m, comp -> comp
                        .impl(provider)
-                       .withService(ResourceHandler.class, srv -> 
srv.cb(ResourceProvider::add, ResourceProvider::remove)));
+                       .withSrv(ResourceHandler.class, srv -> 
srv.cb(ResourceProvider::add, ResourceProvider::remove)));
                
         // TODO implement resource adapters in new builder API and use it for 
the following resource adapter.
         

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/TemporalServiceDependencyTest.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/TemporalServiceDependencyTest.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/TemporalServiceDependencyTest.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/src/org/apache/felix/dm/builder/lambda/itest/TemporalServiceDependencyTest.java
 Wed Jan 27 23:27:34 2016
@@ -18,8 +18,8 @@
  */
 package org.apache.felix.dm.builder.lambda.itest;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.serviceDependency;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
+import static 
org.apache.felix.dm.lambda.DependencyActivatorBase.serviceDependency;
 
 import java.util.Hashtable;
 
@@ -43,7 +43,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).withService(TemporalServiceInterface.class, 
s->s.timeout(10000)).build();
+        Component sc = 
component(m).impl(consumer).withSrv(TemporalServiceInterface.class, 
s->s.timeout(10000)).build();
         // add the service consumer
         m.add(sc);
         // now add the first provider
@@ -74,7 +74,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).withService(TemporalServiceInterface.class, 
srv->srv.cb("add", "remove").timeout(10000)).build();
+        Component sc = 
component(m).impl(consumer).withSrv(TemporalServiceInterface.class, 
srv->srv.cb("add", "remove").timeout(10000)).build();
             
         // add the service consumer
         m.add(sc);
@@ -167,7 +167,7 @@ public class TemporalServiceDependencyTe
         };
         Component consumerComp = component(m)
                        .impl(consumer)
-                       .withService(Runnable.class, 
s->s.timeout(5000).filter("(target=" + getClass().getSimpleName() + 
")")).build();
+                       .withSrv(Runnable.class, 
s->s.timeout(5000).filter("(target=" + getClass().getSimpleName() + 
")")).build();
         m.add(consumerComp);
         m.add(providerComp);
         ensure.waitForStep(2, 5000);

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/compositefactory/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/compositefactory/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/compositefactory/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/compositefactory/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -19,9 +19,9 @@
 package org.apache.felix.dependencymanager.lambda.samples.compositefactory;
 
 import static java.lang.System.out;
-import static org.apache.felix.dm.builder.lambda.ComponentBuilder.Cb.START;
+import static org.apache.felix.dm.lambda.ComponentCallback.START;
 
-import org.apache.felix.dm.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.log.LogService;
 
@@ -52,13 +52,13 @@ public class Activator extends Dependenc
         // before creating the composition of classes.
         component(comp -> comp
             .factory(factory::create, factory::getComposition)
-            .life(START, ProviderImpl::start) // only call start on 
ProviderImpl
-            .withService(LogService.class, srv -> 
srv.cb(ProviderImpl::bind).cb(ProviderComposite1::bind))
-            .withConf(conf -> 
conf.pid(ProviderFactory.class).cbi(factory::updated)));
+            .cb(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)));
                 
         // Creates a configuration with pid name = 
"org.apache.felix.dependencymanager.lambda.samples.compositefactory.ProviderFactory"
         component(comp -> comp
             .impl(Configurator.class)
-            .withService(ConfigurationAdmin.class));
+            .withSrv(ConfigurationAdmin.class));
     }    
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -20,7 +20,7 @@ package org.apache.felix.dependencymanag
 
 import static java.lang.System.out;
 
-import org.apache.felix.dm.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.log.LogService;
 
 /**
@@ -34,17 +34,16 @@ public class Activator extends Dependenc
         createDeviceAndParameter(1);
         createDeviceAndParameter(2);
 
-        adapter(Device.class, comp -> comp
-            .provides(DeviceAccess.class).impl(DeviceAccessImpl.class));
+        adapter(Device.class, comp -> 
comp.provides(DeviceAccess.class).impl(DeviceAccessImpl.class));
             
         component(comp -> comp
             .impl(DeviceAccessConsumer.class)
-            .withService(LogService.class)
-            .withService(DeviceAccess.class, srv -> 
srv.cb(DeviceAccessConsumer::add)));       
+            .withSrv(LogService.class)
+            .withSrv(DeviceAccess.class, device -> 
device.cb(DeviceAccessConsumer::add)));       
     }
     
     private void createDeviceAndParameter(int id) {
-        component(buicomplder -> buicomplder
+        component(comp -> comp
             .factory(() -> new DeviceImpl(id))
             .provides(Device.class, "device.id", id));
                        

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/DeviceAccessImpl.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/DeviceAccessImpl.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/DeviceAccessImpl.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/device/DeviceAccessImpl.java
 Wed Jan 27 23:27:34 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.dependencymanager.lambda.samples.device;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import org.apache.felix.dm.Component;
 
@@ -32,11 +32,12 @@ public class DeviceAccessImpl implements
     void init(Component c) {
         // Dynamically add an extra dependency on a DeviceParameter (using 
java8 builder).
        // Notice that we also add a "device.access.id" service property 
dynamically.
+                
         component(c, builder -> builder
                        .properties("device.access.id", device.getDeviceId())
-                       .withService(DeviceParameter.class, srv -> 
srv.filter("(device.id=" + device.getDeviceId() + ")")));
+                       .withSrv(DeviceParameter.class, srv -> 
srv.filter("(device.id=" + device.getDeviceId() + ")")));
     }
-
+    
     @Override
     public Device getDevice() {
         return device;

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/dictionary/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/dictionary/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/dictionary/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/dictionary/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -19,11 +19,11 @@
 package org.apache.felix.dependencymanager.lambda.samples.dictionary;
 
 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.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.log.LogService;
+import static 
org.apache.felix.service.command.CommandProcessor.COMMAND_FUNCTION;
+import static org.apache.felix.service.command.CommandProcessor.COMMAND_SCOPE;
 
 /**
  * @author <a href="mailto:[email protected]";>Felix Project Team</a>
@@ -40,20 +40,20 @@ public class Activator extends Dependenc
             .factoryPid(DictionaryConfiguration.class)
             .propagate()
             .cb(DictionaryImpl::updated)
-            .withService(LogService.class, dep -> dep.required(false)));
+            .withSrv(LogService.class, log -> log.optional()));
                             
         // Create the Dictionary Aspect
         aspect(DictionaryService.class, aspect -> aspect
             .impl(DictionaryAspect.class)
             .filter("(lang=en)").rank(10)
-            .withConf(conf -> 
conf.pid(DictionaryAspectConfiguration.class).cb(DictionaryAspect::addWords))
-            .withService(LogService.class, srv -> srv.required(false)));
+            .withCnf(conf -> 
conf.pid(DictionaryAspectConfiguration.class).cb(DictionaryAspect::addWords))
+            .withSrv(LogService.class, log -> log.optional()));
                     
         // Create the SpellChecker component        
         component(comp -> comp
             .impl(SpellChecker.class)
             .provides(SpellChecker.class, COMMAND_SCOPE, "dictionary", 
COMMAND_FUNCTION, new String[] {"spellcheck"}) 
-            .withService(DictionaryService.class)
-            .withService(LogService.class, srv -> srv.required(false)));
+            .withSrv(DictionaryService.class)
+            .withSrv(LogService.class, log -> log.optional()));
     }
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/factory/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/factory/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/factory/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/factory/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -19,9 +19,9 @@
 package org.apache.felix.dependencymanager.lambda.samples.factory;
 
 import static java.lang.System.out;
-import static org.apache.felix.dm.builder.lambda.ComponentBuilder.Cb.START;
+import static org.apache.felix.dm.lambda.ComponentCallback.START;
 
-import org.apache.felix.dm.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.log.LogService;
 
 /**
@@ -35,7 +35,7 @@ public class Activator extends Dependenc
         component(comp -> comp
             .factory(ProviderFactory::new, ProviderFactory::create)       
             .provides(Provider.class)
-            .life(START, ProviderImpl::start)                      
-            .withService(LogService.class, srv -> 
srv.required().cb(ProviderImpl::set)));
+            .cb(START, ProviderImpl::start)                      
+            .withSrv(LogService.class, log -> 
log.required().cb(ProviderImpl::set)));
     }
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/future/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/future/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/future/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/future/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -23,7 +23,7 @@ import static java.lang.System.out;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-import org.apache.felix.dm.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.log.LogService;
 
 /**
@@ -48,14 +48,12 @@ public class Activator extends Dependenc
         // Create the FelixLink service, it will be started once our previous 
future has completed.
         component(comp -> comp
             .impl(FelixLinksImpl.class)
-               .provides(FelixLinks.class)
-            .withService(LogService.class, srv -> srv.cb(FelixLinksImpl::bind))
-            .withFuture(futureLinks, future -> 
future.cb(FelixLinksImpl::setLinks)));
+            .provides(FelixLinks.class)
+            .withSrv(LogService.class, log -> log.cb(FelixLinksImpl::bind))
+            .withFuture(futureLinks, links -> 
links.cb(FelixLinksImpl::setLinks)));
         
         // Define a component that just displays the links found from the 
Felix web site.
         // It depends on a log service and on the FelixLink service, which are 
both injected in class fields.
-        component(comp -> comp
-            .impl(DisplayFelixLinks.class)
-            .withService(LogService.class, FelixLinks.class)); 
+        component(comp -> 
comp.impl(DisplayFelixLinks.class).withSrv(LogService.class, 
FelixLinks.class)); 
     }
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/hello/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/hello/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/hello/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/hello/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -19,9 +19,9 @@
 package org.apache.felix.dependencymanager.lambda.samples.hello;
 
 import static java.lang.System.out;
-import static org.apache.felix.dm.builder.lambda.ComponentBuilder.Cb.START;
+import static org.apache.felix.dm.lambda.ComponentCallback.START;
 
-import org.apache.felix.dm.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.log.LogService;
 
@@ -36,15 +36,15 @@ public class Activator extends Dependenc
         component(comp -> comp
             .impl(ServiceProviderImpl.class)
             .provides(ServiceProvider.class, property1 -> "value1", property2 
-> 123) // property names are deduced from lambda parameter names
-            .life(START, ServiceProviderImpl::activate)
-            .withService(LogService.class, srv -> 
srv.cb(ServiceProviderImpl::bind)));
+            .cb(START, ServiceProviderImpl::activate)
+            .withSrv(LogService.class, log -> 
log.cb(ServiceProviderImpl::bind)));
 
         component(comp -> comp
             .impl(ServiceConsumer.class)
-            .withService(LogService.class)
-            .withService(ServiceProvider.class, srv -> 
srv.filter("(property1=value1)")) 
-            .withConf(conf -> 
conf.pid(ServiceConsumer.class).cb(ServiceConsumer::updated)));  
+            .withSrv(LogService.class)
+            .withSrv(ServiceProvider.class, srv -> 
srv.filter("(property1=value1)")) 
+            .withCnf(conf -> 
conf.pid(ServiceConsumer.class).cb(ServiceConsumer::updated)));  
         
-        component(comp -> 
comp.impl(Configurator.class).withService(ConfigurationAdmin.class));
+        component(comp -> 
comp.impl(Configurator.class).withSrv(ConfigurationAdmin.class));
     }
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -20,7 +20,7 @@ package org.apache.felix.dependencymanag
 
 import static java.lang.System.out;
 
-import org.apache.felix.dm.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.log.LogService;
 
 /**
@@ -44,11 +44,11 @@ public class Activator extends Dependenc
         component(comp -> comp
                .provides(SiteInfo.class)
                .factory(() -> new SiteInfoImpl("http://felix.apache.org/";))
-            .withService(LogService.class, srv -> srv.cb(SiteInfoImpl::bind)));
+            .withSrv(LogService.class, srv -> srv.cb(SiteInfoImpl::bind)));
         
         // Define the FelixSite component that depends on the FelixSiteInfo 
service
         component(comp -> comp
             .impl(DisplaySite.class)
-            .withService(LogService.class, SiteInfo.class));
+            .withSrv(LogService.class, SiteInfo.class));
     }
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/SiteInfoImpl.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/SiteInfoImpl.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/SiteInfoImpl.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/completable/SiteInfoImpl.java
 Wed Jan 27 23:27:34 2016
@@ -1,6 +1,6 @@
 package org.apache.felix.dependencymanager.lambda.samples.rx.completable;
 
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import java.io.IOException;
 import java.net.URL;

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/Activator.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/Activator.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/Activator.java
 Wed Jan 27 23:27:34 2016
@@ -20,7 +20,7 @@ package org.apache.felix.dependencymanag
 
 import static java.lang.System.out;
 
-import org.apache.felix.dm.builder.lambda.DependencyActivatorBase;
+import org.apache.felix.dm.lambda.DependencyActivatorBase;
 import org.osgi.service.log.LogService;
 
 public class Activator extends DependencyActivatorBase {
@@ -28,7 +28,7 @@ public class Activator extends Dependenc
        @Override
        protected void init() throws Exception {
        out.println("type \"log info\" to see the logs emitted by this test.");
-               component(comp -> 
comp.impl(ObservableComponent.class).withService(LogService.class));
+               component(comp -> 
comp.impl(ObservableComponent.class).withSrv(LogService.class));
        }
 
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/ObservableComponent.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/ObservableComponent.java?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/ObservableComponent.java
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dependencymanager/lambda/samples/rx/observable/ObservableComponent.java
 Wed Jan 27 23:27:34 2016
@@ -18,13 +18,14 @@
  */
 package org.apache.felix.dependencymanager.lambda.samples.rx.observable;
 
-import static org.apache.felix.dm.builder.lambda.ComponentBuilder.Cb.START;
-import static 
org.apache.felix.dm.builder.lambda.DependencyActivatorBase.component;
+import static org.apache.felix.dm.lambda.ComponentCallback.START;
+import static org.apache.felix.dm.lambda.DependencyActivatorBase.component;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import 
org.apache.felix.dependencymanager.lambda.samples.rx.observable.ObservableComponent.DocumentViewer;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.osgi.service.log.LogService;
@@ -80,7 +81,7 @@ public class ObservableComponent {
                publisher.onSubscribe(EmptySubscription.INSTANCE);
                        component(m_dm, builder -> builder
                                        .factory(() -> new 
DocumentViewer(title))
-                                       .lifeInst(START, publisher::onNext));
+                                       .cbi(START, publisher::onNext));
                });
        }
 }

Modified: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/bnd.bnd
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/bnd.bnd?rev=1727214&r1=1727213&r2=1727214&view=diff
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/bnd.bnd
 (original)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/bnd.bnd
 Wed Jan 27 23:27:34 2016
@@ -5,7 +5,9 @@ Bundle-Version: 1.0.0
        org.apache.felix.dependencymanager;version=latest,\
        osgi.core;version=6.0,\
        osgi.cmpn;version=6.0
-Export-Package: org.apache.felix.dm.builder.lambda
+Export-Package: \
+       org.apache.felix.dm.lambda,\
+       org.apache.felix.dm.lambda.callbacks
 -runfw: org.apache.felix.framework;version='[4.4.1,4.4.1]'
 -runee: JavaSE-1.8
-Private-Package: org.apache.felix.dm.builder.lambda.impl
\ No newline at end of file
+Private-Package: org.apache.felix.dm.lambda.impl
\ No newline at end of file

Added: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleAdapterBuilder.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleAdapterBuilder.java?rev=1727214&view=auto
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleAdapterBuilder.java
 (added)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleAdapterBuilder.java
 Wed Jan 27 23:27:34 2016
@@ -0,0 +1,77 @@
+package org.apache.felix.dm.lambda;
+
+import org.apache.felix.dm.lambda.callbacks.CbBundle;
+import org.apache.felix.dm.lambda.callbacks.CbComponentBundle;
+import org.apache.felix.dm.lambda.callbacks.CbTypeBundle;
+import org.apache.felix.dm.lambda.callbacks.CbTypeComponentBundle;
+
+/**
+ * Defines the interface for a Dependency Manager Factory Configuration 
Adapter.
+ * 
+ * Example that defines a factory configuration adapter service for the 
"foo.bar" factory pid.
+ * 
+ * <pre> {@code
+ * public class Activator extends DependencyActivatorBase {
+ *     public void init() throws Exception { 
+ *         factoryPidAdapter(comp -> comp
+ *             
.factoryPid("foo.bar").onUpdate(ServiceImpl::updated).propagate()
+ *             .impl(DictionaryImpl.class)
+ *             .withService(LogService.class, dep -> dep.required(false)));
+ *    }
+ * }</pre>
+ *
+ * TODO: javadoc
+ */
+public interface BundleAdapterBuilder extends 
ComponentBuilder<BundleAdapterBuilder> {
+    /**
+     * Sets the bundle state mask to depend on. The OSGi BundleTracker 
explains this mask in more detail, but
+     * it is basically a mask with flags for each potential state a bundle can 
be in.
+     * 
+     * @param mask the mask to use
+     */
+    BundleAdapterBuilder mask(int mask);
+    
+    /**
+     * Sets the filter condition to depend on. Filters are matched against the 
full manifest of a bundle.
+     * 
+     * @param filter the filter condition
+     * @return the bundle dependency builder
+     * @throws IllegalArgumentException if the filter is invalid
+     */
+    BundleAdapterBuilder filter(String filter);
+
+    /**
+     * Sets property propagation. If set to <code>true</code> any bundle 
manifest properties will be added
+     * to the service properties of the component that has this dependency (if 
it registers as a service).
+     * 
+     * @param propagate <code>true</code> to propagate the bundle manifest 
properties
+     * @return the bundle dependency builder
+     */
+    BundleAdapterBuilder propagate(boolean propagate);
+    
+    /**
+     * Sets property propagation. If set to <code>true</code> any bundle 
manifest properties will be added
+     * to the service properties of the component that has this dependency (if 
it registers as a service).
+     * 
+     * @param propagate <code>true</code> to propagate the bundle manifest 
properties
+     * @return the bundle dependency builder
+     */
+    BundleAdapterBuilder propagate();
+    
+    BundleAdapterBuilder cb(String ... callbacks);
+    BundleAdapterBuilder cb(Object callbackInstance, String ... callbacks);
+
+    <T> BundleAdapterBuilder cb(CbTypeBundle<T> add);
+    <T> BundleAdapterBuilder cb(CbTypeBundle<T> add, CbTypeBundle<T> remove);
+    <T> BundleAdapterBuilder cb(CbTypeBundle<T> add, CbTypeBundle<T> change, 
CbTypeBundle<T> remove);
+    BundleAdapterBuilder cbi(CbBundle add);
+    BundleAdapterBuilder cbi(CbBundle add, CbBundle remove);
+    BundleAdapterBuilder cbi(CbBundle add, CbBundle change, CbBundle remove);
+
+    <T> BundleAdapterBuilder cb(CbTypeComponentBundle<T> add);         
+    <T> BundleAdapterBuilder cb(CbTypeComponentBundle<T> add, 
CbTypeComponentBundle<T> remove);         
+    <T> BundleAdapterBuilder cb(CbTypeComponentBundle<T> add, 
CbTypeComponentBundle<T> change, CbTypeComponentBundle<T> remove);         
+    BundleAdapterBuilder cbi(CbComponentBundle add);
+    BundleAdapterBuilder cbi(CbComponentBundle add, CbComponentBundle remove);
+    BundleAdapterBuilder cbi(CbComponentBundle add, CbComponentBundle change, 
CbComponentBundle remove);
+}

Added: 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleDependencyBuilder.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleDependencyBuilder.java?rev=1727214&view=auto
==============================================================================
--- 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleDependencyBuilder.java
 (added)
+++ 
felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/lambda/BundleDependencyBuilder.java
 Wed Jan 27 23:27:34 2016
@@ -0,0 +1,138 @@
+package org.apache.felix.dm.lambda;
+
+import java.util.Dictionary;
+import java.util.function.Supplier;
+
+import org.apache.felix.dm.BundleDependency;
+import org.apache.felix.dm.lambda.callbacks.CbBundle;
+import org.apache.felix.dm.lambda.callbacks.CbComponentBundle;
+import org.apache.felix.dm.lambda.callbacks.CbTypeBundle;
+import org.apache.felix.dm.lambda.callbacks.CbTypeComponentBundle;
+import org.osgi.framework.Bundle;
+
+/**
+ * Builder for a DependencyManager <code>BundleDependency</code>.
+ * TODO: add javadocs
+ * 
+ * @author <a href="mailto:[email protected]";>Felix Project Team</a>
+ */
+public interface BundleDependencyBuilder extends 
DependencyBuilder<BundleDependency> {
+    
+    BundleDependencyBuilder cb(String ... callbacks);
+    BundleDependencyBuilder cb(Object callbackInstance, String ... callbacks);
+
+    <T> BundleDependencyBuilder cb(CbTypeBundle<T> add);
+    <T> BundleDependencyBuilder cb(CbTypeBundle<T> add, CbTypeBundle<T> 
remove);
+    <T> BundleDependencyBuilder cb(CbTypeBundle<T> add, CbTypeBundle<T> 
change, CbTypeBundle<T> remove);
+    
+    <T> BundleDependencyBuilder cb(CbTypeComponentBundle<T> add); 
+    <T> BundleDependencyBuilder cb(CbTypeComponentBundle<T> add, 
CbTypeComponentBundle<T> remove); 
+    <T> BundleDependencyBuilder cb(CbTypeComponentBundle<T> add, 
CbTypeComponentBundle<T> change, CbTypeComponentBundle<T> remove); 
+ 
+    BundleDependencyBuilder cbi(CbBundle add);
+    BundleDependencyBuilder cbi(CbBundle add, CbBundle remove);
+    BundleDependencyBuilder cbi(CbBundle add, CbBundle change, CbBundle 
remove);
+
+    BundleDependencyBuilder cbi(CbComponentBundle add);
+    BundleDependencyBuilder cbi(CbComponentBundle add, CbComponentBundle 
remove);
+    BundleDependencyBuilder cbi(CbComponentBundle add, CbComponentBundle 
change, CbComponentBundle remove);
+
+    /**
+     * Enables auto configuration for this dependency. This means the 
component implementation (composition) will be
+     * injected with this bundle dependency automatically.
+     * 
+     * @param autoConfig <code>true</code> to enable auto configuration
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder autoConfig(boolean autoConfig);
+
+    /**
+     * Enables auto configuration for this dependency. This means the 
component implementation (composition) will be
+     * injected with this bundle dependency automatically.
+     * 
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder autoConfig();
+
+    /**
+     * Sets the dependency to be required.
+     * 
+     * @param required <code>true</code> if this bundle dependency is required
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder required(boolean required);
+
+    /**
+     * Sets the dependency to be required.
+     * 
+     * @param required <code>true</code> if this bundle dependency is required
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder required();
+
+    /**
+     * Sets the bundle to depend on directly.
+     * 
+     * @param bundle the bundle to depend on
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder bundle(Bundle bundle);
+
+    /**
+     * Sets the filter condition to depend on. Filters are matched against the 
full manifest of a bundle.
+     * 
+     * @param filter the filter condition
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder filter(String filter);
+
+    /**
+     * Sets the bundle state mask to depend on. The OSGi BundleTracker 
explains this mask in more detail, but
+     * it is basically a mask with flags for each potential state a bundle can 
be in.
+     * 
+     * @param mask the mask to use
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder mask(int mask);
+
+    /**
+     * Sets property propagation. If set to <code>true</code> any bundle 
manifest properties will be added
+     * to the service properties of the component that has this dependency (if 
it registers as a service).
+     * 
+     * @param propagate <code>true</code> to propagate the bundle manifest 
properties
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder propagate(boolean propagate);
+    
+    /**
+     * Sets property propagation. any bundle manifest properties will be added
+     * to the service properties of the component that has this dependency (if 
it registers as a service).
+     * 
+     * @return the bundle dependency builder
+     */
+    public BundleDependencyBuilder propagate();
+    
+    /**
+     * Sets an Object instance and a callback method used to propagate some 
properties to the provided service properties.
+     * The method will be invoked on the specified object instance and must 
have one of the following signatures:
+     * <ul><li>Dictionary callback(ServiceReference, Object service) 
+     * <li>Dictionary callback(ServiceReference)
+     * </ul>
+     * @param instance the Object instance which is used to retrieve 
propagated service properties 
+     * @param method the method to invoke for retrieving the properties to be 
propagated to the service properties.
+     * @return this service dependency. builder
+     */
+    public BundleDependencyBuilder propagate(Object instance, String method);
+    
+    /**
+     * Sets an Object instance and a callback method used to propagate some 
properties to the provided service properties.
+     * The method will be invoked on the specified object instance and must 
have one of the following signatures:
+     * <ul><li>Dictionary callback(ServiceReference, Object service) 
+     * <li>Dictionary callback(ServiceReference)
+     * </ul>
+     * @param instance the Object instance which is used to retrieve 
propagated service properties 
+     * @return this service dependency. builder
+     */
+    public BundleDependencyBuilder propagate(Supplier<Dictionary<?, ?>> 
instance);
+    
+}


Reply via email to