Updated sample to use generated proxies and json for parameters.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@985623 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ce3c5536c9
commit
ff685fc668
9 changed files with 158 additions and 28 deletions
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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">
|
||||
|
|
@ -76,27 +113,44 @@
|
|||
<input id='connect' type='submit' value='Connect'/>
|
||||
<h3>Weather Monitor</h3>
|
||||
<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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue