You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by fm...@apache.org on 2011/02/11 21:09:34 UTC
svn commit: r1069940 - in
/tuscany/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp:
./ src/main/java/org/apache/tuscany/sca/sample/comet/ src/main/webapp/
src/main/webapp/WEB-INF/
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;
}
});