diff options
Diffstat (limited to 'sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main')
7 files changed, 310 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/java/helloworldjsonrpc/HelloWorldService.java b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/java/helloworldjsonrpc/HelloWorldService.java new file mode 100644 index 0000000000..3d8ea24f04 --- /dev/null +++ b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/java/helloworldjsonrpc/HelloWorldService.java @@ -0,0 +1,28 @@ +/* + * 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. + */ +package helloworldjsonrpc; + +/** + * This is the business interface of the HelloWorld service component. + */ +public interface HelloWorldService { + + String getGreetings(String name); + +} diff --git a/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/java/helloworldjsonrpc/HelloWorldServiceImpl.java b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/java/helloworldjsonrpc/HelloWorldServiceImpl.java new file mode 100644 index 0000000000..35fd00fabd --- /dev/null +++ b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/java/helloworldjsonrpc/HelloWorldServiceImpl.java @@ -0,0 +1,36 @@ +/* + * 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. + */ +package helloworldjsonrpc; + +import org.osoa.sca.annotations.Service; + +/** + * This class implements the HelloWorld service component. + */ +@Service(HelloWorldService.class) +public class HelloWorldServiceImpl implements HelloWorldService { + + /* + * @see org.apache.tuscany.samples.helloworld.HelloWorldServiceComponent#getGreetings() + */ + public String getGreetings(String name) { + return "jsonrpcHello " + name; + } + +} diff --git a/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/resources/jsonrpc.composite b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/resources/jsonrpc.composite new file mode 100644 index 0000000000..6ceef2041f --- /dev/null +++ b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/resources/jsonrpc.composite @@ -0,0 +1,36 @@ +<?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://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://sample"
+ xmlns:sample="http://sample"
+ name="helloworldjsonrpc">
+
+ <service name="HelloWorldService" promote="HelloWorldJSONServiceComponent/HelloWorldService">
+ <interface.java interface="helloworldjsonrpc.HelloWorldService"/>
+ <binding.jsonrpc/>
+ </service>
+
+ <component name="HelloWorldJSONServiceComponent">
+ <implementation.java class="helloworldjsonrpc.HelloWorldServiceImpl"/>
+ </component>
+
+</composite>
+
diff --git a/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/HelloWorldJSONRPC.html b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/HelloWorldJSONRPC.html new file mode 100644 index 0000000000..a684143794 --- /dev/null +++ b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/HelloWorldJSONRPC.html @@ -0,0 +1,134 @@ +<html> +<!-- + * 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. + --> + <head> + <title>Tuscany JSON-RPC HelloWorld Example</TITLE> + + <script type="text/javascript"> + var djConfig = {isDebug: true,debugContainerId: "dojoDebug" }; + //djConfig.debugAtAllCosts = true; + </script> + + <script type="text/javascript" src="services/SCA/scripts"></script> + + <script language="JavaScript"> + SCA = new JSONRpcClient("services/HelloWorldService"); + + function getGreeting() { + var name = document.getElementById("name").value; + var result = SCA.HelloWorldService.getGreetings(name); + document.getElementById('greeting').innerHTML=result; + } + </script> + + <script type="text/javascript" src="dojo/dojo.js"> + </script> + + <script type="text/javascript"> + dojo.require("dojo.widget.*"); + dojo.require("dojo.widget.Button"); + dojo.require("dojo.rpc.JsonService"); + </script> + + <link rel="stylesheet" type="text/css" href="style.css" /> + </head> + + <body> + + <h2>Tuscany JSON-RPC HelloWorld Examples</h2> + + <table> + <tr> + <th colspan="2">Non-Dojo Example</th> + </tr> + <tr> + <td colspan="2"> + This example uses the JavaScript served from + <a href="services/SCA/scripts">services/SCA/scripts</a> + to make JSON-RPC requests to the service located at services/HelloWorldService. + </tr> + <tr> + <td>Request</td> + <td>Response</td> + </tr> + <tr> + <td> + <p> + Name please: + <input type="text" id="name" size="30" value="World" /> + <input type="button" value="Submit" onclick="getGreeting()" /> + </p> + + </td> + <td> + <div id='greeting'>None Yet.</div> + </td> + </tr> + </table> + + <br/> + + <table> + <tr> + <th colspan="2">Dojo Example</th> + </tr> + <tr> + <td colspan="2"> + <p>This example uses the <a href="http://dojotoolkit.org/">Dojo Toolkit</a> + to create a JavaScript object <code>helloWorldService</code> for the service at services/HelloWorldService + using <a href="http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book9">Dojo's RPC classes</a> + and providing them with <a href="services/HelloWorldService?smd">services/HelloWorldService?smd</a> + for <a href="http://dojo.jot.com/SMD">Simple Method Description (SMD)</a> input.</p> + <p>It then creates a Dojo button that will envoke the <code>getGreetings</code> method of the <code>helloWorldService</code> object.</p> + </tr> + <tr> + <td>Request</td> + <td>Response</td> + </tr> + <tr> + <td> + <br><div id="myecho" dojoType="Button" onClick='helloWorldService.getGreetings("Dojo").addCallback(contentCallBack);'>helloWorldService.getGreetings("Dojo").addCallback(contentCallBack);</div><br> + </td> + <td> + <div id="ReturnedContent">None Yet.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div id="dojoDebug">Dojo Debug:</div> + </td> + </tr> + </table> + + + + + <script type="text/javascript"> + + function contentCallBack(result) { + var handlerNode = document.getElementById("ReturnedContent"); + handlerNode.innerHTML = "<p>" + result + "</p>" ; + } + + var helloWorldService = new dojo.rpc.JsonService("services/HelloWorldService?smd"); + + </script> + + </body> +</html> diff --git a/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/META-INF/sca-contribution.xml b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..be750ec461 --- /dev/null +++ b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/META-INF/sca-contribution.xml @@ -0,0 +1,26 @@ +<?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.
+-->
+
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+targetNamespace="http://sample"
+ xmlns:sample="http://sample">
+ <deployable composite="sample:helloworldjsonrpc"/>
+</contribution>
+
diff --git a/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..2c0c79726d --- /dev/null +++ b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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. +--> + +<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web +Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> +<web-app> + + + <display-name>Tuscany sample HelloWorld JSON-RPC</display-name> + + <welcome-file-list id="WelcomeFileList"> + <welcome-file>HelloWorldJSONRPC.html</welcome-file> + </welcome-file-list> + + <listener> + <listener-class>org.apache.tuscany.sca.webapp.TuscanyContextListener</listener-class> + </listener> + + +<servlet> + <servlet-name>TuscanyServlet</servlet-name> + <servlet-class>org.apache.tuscany.sca.webapp.TuscanyServlet</servlet-class> + </servlet> + + <servlet-mapping> + <servlet-name>TuscanyServlet</servlet-name> + <url-pattern>/services/*</url-pattern> + </servlet-mapping> +</web-app> diff --git a/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/style.css b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/style.css new file mode 100644 index 0000000000..7073905b11 --- /dev/null +++ b/sca-java-1.x/tags/0.90-incubating/samples/helloworld-jsonrpc/src/main/webapp/style.css @@ -0,0 +1,4 @@ +* { font-family: arial; } + +table, th, td { border: 2px solid blue; border-collapse: collapse; } +th { color: white; background-color: blue; } |