Simplified hello sample.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1727896 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/hello.bndrun b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/hello.bndrun
index 3cd553d..6800050 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/hello.bndrun
+++ b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/hello.bndrun
@@ -14,6 +14,7 @@
org.apache.felix.dependencymanager.lambda.samples.hello;version=latest,\
org.apache.felix.dependencymanager;version=4.2.0,\
org.apache.felix.dependencymanager.shell;version=4.0.3,\
- org.apache.felix.dependencymanager.lambda;version=latest
+ org.apache.felix.dependencymanager.lambda;version=latest,\
+ org.apache.felix.eventadmin;version=1.4.4
\ No newline at end of file
diff --git a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java
index e36a7f2..f2b8dea 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/Activator.java
@@ -22,6 +22,7 @@
import org.apache.felix.dm.lambda.DependencyManagerActivator;
import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.event.EventAdmin;
import org.osgi.service.log.LogService;
/**
@@ -36,25 +37,17 @@
component(comp -> comp
.impl(ServiceProviderImpl.class)
.provides(ServiceProvider.class, property1 -> "value1", property2 -> 123) // property names are deduced from lambda parameter names
- .start(ServiceProviderImpl::activate)
- .withSrv(LogService.class, log -> log.cb(ServiceProviderImpl::bind)));
+ .withSrv(LogService.class));
- // Creates a Service Consumer. Notice that if your configuration callback is "updated", you can
- // simply use "withCnf(pid)" instead of explicitely providing the method reference.
+ // Creates a Service Consumer. we depend on LogService, EventAdmin and on our ServiceProvider.
+ // (LogService and EventAdmin are declared in one single method call).
component(comp -> comp
.impl(ServiceConsumer.class)
- .withSrv(LogService.class)
+ .withSrv(LogService.class, EventAdmin.class)
.withSrv(ServiceProvider.class, srv -> srv.filter("(property1=value1)"))
- .withCnf(conf -> conf.pid(ServiceConsumer.class).cb(ServiceConsumer::updated)));
+ .withCnf(ServiceConsumer.class));
- // Same as above, but using a shorter form of "withCnf" declaration
-// component(comp -> comp
-// .impl(ServiceConsumer.class)
-// .withSrv(LogService.class)
-// .withSrv(ServiceProvider.class, srv -> srv.filter("(property1=value1)"))
-// .withCnf(ServiceConsumer.class));
-
// Creates a component that populates some properties in the Configuration Admin.
component(comp -> comp.impl(Configurator.class).withSrv(ConfigurationAdmin.class));
}
diff --git a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceConsumer.java b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceConsumer.java
index 3762789..a67fa4c 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceConsumer.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceConsumer.java
@@ -20,6 +20,7 @@
import java.util.Dictionary;
+import org.osgi.service.event.EventAdmin;
import org.osgi.service.log.LogService;
/**
@@ -30,10 +31,9 @@
public class ServiceConsumer {
volatile ServiceProvider service;
volatile LogService log;
- Dictionary<?, ?> conf;
+ volatile EventAdmin eventAdmin;
public void updated(Dictionary<String, Object> conf) {
- this.conf = conf;
}
public void start() {
diff --git a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceProviderImpl.java b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceProviderImpl.java
index 221b75c..b0134c0 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceProviderImpl.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.lambda.samples/src/org/apache/felix/dm/lambda/samples/hello/ServiceProviderImpl.java
@@ -28,12 +28,10 @@
public class ServiceProviderImpl implements ServiceProvider {
volatile LogService log;
- void bind(LogService log) { this.log = log; }
-
- void activate() {
- log.log(LogService.LOG_INFO, "ServiceProviderImpl.start");
+ void start() {
+ // default lifecycle start calback (all required dependencies have been injected when start is called.
}
-
+
@Override
public void hello() {
log.log(LogService.LOG_INFO, "ServiceProviderImpl.hello");