You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2017/11/03 15:25:07 UTC
[08/11] aries-jax-rs-whiteboard git commit: Improve dependency
checking
Improve dependency checking
It only uses the first one of each dependency as a trigger for
starting and the last one of each dependency as a trigger for
closing.
Project: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/repo
Commit: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/commit/8fd8f7f8
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/8fd8f7f8
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/8fd8f7f8
Branch: refs/heads/master
Commit: 8fd8f7f8bf832db35272df301bd1a534f75b5275
Parents: 388fbfd
Author: Carlos Sierra <cs...@apache.org>
Authored: Mon Oct 30 08:33:25 2017 +0100
Committer: Carlos Sierra <cs...@apache.org>
Committed: Fri Nov 3 16:18:24 2017 +0100
----------------------------------------------------------------------
.../jax/rs/whiteboard/internal/Whiteboard.java | 21 ++++++++------------
1 file changed, 8 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/8fd8f7f8/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
----------------------------------------------------------------------
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
index 0277965..b7c412b 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
@@ -84,6 +84,7 @@ import static org.apache.aries.osgi.functional.OSGi.join;
import static org.apache.aries.osgi.functional.OSGi.just;
import static org.apache.aries.osgi.functional.OSGi.nothing;
import static org.apache.aries.osgi.functional.OSGi.onClose;
+import static org.apache.aries.osgi.functional.OSGi.once;
import static org.apache.aries.osgi.functional.OSGi.register;
import static org.apache.aries.osgi.functional.OSGi.serviceReferences;
import static org.osgi.service.http.runtime.HttpServiceRuntimeConstants.HTTP_SERVICE_ENDPOINT;
@@ -552,12 +553,10 @@ public class Whiteboard {
applicationReference.getProperty(JAX_RS_EXTENSION_SELECT));
if (extensionDependencies.length > 0) {
- program = onClose(
- () -> _runtime.removeDependentApplication(
- applicationReference)).
- then(program);
-
- _runtime.addDependentApplication(applicationReference);
+ program = just(0).effects(
+ __ -> _runtime.addDependentApplication(applicationReference),
+ __ -> _runtime.removeDependentApplication(applicationReference)
+ ).then(program);
}
else {
return program;
@@ -570,7 +569,7 @@ public class Whiteboard {
extensionDependency);
program =
- serviceReferences(extensionDependency).
+ once(serviceReferences(extensionDependency)).
flatMap(
sr -> {
Object applicationSelectProperty =
@@ -604,10 +603,6 @@ public class Whiteboard {
then(program);
}
- program = onClose(
- ()-> _runtime.removeDependentApplication(applicationReference)).
- then(program);
-
program = program.effects(
__ -> _runtime.removeDependentApplication(applicationReference),
__ -> {}
@@ -639,14 +634,14 @@ public class Whiteboard {
extensionDependency);
program =
- serviceReferences(ApplicationExtensionRegistration.class).
+ once(serviceReferences(ApplicationExtensionRegistration.class).
filter(
sr -> getApplicationName(sr::getProperty).equals(
applicationName)
).
filter(
extensionFilter::match
- ).effects(
+ )).effects(
__ -> {},
__ -> _runtime.addDependentService(serviceReference)
).