diff options
Diffstat (limited to 'sca-java-2.x/contrib/samples/comet-webapp/src')
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> |