summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/samples/comet-webapp/src
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/contrib/samples/comet-webapp/src')
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java12
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java6
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java4
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java10
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java23
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java11
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.java24
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java26
-rw-r--r--sca-java-2.x/contrib/samples/comet-webapp/src/main/webapp/index.html70
9 files changed, 158 insertions, 28 deletions
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java
new file mode 100644
index 0000000000..d7a3bfc744
--- /dev/null
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java
@@ -0,0 +1,12 @@
+package org.apache.tuscany.sca.sample.comet;
+
+import java.util.Date;
+import java.util.Random;
+
+public class Helper {
+
+ public static int randomInt(int max) {
+ return (new Random(new Date().getTime()).nextInt(100));
+ }
+
+}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
index faf80f02e0..7b0d63e1b2 100644
--- a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
@@ -1,10 +1,12 @@
package org.apache.tuscany.sca.sample.comet;
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
import org.oasisopen.sca.annotation.Remotable;
@Remotable
public interface HumidityService {
- String getHumidity();
-
+ Response getHumidity(Location location);
+
}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
index f40b2eb772..a75f549890 100644
--- a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
@@ -1,10 +1,12 @@
package org.apache.tuscany.sca.sample.comet;
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
import org.oasisopen.sca.annotation.Remotable;
@Remotable
public interface PrecipitationService {
- String getPrecipitation();
+ Response getPrecipitation(Location location);
}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
index df24a74080..0a709070c6 100644
--- a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
@@ -1,16 +1,20 @@
package org.apache.tuscany.sca.sample.comet;
import java.util.Date;
-import java.util.Random;
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
import org.oasisopen.sca.annotation.Service;
@Service(PrecipitationService.class)
public class PrecipitationServiceImpl implements PrecipitationService {
@Override
- public String getPrecipitation() {
- return (new Random(new Date().getTime()).nextInt(100)) + "%";
+ public Response getPrecipitation(Location location) {
+ Response response = new Response();
+ response.setDate(new Date());
+ response.setData(Helper.randomInt(100) + "%");
+ return response;
}
}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
index 1fff4b1dea..b74670178c 100644
--- a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
@@ -1,26 +1,29 @@
package org.apache.tuscany.sca.sample.comet;
import java.util.Date;
-import java.util.Random;
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
import org.oasisopen.sca.annotation.Service;
@Service({TemperatureService.class, HumidityService.class})
public class TemperatureHumidityServiceImpl implements TemperatureService, HumidityService {
@Override
- public String getHumidity() {
- return (new Random(new Date().getTime()).nextInt(100)) + "%";
+ public Response getHumidity(Location location) {
+ Response response = new Response();
+ response.setDate(new Date());
+ response.setData(Helper.randomInt(90) + "%");
+ return response;
}
@Override
- public String getTemperatureCelsius() {
- return "" + (new Random(new Date().getTime()).nextInt(40));
- }
-
- @Override
- public String getTemperatureFahrenheit() {
- return "" + (new Random(new Date().getTime()).nextInt(200));
+ public Response getTemperature(Location location, int scale) {
+ Response response = new Response();
+ response.setDate(new Date());
+ String data = "" + Helper.randomInt(scale == CELSIUS ? 40 : 150);
+ response.setData(data);
+ return response;
}
}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
index 6a9e30b051..51714786e8 100644
--- a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
@@ -1,12 +1,15 @@
package org.apache.tuscany.sca.sample.comet;
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
import org.oasisopen.sca.annotation.Remotable;
@Remotable
public interface TemperatureService {
- String getTemperatureCelsius();
-
- String getTemperatureFahrenheit();
-
+ public static final int CELSIUS = 1;
+ public static final int FAHRENHEIT = 2;
+
+ Response getTemperature(Location location, int scale);
+
}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.java
new file mode 100644
index 0000000000..0eb0d117e1
--- /dev/null
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.java
@@ -0,0 +1,24 @@
+package org.apache.tuscany.sca.sample.comet.model;
+
+public class Location {
+
+ private String city;
+ private String country;
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public String getCountry() {
+ return country;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java
new file mode 100644
index 0000000000..86c03cffdf
--- /dev/null
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java
@@ -0,0 +1,26 @@
+package org.apache.tuscany.sca.sample.comet.model;
+
+import java.util.Date;
+
+public class Response {
+
+ private Date date;
+ private String data;
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+}
diff --git a/sca-java-2.x/contrib/samples/comet-webapp/src/main/webapp/index.html b/sca-java-2.x/contrib/samples/comet-webapp/src/main/webapp/index.html
index c96507eb02..94b3470e1a 100644
--- a/sca-java-2.x/contrib/samples/comet-webapp/src/main/webapp/index.html
+++ b/sca-java-2.x/contrib/samples/comet-webapp/src/main/webapp/index.html
@@ -23,49 +23,86 @@
<script type="text/javascript">
$(document).ready(function()
{
+ // Initialization
+ var location = new Object();
+ location.city = null;
+ location.country = null;
+
+ document.getElementById('locationButton').disabled = true;
+ document.getElementById('tempCButton').disabled = true;
+ document.getElementById('tempFButton').disabled = true;
+ document.getElementById('humButton').disabled = true;
+ document.getElementById('precipButton').disabled = true;
+
+ document.getElementById('locationButton').onclick = function(event) {
+ location.city = document.getElementById('city').value;
+ location.country = document.getElementById('country').value;
+ document.getElementById('locationButton').value = 'Switch location';
+ document.getElementById('tempCButton').disabled = false;
+ document.getElementById('tempFButton').disabled = false;
+ document.getElementById('humButton').disabled = false;
+ document.getElementById('precipButton').disabled = false;
+ document.getElementById('tempCText').textContent = 'N/A';
+ document.getElementById('tempCDate').textContent = '';
+ document.getElementById('tempFText').textContent = 'N/A';
+ document.getElementById('tempFDate').textContent = '';
+ document.getElementById('humText').textContent = 'N/A';
+ document.getElementById('humDate').textContent = '';
+ document.getElementById('precipText').textContent = 'N/A';
+ document.getElementById('precipDate').textContent = '';
+ }
+
+ // Tuscany Comet specific API
+
document.getElementById('connect').onclick = function(event) {
/* transport can be : long-polling, streaming or websocket */
tuscanyComet.connect(document.getElementById('transport').value);
document.getElementById('connect').disabled = true;
document.getElementById('transport').disabled = true;
+ document.getElementById('locationButton').disabled = false;
}
document.getElementById('tempCButton').onclick = function(event) {
- cometComponentContext.c1.TemperatureService.getTemperatureCelsius(updateTempC);
+ cometComponentContext.TemperatureService.getTemperature(location, 1, updateTempC);
}
document.getElementById('tempFButton').onclick = function(event) {
- cometComponentContext.c1.TemperatureService.getTemperatureFahrenheit(updateTempF);
+ cometComponentContext.TemperatureService.getTemperature(location, 2, updateTempF);
}
document.getElementById('humButton').onclick = function(event) {
- cometComponentContext.c1.HumidityService.getHumidity(updateHum);
+ cometComponentContext.HumidityService.getHumidity(location, updateHum);
}
document.getElementById('precipButton').onclick = function(event) {
- cometComponentContext.c2.PrecipitationService.getPrecipitation(updatePrecip);
+ cometComponentContext.PrecipitationService.getPrecipitation(location, updatePrecip);
}
});
function updateTempC(response) {
- document.getElementById('tempCText').textContent = response;
+ document.getElementById('tempCText').textContent = response.data;
+ document.getElementById('tempCDate').textContent = response.date;
}
function updateTempF(response) {
- document.getElementById('tempFText').textContent = response;
+ document.getElementById('tempFText').textContent = response.data;
+ document.getElementById('tempFDate').textContent = response.date;
}
function updateHum(response) {
- document.getElementById('humText').textContent = response;
+ document.getElementById('humText').textContent = response.data;
+ document.getElementById('humDate').textContent = response.date;
}
function updatePrecip(response) {
- document.getElementById('precipText').textContent = response;
+ document.getElementById('precipText').textContent = response.data;
+ document.getElementById('precipDate').textContent = response.date;
}
</script>
</head>
<body>
+ <div id='sidebar'>
<h2>Apache Tuscany Comet Sample</h2>
<label>Select transport</label>
<select id="transport">
@@ -78,25 +115,42 @@
<p/>
<table>
<tr>
+ <td>City</td>
+ <td><input type="text" id='city'/></td>
+ </tr>
+ <tr>
+ <td>Country</td>
+ <td><input type="text" id ='country'/></td>
+ </tr>
+ </table>
+ <input type="button" id='locationButton' value='Set location'/>
+ <p/>
+ <table>
+ <tr>
<th align="left">Temperature (Celsius):</th>
<td><span id='tempCText'>N/A</span></td>
<td><input type='button' id='tempCButton' value="Update"/></td>
+ <td><span id='tempCDate'></span>
</tr>
<tr>
<th align="left">Temperature (Fahrenheit):</th>
<td><span id='tempFText'>N/A</span></td>
<td><input type='button' id='tempFButton' value="Update"/></td>
+ <td><span id='tempFDate'></span>
</tr>
<tr>
<th align="left">Humidity:</th>
<td><span id='humText'>N/A</span></td>
<td><input type='button' id='humButton' value="Update"/></td>
+ <td><span id='humDate'></span>
</tr>
<tr>
<th align="left">Precipitation probability:</th>
<td><span id='precipText'>N/A</span></td>
<td><input type='button' id='precipButton' value="Update"/></td>
+ <td><span id='precipDate'></span>
</tr>
</table>
+ </div>
</body>
</html>