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