Author: fmoga
Date: Fri Feb 11 20:09:34 2011
New Revision: 1069940

URL: http://svn.apache.org/viewvc?rev=1069940&view=rev
Log:
Update comet binding sample to demonstrate server push.

Modified:
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/pom.xml
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/WEB-INF/web.composite
    
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/index.html

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/pom.xml?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/pom.xml
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/pom.xml
 Fri Feb 11 20:09:34 2011
@@ -35,11 +35,6 @@
        <dependencies>
                <dependency>
                        <groupId>org.apache.tuscany.sca</groupId>
-                       <artifactId>tuscany-base-runtime</artifactId>
-                       <version>2.0-SNAPSHOT</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.tuscany.sca</groupId>
                        <artifactId>tuscany-binding-comet-runtime</artifactId>
                        <version>2.0-SNAPSHOT</version>
                </dependency>
@@ -49,6 +44,13 @@
                        <version>6.0</version>
                        <scope>provided</scope>
                </dependency>
+               <dependency>
+                       <groupId>org.apache.tuscany.sca</groupId>
+                       <artifactId>tuscany-base-runtime-pom</artifactId>
+                       <version>2.0-SNAPSHOT</version>
+                       <type>pom</type>
+                       <scope>compile</scope>
+               </dependency>
        </dependencies>
        
 </project>

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
 Fri Feb 11 20:09:34 2011
@@ -19,13 +19,15 @@
 
 package org.apache.tuscany.sca.sample.comet;
 
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
 import org.apache.tuscany.sca.sample.comet.model.Location;
-import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Callback;
 import org.oasisopen.sca.annotation.Remotable;
 
 @Remotable
+@Callback(CometCallback.class)
 public interface HumidityService {
 
-    Response getHumidity(Location location);
+       void getHumidity(Location location);
 
-}
+}
\ No newline at end of file

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
 Fri Feb 11 20:09:34 2011
@@ -19,13 +19,17 @@
 
 package org.apache.tuscany.sca.sample.comet;
 
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
 import org.apache.tuscany.sca.sample.comet.model.Location;
-import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.OneWay;
 import org.oasisopen.sca.annotation.Remotable;
 
 @Remotable
+@Callback(CometCallback.class)
 public interface PrecipitationService {
 
-    Response getPrecipitation(Location location);
+       @OneWay
+       void getPrecipitation(Location location);
 
 }

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
 Fri Feb 11 20:09:34 2011
@@ -21,19 +21,32 @@ package org.apache.tuscany.sca.sample.co
 
 import java.util.Date;
 
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
 import org.apache.tuscany.sca.sample.comet.model.Location;
 import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Callback;
 import org.oasisopen.sca.annotation.Service;
 
 @Service(PrecipitationService.class)
 public class PrecipitationServiceImpl implements PrecipitationService {
 
-    @Override
-    public Response getPrecipitation(final Location location) {
-        final Response response = new Response();
-        response.setDate(new Date());
-        response.setData(Helper.randomInt(100) + "%");
-        return response;
-    }
+       @Callback
+       protected CometCallback callback;
+
+       @Override
+       public void getPrecipitation(final Location location) {
+               while (callback.isClientConnected()) {
+                       Response response = new Response();
+                       response.setDate(new Date());
+                       response.setData(Helper.randomInt(100) + "%");
+
+                       callback.sendResponse(response);
+                       try {
+                               Thread.sleep(1000);
+                       } catch (InterruptedException e) {
+                               e.printStackTrace();
+                       }
+               }
+       }
 
 }

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
 Fri Feb 11 20:09:34 2011
@@ -21,28 +21,50 @@ package org.apache.tuscany.sca.sample.co
 
 import java.util.Date;
 
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
 import org.apache.tuscany.sca.sample.comet.model.Location;
 import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Callback;
 import org.oasisopen.sca.annotation.Service;
 
-@Service({TemperatureService.class, HumidityService.class})
-public class TemperatureHumidityServiceImpl implements TemperatureService, 
HumidityService {
+@Service({ TemperatureService.class, HumidityService.class })
+public class TemperatureHumidityServiceImpl implements TemperatureService,
+               HumidityService {
+
+       @Callback
+       protected CometCallback callback;
+
+       @Override
+       public void getHumidity(final Location location) {
+               while (callback.isClientConnected()) {
+                       final Response response = new Response();
+                       response.setDate(new Date());
+                       response.setData(Helper.randomInt(90) + "%");
+                       callback.sendResponse(response);
+                       try {
+                               Thread.sleep(5000);
+                       } catch (InterruptedException e) {
+                               e.printStackTrace();
+                       }
+               }
+       }
+
+       @Override
+       public void getTemperature(final Location location, final int scale) {
+               while (callback.isClientConnected()) {
+                       final Response response = new Response();
+                       response.setDate(new Date());
+                       final String data = ""
+                                       + Helper.randomInt(scale == 
TemperatureService.CELSIUS ? 40
+                                                       : 150);
+                       response.setData(data);
+                       callback.sendResponse(response);
+                       try {
+                               Thread.sleep(3000);
+                       } catch (InterruptedException e) {
+                               e.printStackTrace();
+                       }
+               }
+       }
 
-    @Override
-    public Response getHumidity(final Location location) {
-        final Response response = new Response();
-        response.setDate(new Date());
-        response.setData(Helper.randomInt(90) + "%");
-        return response;
-    }
-
-    @Override
-    public Response getTemperature(final Location location, final int scale) {
-        final Response response = new Response();
-        response.setDate(new Date());
-        final String data = "" + Helper.randomInt(scale == 
TemperatureService.CELSIUS ? 40 : 150);
-        response.setData(data);
-        return response;
-    }
-
-}
+}
\ No newline at end of file

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
 Fri Feb 11 20:09:34 2011
@@ -19,16 +19,18 @@
 
 package org.apache.tuscany.sca.sample.comet;
 
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
 import org.apache.tuscany.sca.sample.comet.model.Location;
-import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Callback;
 import org.oasisopen.sca.annotation.Remotable;
 
 @Remotable
+@Callback(CometCallback.class)
 public interface TemperatureService {
 
-    public static final int CELSIUS = 1;
-    public static final int FAHRENHEIT = 2;
+       public static final int CELSIUS = 1;
+       public static final int FAHRENHEIT = 2;
 
-    Response getTemperature(Location location, int scale);
+       void getTemperature(Location location, int scale);
 
-}
+}
\ No newline at end of file

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/WEB-INF/web.composite
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/WEB-INF/web.composite?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/WEB-INF/web.composite
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/WEB-INF/web.composite
 Fri Feb 11 20:09:34 2011
@@ -20,25 +20,38 @@
 <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912";
            xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1";
            targetNamespace="http://samples";
-           name="Stock">
+           name="Weather">
 
        <component name="c1">
                <implementation.java 
class="org.apache.tuscany.sca.sample.comet.TemperatureHumidityServiceImpl"/>
                <service name="TemperatureService">
-                       <interface.java 
interface="org.apache.tuscany.sca.sample.comet.TemperatureService"/>
+                       <interface.java 
interface="org.apache.tuscany.sca.sample.comet.TemperatureService"
+                               
callbackInterface="org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback"/>
                        <tuscany:binding.comet/>
+                       <callback>
+                               <tuscany:binding.comet/>
+                       </callback>
                </service>
                <service name="HumidityService">
-                       <interface.java 
interface="org.apache.tuscany.sca.sample.comet.HumidityService"/>
+                       <interface.java 
interface="org.apache.tuscany.sca.sample.comet.HumidityService"
+                               
callbackInterface="org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback"/>
                        <tuscany:binding.comet/>
+                       <callback>
+                               <tuscany:binding.comet/>
+                       </callback>
                </service>
        </component>
        
+
        <component name="c2">
                <implementation.java 
class="org.apache.tuscany.sca.sample.comet.PrecipitationServiceImpl"/>
                <service name="PrecipitationService">
-                       <interface.java 
interface="org.apache.tuscany.sca.sample.comet.PrecipitationService"/>
+                       <interface.java 
interface="org.apache.tuscany.sca.sample.comet.PrecipitationService" 
+                               
callbackInterface="org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback"/>
                        <tuscany:binding.comet/>
+                       <callback>
+                               <tuscany:binding.comet/>
+                       </callback>
                </service>
        </component>
        

Modified: 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/index.html
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/index.html?rev=1069940&r1=1069939&r2=1069940&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/index.html
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/webapp/index.html
 Fri Feb 11 20:09:34 2011
@@ -20,7 +20,7 @@
        <head>
                <title>Apache Tuscany Comet Sample</title>
                <!-- Tuscany Comet Javascript Toolkit is dependent on jQuery -->
-               <script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js";></script>
+               <script type="text/javascript" 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js";></script>
                <script type="text/javascript" 
src="org.apache.tuscany.sca.cometComponentContext.js"></script>
                <script type="text/javascript">
                $(document).ready(function()
@@ -67,18 +67,22 @@
 
                        document.getElementById('tempCButton').onclick = 
function(event) {
                                
SCA.CometComponentContext.TemperatureService.getTemperature(location, 1, 
updateTempC);
+                               document.getElementById('tempCButton').disabled 
= true;
                        }
 
                        document.getElementById('tempFButton').onclick = 
function(event) {
                                
SCA.CometComponentContext.TemperatureService.getTemperature(location, 2, 
updateTempF);
+                               document.getElementById('tempFButton').disabled 
= true;
                        }
 
                        document.getElementById('humButton').onclick = 
function(event) {
                                
SCA.CometComponentContext.HumidityService.getHumidity(location, updateHum);
+                               document.getElementById('humButton').disabled = 
true;
                        }
 
                        document.getElementById('precipButton').onclick = 
function(event) {
                                
SCA.CometComponentContext.PrecipitationService.getPrecipitation(location, 
updatePrecip);
+                               
document.getElementById('precipButton').disabled = true;
                        }
                });
 


Reply via email to