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 2018/11/26 15:56:58 UTC
[aries-jax-rs-whiteboard] 03/05: [ARIES-1868] Properly report if
the service is singleton
This is an automated email from the ASF dual-hosted git repository.
csierra pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-jax-rs-whiteboard.git
commit 6a553b4c96e26e007a2d4b77572f7617ac2146d6
Author: Carlos Sierra <cs...@apache.org>
AuthorDate: Mon Nov 26 15:38:53 2018 +0100
[ARIES-1868] Properly report if the service is singleton
---
jax-rs.itests/src/main/java/test/JaxrsTest.java | 4 ++
.../{TestSSEApplication.java => SSEResource.java} | 57 +++++++++-------------
.../main/java/test/types/TestSSEApplication.java | 48 ------------------
.../utils/ServiceReferenceResourceProvider.java | 5 +-
4 files changed, 31 insertions(+), 83 deletions(-)
diff --git a/jax-rs.itests/src/main/java/test/JaxrsTest.java b/jax-rs.itests/src/main/java/test/JaxrsTest.java
index 7375cac..7dd0cf7 100644
--- a/jax-rs.itests/src/main/java/test/JaxrsTest.java
+++ b/jax-rs.itests/src/main/java/test/JaxrsTest.java
@@ -73,6 +73,7 @@ import test.types.ConfigurationAwareResource;
import test.types.CxfExtensionTestAddon;
import test.types.ExtensionA;
import test.types.ExtensionB;
+import test.types.SSEResource;
import test.types.TestAddon;
import test.types.TestAddonConflict;
import test.types.TestAddonConflict2;
@@ -2281,6 +2282,9 @@ public class JaxrsTest extends TestHelper {
registerApplication(
new TestSSEApplication(), JAX_RS_APPLICATION_BASE, "/sse");
+ registerAddon(
+ new SSEResource(), JAX_RS_APPLICATION_SELECT,
+ "(" + JAX_RS_APPLICATION_BASE + "=/sse)");
SseEventSourceFactory sseFactory = createSseFactory();
diff --git a/jax-rs.itests/src/main/java/test/types/TestSSEApplication.java b/jax-rs.itests/src/main/java/test/types/SSEResource.java
similarity index 52%
copy from jax-rs.itests/src/main/java/test/types/TestSSEApplication.java
copy to jax-rs.itests/src/main/java/test/types/SSEResource.java
index 56160ae..6f39827 100644
--- a/jax-rs.itests/src/main/java/test/types/TestSSEApplication.java
+++ b/jax-rs.itests/src/main/java/test/types/SSEResource.java
@@ -21,54 +21,43 @@ import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
-import javax.ws.rs.core.Application;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.sse.Sse;
import javax.ws.rs.sse.SseBroadcaster;
import javax.ws.rs.sse.SseEventSink;
-import java.util.Collections;
-import java.util.Set;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.ExecutionException;
-public class TestSSEApplication extends Application {
+public class SSEResource {
- @Override
- public Set<Object> getSingletons() {
- return Collections.singleton(new SSEResource());
- }
-
- public static class SSEResource {
-
- @Produces(MediaType.SERVER_SENT_EVENTS)
- @GET
- @Path("/subscribe")
- public void subscribe(@Context SseEventSink sink) {
- sink.send(_sse.newEvent("welcome"));
+ @Produces(MediaType.SERVER_SENT_EVENTS)
+ @GET
+ @Path("/subscribe")
+ public void subscribe(@Context SseEventSink sink) {
+ sink.send(_sse.newEvent("welcome"));
- _sseBroadcaster.register(sink);
- }
-
- @POST
- @Path("/broadcast")
- public void broadcast(String body)
- throws ExecutionException, InterruptedException {
+ _sseBroadcaster.register(sink);
+ }
- CompletionStage<?> broadcast = _sseBroadcaster.broadcast(
- _sse.newEvent(body));
+ @POST
+ @Path("/broadcast")
+ public void broadcast(String body)
+ throws ExecutionException, InterruptedException {
- broadcast.toCompletableFuture().get();
- }
+ CompletionStage<?> broadcast = _sseBroadcaster.broadcast(
+ _sse.newEvent(body));
- @Context
- public void setSse(Sse sse) {
- _sse = sse;
- _sseBroadcaster = _sse.newBroadcaster();
- }
+ broadcast.toCompletableFuture().get();
+ }
- private Sse _sse;
- private SseBroadcaster _sseBroadcaster;
+ @Context
+ public void setSse(Sse sse) {
+ _sse = sse;
+ _sseBroadcaster = _sse.newBroadcaster();
}
+ private Sse _sse;
+ private SseBroadcaster _sseBroadcaster;
+
}
diff --git a/jax-rs.itests/src/main/java/test/types/TestSSEApplication.java b/jax-rs.itests/src/main/java/test/types/TestSSEApplication.java
index 56160ae..77d2150 100644
--- a/jax-rs.itests/src/main/java/test/types/TestSSEApplication.java
+++ b/jax-rs.itests/src/main/java/test/types/TestSSEApplication.java
@@ -17,58 +17,10 @@
package test.types;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.sse.Sse;
-import javax.ws.rs.sse.SseBroadcaster;
-import javax.ws.rs.sse.SseEventSink;
import java.util.Collections;
import java.util.Set;
-import java.util.concurrent.CompletionStage;
-import java.util.concurrent.ExecutionException;
public class TestSSEApplication extends Application {
- @Override
- public Set<Object> getSingletons() {
- return Collections.singleton(new SSEResource());
- }
-
- public static class SSEResource {
-
- @Produces(MediaType.SERVER_SENT_EVENTS)
- @GET
- @Path("/subscribe")
- public void subscribe(@Context SseEventSink sink) {
- sink.send(_sse.newEvent("welcome"));
-
- _sseBroadcaster.register(sink);
- }
-
- @POST
- @Path("/broadcast")
- public void broadcast(String body)
- throws ExecutionException, InterruptedException {
-
- CompletionStage<?> broadcast = _sseBroadcaster.broadcast(
- _sse.newEvent(body));
-
- broadcast.toCompletableFuture().get();
- }
-
- @Context
- public void setSse(Sse sse) {
- _sse = sse;
- _sseBroadcaster = _sse.newBroadcaster();
- }
-
- private Sse _sse;
- private SseBroadcaster _sseBroadcaster;
- }
-
}
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/utils/ServiceReferenceResourceProvider.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/utils/ServiceReferenceResourceProvider.java
index cbaf5ad..5d4e6a1 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/utils/ServiceReferenceResourceProvider.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/utils/ServiceReferenceResourceProvider.java
@@ -70,7 +70,10 @@ public class ServiceReferenceResourceProvider
@Override
public boolean isSingleton() {
- return false;
+ String scope =
+ _serviceReference.getProperty("service.scope").toString();
+
+ return !scope.equals("prototype");
}
public CachingServiceReference<?> getImmutableServiceReference() {