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/08/25 16:38:33 UTC
[3/4] aries-jax-rs-whiteboard git commit: Apply counter more
accurately
Apply counter more accurately
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/999afada
Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/999afada
Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/999afada
Branch: refs/heads/master
Commit: 999afada6cce3094b04f524e1499b285fa32c0e5
Parents: 8a07626
Author: Carlos Sierra <cs...@apache.org>
Authored: Fri Aug 25 18:36:44 2017 +0200
Committer: Carlos Sierra <cs...@apache.org>
Committed: Fri Aug 25 18:36:44 2017 +0200
----------------------------------------------------------------------
.../jax/rs/whiteboard/internal/Whiteboard.java | 52 ++++++++++++--------
1 file changed, 31 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/999afada/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 3b6abef..b19b523 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
@@ -132,33 +132,37 @@ public class Whiteboard {
)));
}
- public static OSGi<?> createWhiteboard(Dictionary<String, ?> configuration) {
+ public static OSGi<?> createWhiteboard(
+ Dictionary<String, ?> configuration) {
+
AriesJaxRSServiceRuntime runtime = new AriesJaxRSServiceRuntime();
Map<String, ?> configurationMap = Maps.from(configuration);
return
bundleContext().flatMap(bundleContext ->
- registerJaxRSServiceRuntime(runtime, bundleContext, configurationMap).flatMap(runtimeRegistration ->
- createDefaultJaxRsServiceRegistrator(configurationMap, runtime).flatMap(defaultApplicationReference ->
- just(new ServiceRegistrationChangeCounter(runtimeRegistration)).flatMap(counter ->
+ registerJaxRSServiceRuntime(
+ runtime, bundleContext, configurationMap).
+ flatMap(runtimeRegistration ->
+ createDefaultJaxRsServiceRegistrator(configurationMap, runtime).
+ flatMap(defaultApplicationReference ->
+ just(new ServiceRegistrationChangeCounter(runtimeRegistration)).
+ flatMap(counter ->
just(runtimeRegistration.getReference()).flatMap(runtimeReference ->
all(
- ignore(countChanges(
+ ignore(
whiteboardApplications(
- runtimeReference, runtime, configurationMap),
- counter)),
- ignore(countChanges(
+ runtimeReference, runtime, configurationMap,
+ counter)),
+ ignore(
whiteBoardApplicationResources(
bundleContext, runtimeReference,
- defaultApplicationReference, runtime),
- counter)),
- ignore(countChanges(
+ defaultApplicationReference, runtime, counter)),
+ ignore(
whiteBoardApplicationExtensions(
bundleContext, runtimeReference,
- defaultApplicationReference, runtime),
- counter))
- ))))));
+ defaultApplicationReference, runtime, counter)
+ )))))));
}
public static OSGi<?> deployRegistrator(
@@ -544,11 +548,12 @@ public class Whiteboard {
BundleContext bundleContext,
ServiceReference<?> jaxRsRuntimeServiceReference,
ApplicationReference defaultApplicationReference,
- AriesJaxRSServiceRuntime runtime) {
+ AriesJaxRSServiceRuntime runtime, ServiceRegistrationChangeCounter counter) {
return
onlySupportedInterfaces(
- serviceReferences(getApplicationExtensionsFilter()).
+ countChanges(serviceReferences(getApplicationExtensionsFilter()).
filter(new TargetFilter<>(jaxRsRuntimeServiceReference)),
+ counter),
runtime::addInvalidExtension, runtime::removeInvalidExtension).
flatMap(endpointReference ->
chooseApplication(
@@ -570,10 +575,13 @@ public class Whiteboard {
BundleContext bundleContext,
ServiceReference<?> jaxRsRuntimeServiceReference,
ApplicationReference defaultApplicationReference,
- AriesJaxRSServiceRuntime runtime) {
+ AriesJaxRSServiceRuntime runtime, ServiceRegistrationChangeCounter counter) {
return
- serviceReferences(getResourcesFilter()).
- filter(new TargetFilter<>(jaxRsRuntimeServiceReference)).
+ countChanges(
+ serviceReferences(getResourcesFilter()).
+ filter(
+ new TargetFilter<>(jaxRsRuntimeServiceReference)),
+ counter).
flatMap(resourceReference ->
chooseApplication(
resourceReference, just(defaultApplicationReference)).
@@ -591,11 +599,13 @@ public class Whiteboard {
private static OSGi<?> whiteboardApplications(
ServiceReference<?> jaxRsRuntimeServiceReference,
AriesJaxRSServiceRuntime runtime,
- Map<String, ?> configuration) {
+ Map<String, ?> configuration, ServiceRegistrationChangeCounter counter) {
OSGi<ServiceTuple<Application>> gettableAplicationForWhiteboard =
onlyGettables(
- getApplicationsForWhiteboard(jaxRsRuntimeServiceReference),
+ countChanges(
+ getApplicationsForWhiteboard(jaxRsRuntimeServiceReference),
+ counter),
runtime::addNotGettableApplication,
runtime::removeNotGettableApplication);