summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/samples/stock-comet-jquery/src/main/java/org/apache/tuscany/sample/comet/CometBinding.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/contrib/samples/stock-comet-jquery/src/main/java/org/apache/tuscany/sample/comet/CometBinding.java')
-rw-r--r--sca-java-2.x/contrib/samples/stock-comet-jquery/src/main/java/org/apache/tuscany/sample/comet/CometBinding.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/sca-java-2.x/contrib/samples/stock-comet-jquery/src/main/java/org/apache/tuscany/sample/comet/CometBinding.java b/sca-java-2.x/contrib/samples/stock-comet-jquery/src/main/java/org/apache/tuscany/sample/comet/CometBinding.java
new file mode 100644
index 0000000000..13e0a2e01c
--- /dev/null
+++ b/sca-java-2.x/contrib/samples/stock-comet-jquery/src/main/java/org/apache/tuscany/sample/comet/CometBinding.java
@@ -0,0 +1,55 @@
+package org.apache.tuscany.sample.comet;
+
+import java.util.Date;
+import java.util.Random;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.atmosphere.annotation.Broadcast;
+import org.atmosphere.cpr.Broadcaster;
+import org.atmosphere.cpr.DefaultBroadcaster;
+import org.atmosphere.jersey.Broadcastable;
+import org.atmosphere.jersey.SuspendResponse;
+import org.oasisopen.sca.ComponentContext;
+import org.oasisopen.sca.annotation.Context;
+import org.oasisopen.sca.annotation.Reference;
+
+import com.sun.jersey.spi.container.servlet.PerSession;
+
+@Path("/tuscany-comet")
+@Produces("text/html;charset=ISO-8859-1")
+@PerSession
+public class CometBinding {
+
+ // TODO: fix Tuscany injection
+ @Reference
+ public StockService service;
+
+ @Context
+ public ComponentContext context;
+
+ private Broadcaster broadcaster = new DefaultBroadcaster();
+
+ @GET
+ public SuspendResponse<String> register() {
+ System.out.println("Service reference: " + service);
+ System.out.println("Context reference: " + context);
+ return new SuspendResponse.SuspendResponseBuilder<String>()
+ .broadcaster(broadcaster)
+ .outputComments(true)
+ .addListener(new EventsLogger())
+ .build();
+ }
+
+ @POST
+ @Broadcast
+ public Broadcastable publish() {
+ System.out.println("Service reference: " + service);
+ System.out.println("Context reference: " + context);
+ return new Broadcastable("ASF#" + new Random(new Date().getTime()).nextInt(1000), "", broadcaster);
+ }
+
+}