diff options
Diffstat (limited to '')
8 files changed, 296 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/pom.xml b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/pom.xml new file mode 100644 index 0000000000..8254ce61a5 --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/pom.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>sample-jsonp-webapp</artifactId> + <packaging>war</packaging> + <version>1.0</version> + <name>jsonp-webapp</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca.shades</groupId> + <artifactId>tuscany-base-nodep</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-jsonp-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <type>jar</type> + </dependency> + </dependencies> + + <build> + <finalName>jsonp-webapp</finalName> + </build> +</project> + diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/Location.java b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/Location.java new file mode 100644 index 0000000000..1a47edf73c --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/Location.java @@ -0,0 +1,33 @@ +package sample; + +public class Location { + + private String city; + private String country; + private int altitude; + + 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; + } + + public int getAltitude() { + return altitude; + } + + public void setAltitude(int altitude) { + this.altitude = altitude; + } + +} diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/ShareService.java b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/ShareService.java new file mode 100644 index 0000000000..3c79c6c2e9 --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/ShareService.java @@ -0,0 +1,14 @@ +package sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface ShareService { + + String shareName(String firstName, String lastName); + + int shareAge(int age); + + Location shareLocation(Location location); + +} diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/ShareServiceImpl.java b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/ShareServiceImpl.java new file mode 100644 index 0000000000..13bae36eb9 --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/java/sample/ShareServiceImpl.java @@ -0,0 +1,23 @@ +package sample; + +import org.oasisopen.sca.annotation.Service; + +@Service(ShareService.class) +public class ShareServiceImpl implements ShareService { + + @Override + public String shareName(String firstName, String lastName) { + return firstName + " " + lastName; + } + + @Override + public int shareAge(int age) { + return age; + } + + @Override + public Location shareLocation(Location location) { + return location; + } + +} diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..58630c02ef --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0
+
diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/WEB-INF/web.composite b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..515c2dba09 --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" + targetNamespace="http://samples" + name="Stock"> + + <component name="c"> + <implementation.java class="sample.ShareServiceImpl"/> + <service name="ShareService"> + <interface.java interface="sample.ShareService"/> + <tuscany:binding.jsonp/> + </service> + </component> + +</composite>
\ No newline at end of file diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/WEB-INF/web.xml b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..0deec29fcc --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:j2ee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3.0.xsd" version="3.0"> + <display-name>Apache Tuscany JSONP Sample</display-name> + <filter> + <filter-name>tuscany</filter-name> + <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class> + <async-supported>true</async-supported> + </filter> + <filter-mapping> + <filter-name>tuscany</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + <welcome-file-list> + <welcome-file>index.html</welcome-file> + </welcome-file-list> +</web-app>
\ No newline at end of file diff --git a/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/index.html b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/index.html new file mode 100644 index 0000000000..2a754e494e --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/jsonp-webapp/src/main/webapp/index.html @@ -0,0 +1,104 @@ +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<html> + <head> + <title>Apache Tuscany Comet Sample</title> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> + <script type="text/javascript" src="http://jquery-json.googlecode.com/svn/trunk/jquery.json.min.js"></script> + <script type="text/javascript"> + $(document).ready(function() { + document.getElementById("shareLocationButton").onclick = function(event) { + var location = { + city: document.getElementById("city").value, + country: document.getElementById("country").value, + altitude: document.getElementById("altitude").value + }; + $.getJSON("c/ShareService/shareLocation", "location=" + $.toJSON(location), shareLocationCallback); + } + }); + + function shareNameCallback(response) { + alert("Your name, " + response + ", has been shared."); + } + + function shareAge() { + document.getElementById("shareAgeForm").submit(); + } + + function shareAgeCallback(response) { + alert("Your age, " + response + ", has been shared."); + } + + function shareLocationCallback(response) { + alert("Your location, " + response.city + " - " + response.country + " - " + response.altitude + ", has been shared."); + } + </script> + </head> + <body> + <h2>Apache Tuscany JSONP Sample</h2> + <h3>Share Personal Information Webapp</h3> + + <form method="GET" action="c/ShareService/shareName"> + <b><label>Share Full Name</label></b> + <table> + <tr> + <td>First Name</td> + <td><input type="text" name="firstName" value="John"/> + </tr> + <tr> + <td>Last Name</td> + <td><input type="text" name="lastName" value="Locke"/> + </tr> + </table> + <input type="hidden" name="callback" value="shareNameCallback"/> + <input type="submit" value="Share"/> + </form> + + <form method="GET" id="shareAgeForm" action="c/ShareService/shareAge"> + <b><label>Share Age</label></b> + <table> + <tr> + <td>Age</td> + <td><input type="text" name="age" value="54"/> + </tr> + </table> + <input type="hidden" name="callback" value="shareAgeCallback"/> + <input type="submit" value="Share" onclick="shareAge()"/> + </form> + + <form method="GET" > + <b><label>Share Location</label></b> + <table> + <tr> + <td>City</td> + <td><input type="text" name="city" id="city" value="Los Angeles" /> + </tr> + <tr> + <td>Country</td> + <td><input type="text" name="country" id="country" value="USA" /> + </tr> + <tr> + <td>Altitude</td> + <td><input type="text" name="altitude" id="altitude" value="560" /> + </tr> + </table> + <input type="button" id="shareLocationButton" value="Share"/> + </form> + </body> +</html> |