summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java')
-rw-r--r--sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java56
1 files changed, 31 insertions, 25 deletions
diff --git a/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java b/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
index 41654a417b..4227667e7f 100644
--- a/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
+++ b/sca-java-2.x/contrib/samples/learning-more/binding-comet/weather-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
@@ -20,51 +20,57 @@
package org.apache.tuscany.sca.sample.comet;
import java.util.Date;
+import java.util.Timer;
+import java.util.TimerTask;
import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
+import org.apache.tuscany.sca.binding.comet.runtime.callback.Status;
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 {
+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();
+ new Timer().scheduleAtFixedRate(new TimerTask() {
+
+ @Override
+ public void run() {
+ final Response response = new Response();
+ response.setDate(new Date());
+ response.setData(Helper.randomInt(90) + "%");
+ Status status = callback.sendMessage(response);
+ if (status == Status.CLIENT_DISCONNECTED) {
+ System.out.println("Client disconnected from HumidityService.");
+ this.cancel();
+ }
}
- }
+ }, 0L, 5000L);
}
@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();
+ new Timer().scheduleAtFixedRate(new TimerTask() {
+
+ @Override
+ public void run() {
+ final Response response = new Response();
+ response.setDate(new Date());
+ final String data = "" + Helper.randomInt(scale == TemperatureService.CELSIUS ? 40 : 150);
+ response.setData(data);
+ Status status = callback.sendMessage(response);
+ if (status == Status.CLIENT_DISCONNECTED) {
+ System.out.println("Client disconnected from TemperatureService.");
+ this.cancel();
+ }
}
- }
+ }, 0L, 3000L);
}
} \ No newline at end of file