diff options
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.java | 55 |
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); + } + +} |