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;
|
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;
|
import org.oasisopen.sca.annotation.Remotable;
|
||||||
|
|
||||||
@Remotable
|
@Remotable
|
||||||
public interface HumidityService {
|
public interface HumidityService {
|
||||||
|
|
||||||
String getHumidity();
|
Response getHumidity(Location location);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
package org.apache.tuscany.sca.sample.comet;
|
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;
|
import org.oasisopen.sca.annotation.Remotable;
|
||||||
|
|
||||||
@Remotable
|
@Remotable
|
||||||
public interface PrecipitationService {
|
public interface PrecipitationService {
|
||||||
|
|
||||||
String getPrecipitation();
|
Response getPrecipitation(Location location);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,20 @@
|
||||||
package org.apache.tuscany.sca.sample.comet;
|
package org.apache.tuscany.sca.sample.comet;
|
||||||
|
|
||||||
import java.util.Date;
|
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;
|
import org.oasisopen.sca.annotation.Service;
|
||||||
|
|
||||||
@Service(PrecipitationService.class)
|
@Service(PrecipitationService.class)
|
||||||
public class PrecipitationServiceImpl implements PrecipitationService {
|
public class PrecipitationServiceImpl implements PrecipitationService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPrecipitation() {
|
public Response getPrecipitation(Location location) {
|
||||||
return (new Random(new Date().getTime()).nextInt(100)) + "%";
|
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;
|
package org.apache.tuscany.sca.sample.comet;
|
||||||
|
|
||||||
import java.util.Date;
|
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;
|
import org.oasisopen.sca.annotation.Service;
|
||||||
|
|
||||||
@Service({TemperatureService.class, HumidityService.class})
|
@Service({TemperatureService.class, HumidityService.class})
|
||||||
public class TemperatureHumidityServiceImpl implements TemperatureService, HumidityService {
|
public class TemperatureHumidityServiceImpl implements TemperatureService, HumidityService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHumidity() {
|
public Response getHumidity(Location location) {
|
||||||
return (new Random(new Date().getTime()).nextInt(100)) + "%";
|
Response response = new Response();
|
||||||
|
response.setDate(new Date());
|
||||||
|
response.setData(Helper.randomInt(90) + "%");
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTemperatureCelsius() {
|
public Response getTemperature(Location location, int scale) {
|
||||||
return "" + (new Random(new Date().getTime()).nextInt(40));
|
Response response = new Response();
|
||||||
}
|
response.setDate(new Date());
|
||||||
|
String data = "" + Helper.randomInt(scale == CELSIUS ? 40 : 150);
|
||||||
@Override
|
response.setData(data);
|
||||||
public String getTemperatureFahrenheit() {
|
return response;
|
||||||
return "" + (new Random(new Date().getTime()).nextInt(200));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
package org.apache.tuscany.sca.sample.comet;
|
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;
|
import org.oasisopen.sca.annotation.Remotable;
|
||||||
|
|
||||||
@Remotable
|
@Remotable
|
||||||
public interface TemperatureService {
|
public interface TemperatureService {
|
||||||
|
|
||||||
String getTemperatureCelsius();
|
public static final int CELSIUS = 1;
|
||||||
|
public static final int FAHRENHEIT = 2;
|
||||||
String getTemperatureFahrenheit();
|
|
||||||
|
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">
|
<script type="text/javascript">
|
||||||
$(document).ready(function()
|
$(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) {
|
document.getElementById('connect').onclick = function(event) {
|
||||||
/* transport can be : long-polling, streaming or websocket */
|
/* transport can be : long-polling, streaming or websocket */
|
||||||
tuscanyComet.connect(document.getElementById('transport').value);
|
tuscanyComet.connect(document.getElementById('transport').value);
|
||||||
document.getElementById('connect').disabled = true;
|
document.getElementById('connect').disabled = true;
|
||||||
document.getElementById('transport').disabled = true;
|
document.getElementById('transport').disabled = true;
|
||||||
|
document.getElementById('locationButton').disabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
document.getElementById('tempCButton').onclick = function(event) {
|
document.getElementById('tempCButton').onclick = function(event) {
|
||||||
cometComponentContext.c1.TemperatureService.getTemperatureCelsius(updateTempC);
|
cometComponentContext.TemperatureService.getTemperature(location, 1, updateTempC);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('tempFButton').onclick = function(event) {
|
document.getElementById('tempFButton').onclick = function(event) {
|
||||||
cometComponentContext.c1.TemperatureService.getTemperatureFahrenheit(updateTempF);
|
cometComponentContext.TemperatureService.getTemperature(location, 2, updateTempF);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('humButton').onclick = function(event) {
|
document.getElementById('humButton').onclick = function(event) {
|
||||||
cometComponentContext.c1.HumidityService.getHumidity(updateHum);
|
cometComponentContext.HumidityService.getHumidity(location, updateHum);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('precipButton').onclick = function(event) {
|
document.getElementById('precipButton').onclick = function(event) {
|
||||||
cometComponentContext.c2.PrecipitationService.getPrecipitation(updatePrecip);
|
cometComponentContext.PrecipitationService.getPrecipitation(location, updatePrecip);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function updateTempC(response) {
|
function updateTempC(response) {
|
||||||
document.getElementById('tempCText').textContent = response;
|
document.getElementById('tempCText').textContent = response.data;
|
||||||
|
document.getElementById('tempCDate').textContent = response.date;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTempF(response) {
|
function updateTempF(response) {
|
||||||
document.getElementById('tempFText').textContent = response;
|
document.getElementById('tempFText').textContent = response.data;
|
||||||
|
document.getElementById('tempFDate').textContent = response.date;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateHum(response) {
|
function updateHum(response) {
|
||||||
document.getElementById('humText').textContent = response;
|
document.getElementById('humText').textContent = response.data;
|
||||||
|
document.getElementById('humDate').textContent = response.date;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updatePrecip(response) {
|
function updatePrecip(response) {
|
||||||
document.getElementById('precipText').textContent = response;
|
document.getElementById('precipText').textContent = response.data;
|
||||||
|
document.getElementById('precipDate').textContent = response.date;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<div id='sidebar'>
|
||||||
<h2>Apache Tuscany Comet Sample</h2>
|
<h2>Apache Tuscany Comet Sample</h2>
|
||||||
<label>Select transport</label>
|
<label>Select transport</label>
|
||||||
<select id="transport">
|
<select id="transport">
|
||||||
|
|
@ -76,27 +113,44 @@
|
||||||
<input id='connect' type='submit' value='Connect'/>
|
<input id='connect' type='submit' value='Connect'/>
|
||||||
<h3>Weather Monitor</h3>
|
<h3>Weather Monitor</h3>
|
||||||
<p/>
|
<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>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th align="left">Temperature (Celsius):</th>
|
<th align="left">Temperature (Celsius):</th>
|
||||||
<td><span id='tempCText'>N/A</span></td>
|
<td><span id='tempCText'>N/A</span></td>
|
||||||
<td><input type='button' id='tempCButton' value="Update"/></td>
|
<td><input type='button' id='tempCButton' value="Update"/></td>
|
||||||
|
<td><span id='tempCDate'></span>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th align="left">Temperature (Fahrenheit):</th>
|
<th align="left">Temperature (Fahrenheit):</th>
|
||||||
<td><span id='tempFText'>N/A</span></td>
|
<td><span id='tempFText'>N/A</span></td>
|
||||||
<td><input type='button' id='tempFButton' value="Update"/></td>
|
<td><input type='button' id='tempFButton' value="Update"/></td>
|
||||||
|
<td><span id='tempFDate'></span>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th align="left">Humidity:</th>
|
<th align="left">Humidity:</th>
|
||||||
<td><span id='humText'>N/A</span></td>
|
<td><span id='humText'>N/A</span></td>
|
||||||
<td><input type='button' id='humButton' value="Update"/></td>
|
<td><input type='button' id='humButton' value="Update"/></td>
|
||||||
|
<td><span id='humDate'></span>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th align="left">Precipitation probability:</th>
|
<th align="left">Precipitation probability:</th>
|
||||||
<td><span id='precipText'>N/A</span></td>
|
<td><span id='precipText'>N/A</span></td>
|
||||||
<td><input type='button' id='precipButton' value="Update"/></td>
|
<td><input type='button' id='precipButton' value="Update"/></td>
|
||||||
|
<td><span id='precipDate'></span>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue