From a40e527938d76ba71f211da7e327adb50384ba69 Mon Sep 17 00:00:00 2001 From: lresende Date: Wed, 11 Nov 2009 23:26:33 +0000 Subject: Moving 1.x tags git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835157 13f79535-47bb-0310-9956-ffa450edef68 --- .../1.5.1/modules/binding-jsonrpc-runtime/LICENSE | 205 --------- .../1.5.1/modules/binding-jsonrpc-runtime/NOTICE | 6 - .../1.5.1/modules/binding-jsonrpc-runtime/pom.xml | 164 ------- .../jsonrpc/provider/JSONRPCBindingInvoker.java | 45 -- .../provider/JSONRPCBindingProviderFactory.java | 70 --- .../provider/JSONRPCReferenceBindingProvider.java | 70 --- .../provider/JSONRPCServiceBindingProvider.java | 189 -------- .../jsonrpc/provider/JSONRPCServiceServlet.java | 314 ------------- .../sca/binding/jsonrpc/provider/JavaToSmd.java | 56 --- .../jsonrpc/provider/ScaDomainScriptServlet.java | 114 ----- ...che.tuscany.sca.provider.BindingProviderFactory | 19 - .../sca/binding/jsonrpc/provider/jsonrpc.js | 493 --------------------- .../src/test/java/bean/TestBean.java | 51 --- .../src/test/java/echo/Echo.java | 64 --- .../src/test/java/echo/EchoBusinessException.java | 29 -- .../src/test/java/echo/EchoComponentImpl.java | 103 ----- .../binding/jsonrpc/JSONRPCDataTypeTestCase.java | 193 -------- .../binding/jsonrpc/JSONRPCExceptionTestCase.java | 86 ---- .../binding/jsonrpc/JSONRPCServiceTestCase.java | 70 --- .../sca/binding/jsonrpc/JSONRPCSmdTestCase.java | 73 --- .../src/test/resources/JSONRPCBinding.composite | 35 -- 21 files changed, 2449 deletions(-) delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/LICENSE delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/NOTICE delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/pom.xml delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JavaToSmd.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/ScaDomainScriptServlet.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/org/apache/tuscany/sca/binding/jsonrpc/provider/jsonrpc.js delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/bean/TestBean.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/Echo.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoBusinessException.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoComponentImpl.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCDataTypeTestCase.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCExceptionTestCase.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceTestCase.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCSmdTestCase.java delete mode 100644 tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/resources/JSONRPCBinding.composite (limited to 'tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime') diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/LICENSE b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/LICENSE deleted file mode 100644 index 8aa906c321..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/LICENSE +++ /dev/null @@ -1,205 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. - - - diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/NOTICE b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/NOTICE deleted file mode 100644 index 25bb89c9b2..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/NOTICE +++ /dev/null @@ -1,6 +0,0 @@ -${pom.name} -Copyright (c) 2005 - 2009 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). - diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/pom.xml b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/pom.xml deleted file mode 100644 index cd823f8134..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/pom.xml +++ /dev/null @@ -1,164 +0,0 @@ - - - - 4.0.0 - - org.apache.tuscany.sca - tuscany-modules - 1.5.1 - ../pom.xml - - - tuscany-binding-jsonrpc-runtime - Apache Tuscany SCA JSON-RPC Binding Runtime - - - - org.apache.tuscany.sca - tuscany-binding-jsonrpc - 1.5.1 - - - - org.apache.tuscany.sca - tuscany-core-spi - 1.5.1 - - - - org.apache.tuscany.sca - tuscany-core - 1.5.1 - - - - org.apache.tuscany.sca - tuscany-databinding - 1.5.1 - - - - org.apache.tuscany.sca - tuscany-databinding-json - 1.5.1 - - - - org.apache.tuscany.sca - tuscany-host-http - 1.5.1 - - - - org.apache.tuscany.sca - tuscany-host-jetty - 1.5.1 - test - - - - com.metaparadigm - json-rpc - 1.0 - - - - javax.servlet - servlet-api - 2.4 - provided - - - - commons-logging - commons-logging - 1.1.1 - - - commons-logging - commons-logging - - - javax.servlet - servlet-api - - - - - - - - org.apache.tuscany.sca - tuscany-host-embedded - 1.5.1 - test - - - - org.apache.tuscany.sca - tuscany-implementation-java-runtime - 1.5.1 - test - - - - junit - junit - 4.5 - test - - - - httpunit - httpunit - 1.6.1 - test - - - - - - - - - org.apache.felix - maven-bundle-plugin - - - - ${tuscany.version} - org.apache.tuscany.sca.binding.jsonrpc.runtime - ${pom.name} - - !org.apache.tuscany.sca.binding.jsonrpc, - org.apache.tuscany.sca.binding.jsonrpc* - - - org.apache.tuscany.sca.assembly.xml, - org.apache.tuscany.sca.binding.jsonrpc, - * - - - - - - - - diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java deleted file mode 100644 index a9fff462fa..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingInvoker.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc.provider; - -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; - -/** - * Invoker for the JSONRPC Binding - * - * @version $Rev$ $Date$ - */ -public class JSONRPCBindingInvoker implements Invoker { - Operation operation; - String uri; - - public JSONRPCBindingInvoker(Operation operation, String uri) { - this.operation = operation; - this.uri = uri; - } - - public Message invoke(Message msg) { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java deleted file mode 100644 index 245eade7ad..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCBindingProviderFactory.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc.provider; - -import org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.host.http.ServletHost; -import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.provider.BindingProviderFactory; -import org.apache.tuscany.sca.provider.ReferenceBindingProvider; -import org.apache.tuscany.sca.provider.ServiceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -/** - * JSON-RPC Provider Factory - * - * @version $Rev$ $Date$ - */ -public class JSONRPCBindingProviderFactory implements BindingProviderFactory { - - private MessageFactory messageFactory; - private ServletHost servletHost; - - public JSONRPCBindingProviderFactory(ExtensionPointRegistry extensionPoints) { - ServletHostExtensionPoint servletHosts = extensionPoints.getExtensionPoint(ServletHostExtensionPoint.class); - this.servletHost = servletHosts.getServletHosts().get(0); - - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); - messageFactory = modelFactories.getFactory(MessageFactory.class); - } - - public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - JSONRPCBinding binding) { - - return new JSONRPCReferenceBindingProvider(component, reference, binding); - } - - public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - JSONRPCBinding binding) { - return new JSONRPCServiceBindingProvider(component, service, binding, messageFactory, servletHost); - } - - public Class getModelType() { - return JSONRPCBinding.class; - } - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java deleted file mode 100644 index e2528f59e5..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCReferenceBindingProvider.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc.provider; - -import org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.provider.ReferenceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; - -/** - * Implementation of the JSONRPC Binding Provider for References - * - * @version $Rev$ $Date$ - */ -public class JSONRPCReferenceBindingProvider implements ReferenceBindingProvider { - - private RuntimeComponentReference reference; - private JSONRPCBinding binding; - - public JSONRPCReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - JSONRPCBinding binding) { - this.reference = reference; - this.binding = binding; - - } - - public InterfaceContract getBindingInterfaceContract() { - return reference.getInterfaceContract(); - } - - public Invoker createInvoker(Operation operation) { - return new JSONRPCBindingInvoker(operation, binding.getURI()); - } - - public void start() { - // TODO Auto-generated method stub - - } - - public void stop() { - // TODO Auto-generated method stub - - } - - public boolean supportsOneWayInvocation() { - return false; - } - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java deleted file mode 100644 index 909bd7bc19..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc.provider; - -import java.net.URI; -import java.util.ArrayList; -import java.util.List; - -import org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding; -import org.apache.tuscany.sca.databinding.javabeans.SimpleJavaDataBinding; -import org.apache.tuscany.sca.databinding.json.JSONDataBinding; -import org.apache.tuscany.sca.host.http.ServletHost; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.Interface; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.java.JavaInterface; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.provider.ServiceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -/** - * Implementation of the JSONRPC Binding Provider for Services - * - * @version $Rev$ $Date$ - */ -public class JSONRPCServiceBindingProvider implements ServiceBindingProvider { - - // Path to the scaDomain.js script - // Note: this is the same as the Ajax binding to keep the client code - // the same for clients using either the ajax or jsonrpc binding - private static final String SCA_DOMAIN_SCRIPT = "/SCADomain/scaDomain.js"; - - private MessageFactory messageFactory; - - private RuntimeComponent component; - private RuntimeComponentService service; - private InterfaceContract serviceContract; - private JSONRPCBinding binding; - private ServletHost servletHost; - private List servletMappings = new ArrayList(); - private String domainScriptMapping; - - public JSONRPCServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - JSONRPCBinding binding, - MessageFactory messageFactory, - ServletHost servletHost) { - this.component = component; - this.service = service; - this.binding = binding; - this.messageFactory = messageFactory; - this.servletHost = servletHost; - - //clone the service contract to avoid databinding issues - try { - this.serviceContract = (InterfaceContract)service.getInterfaceContract().clone(); - } catch(CloneNotSupportedException e) { - this.serviceContract = service.getInterfaceContract(); - } - - setDataBinding(serviceContract.getInterface()); - } - - public InterfaceContract getBindingInterfaceContract() { - return service.getInterfaceContract(); - } - - public boolean supportsOneWayInvocation() { - return false; - } - - public void start() { - // Set default databinding to json - serviceContract.getInterface().resetDataBinding(JSONDataBinding.NAME); - - // Determine the service business interface - Class serviceInterface = getTargetJavaClass(serviceContract.getInterface()); - - // Create a Java proxy to the target service - Object proxy = component.getComponentContext().createSelfReference(serviceInterface, service).getService(); - - // Create and register a Servlet for this service - JSONRPCServiceServlet serviceServlet = - new JSONRPCServiceServlet(messageFactory, binding, service, serviceContract, serviceInterface, proxy); - String mapping = binding.getURI(); - if (!mapping.endsWith("/")) { - mapping += "/"; - } - if (!mapping.endsWith("*")) { - mapping += "*"; - } - - servletHost.addServletMapping(mapping, serviceServlet); - servletMappings.add(mapping); - servletHost.addServletMapping(binding.getURI(), serviceServlet); - servletMappings.add(binding.getURI()); - - // Register service to scaDomain.js - int port; - URI uri = URI.create(servletHost.getURLMapping(binding.getURI()).toString()); - port = uri.getPort(); - if (port == -1) { - port = servletHost.getDefaultPort(); - } - - // get the ScaDomainScriptServlet, if it doesn't yet exist create one - // this uses removeServletMapping / addServletMapping as there is no getServletMapping facility - domainScriptMapping = URI.create("http://localhost:" + port + SCA_DOMAIN_SCRIPT).toString(); - ScaDomainScriptServlet scaDomainServlet = - (ScaDomainScriptServlet)servletHost.getServletMapping(domainScriptMapping); - if (scaDomainServlet == null) { - scaDomainServlet = new ScaDomainScriptServlet(); - servletHost.addServletMapping(domainScriptMapping, scaDomainServlet); - } - - // Add this service to the SCA Domain Script Servlet - scaDomainServlet.addService(binding.getName()); - } - - public void stop() { - - // Remove the Servlet mappings we've added - for (String mapping: servletMappings) { - servletHost.removeServletMapping(mapping); - } - - // Unregister the service from the SCA Domain Script Servlet - ScaDomainScriptServlet scaDomainServlet = (ScaDomainScriptServlet) servletHost.getServletMapping(domainScriptMapping); - if (scaDomainServlet != null) { - scaDomainServlet.removeService(binding.getName()); - - // Remove the Servlet if there's no more registered services - if (scaDomainServlet.getServiceNames().isEmpty()) { - servletHost.removeServletMapping(domainScriptMapping); - } - } - - } - - private Class getTargetJavaClass(Interface targetInterface) { - // TODO: right now assume that the target is always a Java - // Implementation. Need to figure out how to generate Java - // Interface in cases where the target is not a Java Implementation - return ((JavaInterface)targetInterface).getJavaClass(); - } - - private void setDataBinding(Interface interfaze) { - List operations = interfaze.getOperations(); - for (Operation operation : operations) { - operation.setDataBinding(JSONDataBinding.NAME); - DataType> inputType = operation.getInputType(); - if (inputType != null) { - List logical = inputType.getLogical(); - for (DataType inArg : logical) { - if (!SimpleJavaDataBinding.NAME.equals(inArg.getDataBinding())) { - inArg.setDataBinding(JSONDataBinding.NAME); - } - } - } - DataType outputType = operation.getOutputType(); - if (outputType != null) { - if (!SimpleJavaDataBinding.NAME.equals(outputType.getDataBinding())) { - outputType.setDataBinding(JSONDataBinding.NAME); - } - } - } - } - - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java deleted file mode 100644 index a6ccd195ae..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceServlet.java +++ /dev/null @@ -1,314 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc.provider; - -import java.io.BufferedReader; -import java.io.CharArrayWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.util.List; - -import javax.servlet.ServletConfig; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; -import org.apache.tuscany.sca.runtime.RuntimeWire; -import org.json.JSONArray; -import org.json.JSONObject; -import org.osoa.sca.ServiceRuntimeException; - -import com.metaparadigm.jsonrpc.JSONRPCBridge; -import com.metaparadigm.jsonrpc.JSONRPCResult; -import com.metaparadigm.jsonrpc.JSONRPCServlet; - -/** - * Servlet that handles JSON-RPC requests invoking SCA services. - * - * There is an instance of this Servlet for each - * - * @version $Rev$ $Date$ - */ -public class JSONRPCServiceServlet extends JSONRPCServlet { - private static final long serialVersionUID = 1L; - - transient MessageFactory messageFactory; - - transient Binding binding; - transient String serviceName; - transient Object serviceInstance; - transient RuntimeComponentService componentService; - transient InterfaceContract serviceContract; - transient Class serviceInterface; - - public JSONRPCServiceServlet(MessageFactory messageFactory, - Binding binding, - RuntimeComponentService componentService, - InterfaceContract serviceContract, - Class serviceInterface, - Object serviceInstance) { - this.messageFactory = messageFactory; - this.binding = binding; - this.serviceName = binding.getName(); - this.componentService = componentService; - this.serviceContract = serviceContract; - this.serviceInterface = serviceInterface; - this.serviceInstance = serviceInstance; - } - - /** - * Override to do nothing as the JSONRPCServlet is setup by the - * service method in this class. - */ - @Override - public void init(ServletConfig config) { - } - - @Override - public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { - if ("smd".equals(request.getQueryString())) { - handleSMDRequest(request, response); - } else { - try { - handleServiceRequest(request, response); - - } catch(RuntimeException re) { - if (re.getCause() instanceof javax.security.auth.login.LoginException) { - response.setHeader("WWW-Authenticate", "BASIC realm=\"" + "ldap-realm" + "\""); - response.sendError(HttpServletResponse.SC_UNAUTHORIZED); - } - } finally { - HttpSession session = request.getSession(false); - if (session != null) { - session.removeAttribute("JSONRPCBridge"); - } - } - } - } - - private void handleServiceRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { - // Encode using UTF-8, although We are actually ASCII clean as - // all unicode data is JSON escaped using backslash u. This is - // less data efficient for foreign character sets but it is - // needed to support naughty browsers such as Konqueror and Safari - // which do not honour the charset set in the response - response.setContentType("text/plain;charset=utf-8"); - OutputStream out = response.getOutputStream(); - - // Decode using the charset in the request if it exists otherwise - // use UTF-8 as this is what all browser implementations use. - // The JSON-RPC-Java JavaScript client is ASCII clean so it - // although here we can correctly handle data from other clients - // that do not escape non ASCII data - String charset = request.getCharacterEncoding(); - if (charset == null) { - charset = "UTF-8"; - } - BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(), charset)); - - // Read the request - CharArrayWriter data = new CharArrayWriter(); - char[] buf = new char[4096]; - int ret; - while ((ret = in.read(buf, 0, 4096)) != -1) { - data.write(buf, 0, ret); - } - - JSONObject jsonReq = null; - String method = null; - try { - jsonReq = new JSONObject(data.toString()); - method = jsonReq.getString("method"); - } catch (Exception e) { - //FIXME Exceptions are not handled correctly here - // They should be reported to the client JavaScript as proper - // JavaScript exceptions. - throw new RuntimeException("Unable to parse request", e); - } - - - // check if it's a system request - // or a method invocation - byte[] bout; - if (method.startsWith("system.")) { - bout = handleJSONRPCSystemInvocation(request, response, data.toString()); - } else { - bout = handleJSONRPCMethodInvocation(request, response, jsonReq); - } - - // Send response to client - out.write(bout); - out.flush(); - out.close(); - } - - /** - * handles requests for the SMD descriptor for a service - */ - protected void handleSMDRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, UnsupportedEncodingException { - String serviceUrl = request.getRequestURL().toString(); - String smd = JavaToSmd.interfaceToSmd(serviceInterface, serviceUrl); - - response.setContentType("text/plain;charset=utf-8"); - OutputStream out = response.getOutputStream(); - byte[] bout = smd.getBytes("UTF-8"); - out.write(bout); - out.flush(); - out.close(); - } - - protected byte[] handleJSONRPCSystemInvocation(HttpServletRequest request, HttpServletResponse response, String requestData) throws IOException, - UnsupportedEncodingException { - /* - * Create a new bridge for every request to avoid all the problems with - * JSON-RPC-Java storing the bridge in the session - */ - HttpSession session = request.getSession(); - - JSONRPCBridge jsonrpcBridge = new JSONRPCBridge(); - jsonrpcBridge.registerObject("Service", serviceInstance, serviceInterface); - session.setAttribute("JSONRPCBridge", jsonrpcBridge); - - org.json.JSONObject jsonReq = null; - com.metaparadigm.jsonrpc.JSONRPCResult jsonResp = null; - try { - jsonReq = new org.json.JSONObject(requestData); - } catch (java.text.ParseException e) { - throw new RuntimeException("Unable to parse request", e); - } - - String method = jsonReq.getString("method"); - if ((method != null) && (method.indexOf('.') < 0)) { - jsonReq.putOpt("method", "Service" + "." + method); - } - - // invoke the request - jsonResp = jsonrpcBridge.call(new Object[] {request}, jsonReq); - - return jsonResp.toString().getBytes("UTF-8"); - } - - protected byte[] handleJSONRPCMethodInvocation(HttpServletRequest request, HttpServletResponse response, JSONObject jsonReq) throws IOException, - UnsupportedEncodingException { - - String method = null; - Object[] args = null; - Object id = null; - try { - // Extract the method - method = jsonReq.getString("method"); - if ((method != null) && (method.indexOf('.') < 0)) { - jsonReq.putOpt("method", "Service" + "." + method); - } - - // Extract the arguments - JSONArray array = jsonReq.getJSONArray("params"); - args = new Object[array.length()]; - for (int i = 0; i < args.length; i++) { - args[i] = array.get(i); - } - id = jsonReq.get("id"); - - } catch (Exception e) { - throw new RuntimeException("Unable to find json method name", e); - } - - // invoke the request - RuntimeWire wire = componentService.getRuntimeWire(binding, serviceContract); - Operation jsonOperation = findOperation(method); - Object result = null; - - - // Invoke the get operation on the service implementation - Message requestMessage = messageFactory.createMessage(); - requestMessage.setOperation(jsonOperation); - - requestMessage.getHeaders().add(request); - - requestMessage.setBody(args); - - //result = wire.invoke(jsonOperation, args); - Message responseMessage = null; - try { - responseMessage = wire.getInvocationChain(jsonOperation).getHeadInvoker().invoke(requestMessage); - } catch (RuntimeException re) { - if (re.getCause() instanceof javax.security.auth.login.LoginException) { - throw re; - } else { - //some other exception - JSONRPCResult errorResult = new JSONRPCResult(JSONRPCResult.CODE_REMOTE_EXCEPTION, id, re); - return errorResult.toString().getBytes("UTF-8"); - } - } - - if (!responseMessage.isFault()) { - //successful execution of the invocation - try { - result = responseMessage.getBody(); - JSONObject jsonResponse = new JSONObject(); - jsonResponse.put("result", result); - jsonResponse.putOpt("id", id); - //get response to send to client - return jsonResponse.toString().getBytes("UTF-8"); - } catch (Exception e) { - throw new ServiceRuntimeException("Unable to create JSON response", e); - } - } else { - //exception thrown while executing the invocation - Throwable exception = (Throwable)responseMessage.getBody(); - JSONRPCResult errorResult = new JSONRPCResult(JSONRPCResult.CODE_REMOTE_EXCEPTION, id, exception ); - return errorResult.toString().getBytes("UTF-8"); - } - - } - - /** - * Find the operation from the component service contract - * @param componentService - * @param method - * @return - */ - private Operation findOperation(String method) { - if (method.contains(".")) { - method = method.substring(method.lastIndexOf(".") + 1); - } - - List operations = serviceContract.getInterface().getOperations(); - //componentService.getBindingProvider(binding).getBindingInterfaceContract().getInterface().getOperations(); - - - Operation result = null; - for (Operation o : operations) { - if (o.getName().equalsIgnoreCase(method)) { - result = o; - break; - } - } - - return result; - } -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JavaToSmd.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JavaToSmd.java deleted file mode 100644 index 64339fda7b..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JavaToSmd.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc.provider; - -import java.lang.reflect.Method; - -/** - * Utility class to create a Simple Method Description (SMD) descriptor - * from a Java class. See http://dojo.jot.com/SMD. - * - * TODO: Change to work from the Tuscany Interface instead of a Java class - * - * @version $Rev$ $Date$ - */ -class JavaToSmd { - - static String interfaceToSmd(Class klazz, String serviceUrl) { - String name = klazz.getSimpleName(); - Method[] methods = klazz.getMethods(); - - StringBuffer smdSb = new StringBuffer(); - smdSb.append("{\"SMDVersion\":\".1\",\"objectName\":\"" + name + "\",\"serviceType\":\"JSON-RPC\",\"serviceURL\":\""+ serviceUrl + "\",\"methods\":["); - for (int i = 0; i < methods.length; i++) { - if (i != 0) smdSb.append(","); - Class[] params = methods[i].getParameterTypes(); - smdSb.append("{\"name\":\""+methods[i].getName() + "\",\"parameters\":["); - for (int j = 0; j < params.length; j++) { - if (j != 0) smdSb.append(","); - // right now Dojo doesn't look at the type value, so we'll default it to STRING - // also, since we can't introspect the method parameter names we'll just create an incrementing parameter name - smdSb.append("{\"name\":\"param" + j + "\",\"type\":\"STRING\"}"); - } - smdSb.append("]}"); - } - smdSb.append("]}"); - - return smdSb.toString(); - } - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/ScaDomainScriptServlet.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/ScaDomainScriptServlet.java deleted file mode 100644 index 999588abf1..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/ScaDomainScriptServlet.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc.provider; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * Servlet to handle requests for the scaDomain.js script. - * - * This script wrappers the JSON-RPC-Java jsonrpc.js script - * adding in at the bottom the JavaScript to create and initialize - * the variables representing the SCA services. - * - * @version $Rev$ $Date$ - */ -public class ScaDomainScriptServlet extends HttpServlet { - private static final long serialVersionUID = 1L; - - protected transient List serviceNames; - - public ScaDomainScriptServlet() { - serviceNames = new ArrayList(); - } - - @Override - public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - - ServletOutputStream os = response.getOutputStream(); - - os.println(); - os.println("/* Apache Tuscany scaDomain.js Header */"); - os.println(); - - writeJSONRPCJavaScript(os); - writeScaDomainCode(os, request.getServletPath()); - } - - /** - * Creates a JavaScript variable within the scaDomain script for each SCA service and - * initializes its value with the JSON-RPC client to invoke the serverside service. - */ - protected void writeScaDomainCode(ServletOutputStream out, String path) throws IOException { - out.println(); - out.println("/* Apache Tuscany scaDomain.js Footer */"); - out.println(); - out.println("function scaDomain() {}"); - - // remove the leading slash '/' character - path = path.substring(1); - - for (String serviceName : serviceNames) { - out.println(); - - // A slight hack to make the service function available with a variable named 'serviceName' - // to do that the JSONRpcClient is added to the scaDomain and then the service function is got from that - out.println("scaDomain." + serviceName + " = " + "new JSONRpcClient(\"" + serviceName + "\");"); - out.println(serviceName + " = scaDomain." + serviceName + ".Service;"); - } - - out.println(); - out.println("/** End of Apache Tuscany scaDomain.js */"); - out.println(); - } - - /** - * Reads the jsonrpc.js script from the classpath and adds its contents to the output stream. - */ - protected void writeJSONRPCJavaScript(ServletOutputStream os) throws IOException { - URL url = getClass().getResource("jsonrpc.js"); - InputStream is = url.openStream(); - int i; - while ((i = is.read()) != -1) { - os.write(i); - } - } - - public void addService(String serviceName) { - serviceNames.add(serviceName); - } - - public void removeService(String serviceName) { - serviceNames.remove(serviceName); - } - - public List getServiceNames() { - return serviceNames; - } - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory deleted file mode 100644 index 4767358e7a..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory +++ /dev/null @@ -1,19 +0,0 @@ -# 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. - -# Implementation class for the binding extension -org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCBindingProviderFactory;model=org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/org/apache/tuscany/sca/binding/jsonrpc/provider/jsonrpc.js b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/org/apache/tuscany/sca/binding/jsonrpc/provider/jsonrpc.js deleted file mode 100644 index d837bab91c..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/main/resources/org/apache/tuscany/sca/binding/jsonrpc/provider/jsonrpc.js +++ /dev/null @@ -1,493 +0,0 @@ -/* - * JSON-RPC JavaScript client - * - * $Id: jsonrpc.js,v 1.36.2.3 2006/03/08 15:09:37 mclark Exp $ - * - * Copyright (c) 2003-2004 Jan-Klaas Kollhof - * Copyright (c) 2005 Michael Clark, Metaparadigm Pte Ltd - * - * This code is based on Jan-Klaas' JavaScript o lait library (jsolait). - * - * Licensed 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. - * - */ - -/* - * Modifications for Apache Tuscany: - * - JSONRpcClient_createMethod changed so callback is last arg - */ - -/* escape a character */ - -escapeJSONChar = -function escapeJSONChar(c) -{ - if(c == "\"" || c == "\\") return "\\" + c; - else if (c == "\b") return "\\b"; - else if (c == "\f") return "\\f"; - else if (c == "\n") return "\\n"; - else if (c == "\r") return "\\r"; - else if (c == "\t") return "\\t"; - var hex = c.charCodeAt(0).toString(16); - if(hex.length == 1) return "\\u000" + hex; - else if(hex.length == 2) return "\\u00" + hex; - else if(hex.length == 3) return "\\u0" + hex; - else return "\\u" + hex; -}; - - -/* encode a string into JSON format */ - -escapeJSONString = -function escapeJSONString(s) -{ - /* The following should suffice but Safari's regex is b0rken - (doesn't support callback substitutions) - return "\"" + s.replace(/([^\u0020-\u007f]|[\\\"])/g, - escapeJSONChar) + "\""; - */ - - /* Rather inefficient way to do it */ - var parts = s.split(""); - for(var i=0; i < parts.length; i++) { - var c =parts[i]; - if(c == '"' || - c == '\\' || - c.charCodeAt(0) < 32 || - c.charCodeAt(0) >= 128) - parts[i] = escapeJSONChar(parts[i]); - } - return "\"" + parts.join("") + "\""; -}; - - -/* Marshall objects to JSON format */ - -toJSON = function toJSON(o) -{ - if(o == null) { - return "null"; - } else if(o.constructor == String) { - return escapeJSONString(o); - } else if(o.constructor == Number) { - return o.toString(); - } else if(o.constructor == Boolean) { - return o.toString(); - } else if(o.constructor == Date) { - return '{javaClass: "java.util.Date", time: ' + o.valueOf() +'}'; - } else if(o.constructor == Array) { - var v = []; - for(var i = 0; i < o.length; i++) v.push(toJSON(o[i])); - return "[" + v.join(", ") + "]"; - } else { - var v = []; - for(attr in o) { - if(o[attr] == null) v.push("\"" + attr + "\": null"); - else if(typeof o[attr] == "function"); /* skip */ - else v.push(escapeJSONString(attr) + ": " + toJSON(o[attr])); - } - return "{" + v.join(", ") + "}"; - } -}; - - -/* JSONRpcClient constructor */ - -JSONRpcClient = -function JSONRpcClient_ctor(serverURL, user, pass, objectID) -{ - this.serverURL = serverURL; - this.user = user; - this.pass = pass; - this.objectID = objectID; - - /* Add standard methods */ - if(this.objectID) { - this._addMethods(["listMethods"]); - var req = this._makeRequest("listMethods", []); - } else { - this._addMethods(["system.listMethods"]); - var req = this._makeRequest("system.listMethods", []); - } - var m = this._sendRequest(req); - this._addMethods(m); -}; - - -/* JSONRpcCLient.Exception */ - -JSONRpcClient.Exception = -function JSONRpcClient_Exception_ctor(code, message, javaStack) -{ - this.code = code; - var name; - if(javaStack) { - this.javaStack = javaStack; - var m = javaStack.match(/^([^:]*)/); - if(m) name = m[0]; - } - if(name) this.name = name; - else this.name = "JSONRpcClientException"; - this.message = message; -}; - -JSONRpcClient.Exception.CODE_REMOTE_EXCEPTION = 490; -JSONRpcClient.Exception.CODE_ERR_CLIENT = 550; -JSONRpcClient.Exception.CODE_ERR_PARSE = 590; -JSONRpcClient.Exception.CODE_ERR_NOMETHOD = 591; -JSONRpcClient.Exception.CODE_ERR_UNMARSHALL = 592; -JSONRpcClient.Exception.CODE_ERR_MARSHALL = 593; - -JSONRpcClient.Exception.prototype = new Error(); - -JSONRpcClient.Exception.prototype.toString = -function JSONRpcClient_Exception_toString(code, msg) -{ - return this.name + ": " + this.message; -}; - - -/* Default top level exception handler */ - -JSONRpcClient.default_ex_handler = -function JSONRpcClient_default_ex_handler(e) { alert(e); }; - - -/* Client settable variables */ - -JSONRpcClient.toplevel_ex_handler = JSONRpcClient.default_ex_handler; -JSONRpcClient.profile_async = false; -JSONRpcClient.max_req_active = 1; -JSONRpcClient.requestId = 1; - - -/* JSONRpcClient implementation */ - -JSONRpcClient.prototype._createMethod = -function JSONRpcClient_createMethod(methodName) -{ - var fn=function() - { - var args = []; - var callback = null; - for(var i=0;i 0) { - var res = JSONRpcClient.async_responses.shift(); - if(res.canceled) continue; - if(res.profile) res.profile.dispatch = new Date(); - try { - res.cb(res.result, res.ex, res.profile); - } catch(e) { - JSONRpcClient.toplevel_ex_handler(e); - } - } - - while(JSONRpcClient.async_requests.length > 0 && - JSONRpcClient.num_req_active < JSONRpcClient.max_req_active) { - var req = JSONRpcClient.async_requests.shift(); - if(req.canceled) continue; - req.client._sendRequest.call(req.client, req); - } -}; - -JSONRpcClient.kick_async = -function JSONRpcClient_kick_async() -{ - if(JSONRpcClient.async_timeout == null) - JSONRpcClient.async_timeout = - setTimeout(JSONRpcClient._async_handler, 0); -}; - -JSONRpcClient.cancelRequest = -function JSONRpcClient_cancelRequest(requestId) -{ - /* If it is in flight then mark it as canceled in the inflight map - and the XMLHttpRequest callback will discard the reply. */ - if(JSONRpcClient.async_inflight[requestId]) { - JSONRpcClient.async_inflight[requestId].canceled = true; - return true; - } - - /* If its not in flight yet then we can just mark it as canceled in - the the request queue and it will get discarded before being sent. */ - for(var i in JSONRpcClient.async_requests) { - if(JSONRpcClient.async_requests[i].requestId == requestId) { - JSONRpcClient.async_requests[i].canceled = true; - return true; - } - } - - /* It may have returned from the network and be waiting for its callback - to be dispatched, so mark it as canceled in the response queue - and the response will get discarded before calling the callback. */ - for(var i in JSONRpcClient.async_responses) { - if(JSONRpcClient.async_responses[i].requestId == requestId) { - JSONRpcClient.async_responses[i].canceled = true; - return true; - } - } - - return false; -}; - -JSONRpcClient.prototype._makeRequest = -function JSONRpcClient_makeRequest(methodName, args, cb) -{ - var req = {}; - req.client = this; - req.requestId = JSONRpcClient.requestId++; - - var obj = {}; - obj.id = req.requestId; - if (this.objectID) - obj.method = ".obj#" + this.objectID + "." + methodName; - else - obj.method = methodName; - obj.params = args; - - if (cb) req.cb = cb; - if (JSONRpcClient.profile_async) - req.profile = { "submit": new Date() }; - req.data = toJSON(obj); - - return req; -}; - -JSONRpcClient.prototype._sendRequest = -function JSONRpcClient_sendRequest(req) -{ - if(req.profile) req.profile.start = new Date(); - - /* Get free http object from the pool */ - var http = JSONRpcClient.poolGetHTTPRequest(); - JSONRpcClient.num_req_active++; - - /* Send the request */ - if (typeof(this.user) == "undefined") { - http.open("POST", this.serverURL, (req.cb != null)); - } else { - http.open("POST", this.serverURL, (req.cb != null), this.user, this.pass); - } - - /* setRequestHeader is missing in Opera 8 Beta */ - try { http.setRequestHeader("Content-type", "text/plain"); } catch(e) {} - - /* Construct call back if we have one */ - if(req.cb) { - var self = this; - http.onreadystatechange = function() { - if(http.readyState == 4) { - http.onreadystatechange = function () {}; - var res = { "cb": req.cb, "result": null, "ex": null}; - if (req.profile) { - res.profile = req.profile; - res.profile.end = new Date(); - } - try { res.result = self._handleResponse(http); } - catch(e) { res.ex = e; } - if(!JSONRpcClient.async_inflight[req.requestId].canceled) - JSONRpcClient.async_responses.push(res); - delete JSONRpcClient.async_inflight[req.requestId]; - JSONRpcClient.kick_async(); - } - }; - } else { - http.onreadystatechange = function() {}; - } - - JSONRpcClient.async_inflight[req.requestId] = req; - - try { - http.send(req.data); - } catch(e) { - JSONRpcClient.poolReturnHTTPRequest(http); - JSONRpcClient.num_req_active--; - throw new JSONRpcClient.Exception - (JSONRpcClient.Exception.CODE_ERR_CLIENT, "Connection failed"); - } - - if(!req.cb) return this._handleResponse(http); -}; - -JSONRpcClient.prototype._handleResponse = -function JSONRpcClient_handleResponse(http) -{ - /* Get the charset */ - if(!this.charset) { - this.charset = JSONRpcClient._getCharsetFromHeaders(http); - } - - /* Get request results */ - var status, statusText, data; - try { - status = http.status; - statusText = http.statusText; - data = http.responseText; - } catch(e) { - JSONRpcClient.poolReturnHTTPRequest(http); - JSONRpcClient.num_req_active--; - JSONRpcClient.kick_async(); - throw new JSONRpcClient.Exception - (JSONRpcClient.Exception.CODE_ERR_CLIENT, "Connection failed"); - } - - /* Return http object to the pool; */ - JSONRpcClient.poolReturnHTTPRequest(http); - JSONRpcClient.num_req_active--; - - /* Unmarshall the response */ - if(status != 200) { - throw new JSONRpcClient.Exception(status, statusText); - } - var obj; - try { - eval("obj = " + data); - } catch(e) { - throw new JSONRpcClient.Exception(550, "error parsing result"); - } - if(obj.error) - throw new JSONRpcClient.Exception(obj.error.code, obj.error.msg, - obj.error.trace); - var res = obj.result; - - /* Handle CallableProxy */ - if(res && res.objectID && res.JSONRPCType == "CallableReference") - return new JSONRpcClient(this.serverURL, this.user, - this.pass, res.objectID); - - return res; -}; - - -/* XMLHttpRequest wrapper code */ - -/* XMLHttpRequest pool globals */ -JSONRpcClient.http_spare = []; -JSONRpcClient.http_max_spare = 8; - -JSONRpcClient.poolGetHTTPRequest = -function JSONRpcClient_pool_getHTTPRequest() -{ - if(JSONRpcClient.http_spare.length > 0) { - return JSONRpcClient.http_spare.pop(); - } - return JSONRpcClient.getHTTPRequest(); -}; - -JSONRpcClient.poolReturnHTTPRequest = -function JSONRpcClient_poolReturnHTTPRequest(http) -{ - if(JSONRpcClient.http_spare.length >= JSONRpcClient.http_max_spare) - delete http; - else - JSONRpcClient.http_spare.push(http); -}; - -JSONRpcClient.msxmlNames = [ "MSXML2.XMLHTTP.5.0", - "MSXML2.XMLHTTP.4.0", - "MSXML2.XMLHTTP.3.0", - "MSXML2.XMLHTTP", - "Microsoft.XMLHTTP" ]; - -JSONRpcClient.getHTTPRequest = -function JSONRpcClient_getHTTPRequest() -{ - /* Mozilla XMLHttpRequest */ - try { - JSONRpcClient.httpObjectName = "XMLHttpRequest"; - return new XMLHttpRequest(); - } catch(e) {} - - /* Microsoft MSXML ActiveX */ - for (var i=0;i < JSONRpcClient.msxmlNames.length; i++) { - try { - JSONRpcClient.httpObjectName = JSONRpcClient.msxmlNames[i]; - return new ActiveXObject(JSONRpcClient.msxmlNames[i]); - } catch (e) {} - } - - /* None found */ - JSONRpcClient.httpObjectName = null; - throw new JSONRpcClient.Exception(0, "Can't create XMLHttpRequest object"); -}; - diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/bean/TestBean.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/bean/TestBean.java deleted file mode 100644 index 4b159fb563..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/bean/TestBean.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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 bean; - -public class TestBean { - private String testString; - private String[] testStringArray; - private int testInt; - - - public String getTestString() { - return testString; - } - - public void setTestString(String testString) { - this.testString = testString; - } - - public String[] getTestStringArray() { - return testStringArray; - } - - public void setStringArray(String[] stringArray) { - this.testStringArray = stringArray; - } - - public int getTestInt() { - return testInt; - } - - public void setTestInt(int testInt) { - this.testInt = testInt; - } - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/Echo.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/Echo.java deleted file mode 100644 index 580af6cf31..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/Echo.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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 echo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.osoa.sca.annotations.Remotable; - -import bean.TestBean; - -/** - * Interface of our sample JSONRPC service. - * - * @version $Rev$ $Date$ - */ -@Remotable -public interface Echo { - - String echo(String msg); - - void echoRuntimeException() throws RuntimeException; - - void echoBusinessException() throws EchoBusinessException; - - int echoInt(int param); - - boolean echoBoolean(boolean param); - - Map echoMap(HashMap map); - - TestBean echoBean(TestBean testBean); - - List echoList(ArrayList list); - - String [] echoArrayString(String[] stringArray); - - int [] echoArrayInt(int[] intArray); - - Set echoSet(HashSet set); - - void get\u03a9\u03bb\u03c0(); - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoBusinessException.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoBusinessException.java deleted file mode 100644 index bf8c7d2c8a..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoBusinessException.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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 echo; - -public class EchoBusinessException extends Exception { - private static final long serialVersionUID = 7234119326657905710L; - - public EchoBusinessException(String message) - { - super(message); - } - -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoComponentImpl.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoComponentImpl.java deleted file mode 100644 index 2f4880286f..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/echo/EchoComponentImpl.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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 echo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import bean.TestBean; - -/** - * A simple client component that uses a reference with an JSONRPC binding. - * - * @version $Rev$ $Date$ - */ -public class EchoComponentImpl implements Echo { - - public String echo(String msg) { - System.out.println("Echo: "+ msg); - return "echo: " + msg; - } - - public void echoBusinessException() throws EchoBusinessException { - throw new EchoBusinessException("Business Exception"); - - } - - public void echoRuntimeException() throws RuntimeException { - throw new RuntimeException("Runtime Exception"); - } - - public int echoInt(int param) { - int value = param; - return value; - } - - public boolean echoBoolean(boolean param) { - boolean value = param; - return value; - } - - public Map echoMap(HashMap param) { - Map map = new HashMap(); - map = param; - return map; - } - - public TestBean echoBean(TestBean testBean1) { - TestBean testBean = new TestBean(); - testBean.setTestString(testBean1.getTestString()); - testBean.setTestInt(testBean1.getTestInt()); - return testBean; - } - - public List echoList(ArrayList param){ - List list = new ArrayList(); - for(Iterator itr = param.iterator();itr.hasNext();) - { - list.add(itr.next()); - } - return list; - } - - public String[] echoArrayString(String[] stringArray) { - return stringArray; - } - - public int[] echoArrayInt(int[] intArray) { - return intArray; - } - - public Set echoSet(HashSet param){ - Set set = new HashSet(); - set = param; - return set; - - } - - - public void get\u03a9\u03bb\u03c0() { - - } -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCDataTypeTestCase.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCDataTypeTestCase.java deleted file mode 100644 index 6d156fcdf5..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCDataTypeTestCase.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc; - -import java.io.ByteArrayInputStream; - -import junit.framework.Assert; - -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.json.JSONObject; -import org.junit.After; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; - -import com.meterware.httpunit.PostMethodWebRequest; -import com.meterware.httpunit.WebConversation; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -/** - * @version $Rev$ $Date$ - */ -public class JSONRPCDataTypeTestCase { - - private static final String SERVICE_PATH = "/EchoService"; - private static final String SERVICE_URL = "http://localhost:8085/SCADomain" + SERVICE_PATH; - private SCADomain domain; - - @Before - public void setUp() throws Exception { - domain = SCADomain.newInstance("JSONRPCBinding.composite"); - } - - @After - public void tearDown() throws Exception { - domain.close(); - } - - @Test - public void testInt() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{ \"method\": \"echoInt\", \"params\": [12345], \"id\": 4}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals(12345, jsonResp.getInt("result")); - } - - @Test - public void testBoolean() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{ \"method\": \"echoBoolean\", \"params\": [true], \"id\": 5}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals(true, jsonResp.getBoolean("result")); - } - - @Test - public void testMap() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{ \"method\": \"echoMap\", \"params\": [ {\"javaClass\": \"java.util.HashMap\", \"map\": { \"Binding\": \"JSON-RPC\"}}], \"id\": 6}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals("JSON-RPC", jsonResp.getJSONObject("result").getJSONObject("map").getString("Binding")); - } - - @Test - public void testBean() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{ \"method\": \"echoBean\", \"params\": [ {\"javaClass\": \"bean.TestBean\", \"testString\": \"JSON-RPC\", \"testInt\":1234}], \"id\": 7}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals("JSON-RPC", jsonResp.getJSONObject("result").getString("testString")); - } - - @Test - public void testList() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{ \"method\": \"echoList\", \"params\": [ {\"javaClass\": \"java.util.ArrayList\", \"list\": [0,1,2,3,4]}], \"id\": 8}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals(0, jsonResp.getJSONObject("result").getJSONArray("list").get(0)); - } - - @Test - public void testArrayString() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{\"params\":[[\"1\",\"2\"]],\"method\":\"echoArrayString\",\"id\":9}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals(1, jsonResp.getJSONArray("result").getInt(0)); - } - - - @Test - public void testArrayInt() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{\"params\":[[1,2]],\"method\":\"echoArrayInt\",\"id\":10}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals(1, jsonResp.getJSONArray("result").getInt(0)); - } - - - @Test - public void testSet() throws Exception { - JSONObject jsonRequest = new JSONObject( - "{ \"method\": \"echoSet\", \"params\": [ {\"javaClass\": \"java.util.HashSet\", \"set\": {\"1\": \"red\", \"2\": \"blue\"}}],\"id\": 11}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest(SERVICE_URL, - new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")), "application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - - Assert.assertEquals("red", jsonResp.getJSONObject("result").getJSONObject("set").getString("red")); - } -} \ No newline at end of file diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCExceptionTestCase.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCExceptionTestCase.java deleted file mode 100644 index 52518e1bbc..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCExceptionTestCase.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc; - -import java.io.ByteArrayInputStream; - -import junit.framework.Assert; - -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.json.JSONObject; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import com.meterware.httpunit.PostMethodWebRequest; -import com.meterware.httpunit.WebConversation; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -/** - * @version $Rev$ $Date$ - */ -public class JSONRPCExceptionTestCase{ - - private static final String SERVICE_PATH = "/EchoService"; - - private static final String SERVICE_URL = "http://localhost:8085/SCADomain" + SERVICE_PATH; - - private SCADomain domain; - - @Before - public void setUp() throws Exception { - domain = SCADomain.newInstance("JSONRPCBinding.composite"); - } - - @After - public void tearDown() throws Exception { - domain.close(); - } - - @Test - public void testRuntimeException() throws Exception{ - JSONObject jsonRequest = new JSONObject("{ \"method\": \"echoRuntimeException\", \"params\": [], \"id\": 2}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest( SERVICE_URL, new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")),"application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonErr = new JSONObject(response.getText()).getJSONObject("error"); - - Assert.assertEquals("Runtime Exception", jsonErr.getString("msg")); - } - - @Test - public void testBusinessException() throws Exception{ - JSONObject jsonRequest = new JSONObject("{ \"method\": \"echoBusinessException\", \"params\": [], \"id\": 3}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest( SERVICE_URL, new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")),"application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonErr = new JSONObject(response.getText()).getJSONObject("error"); - - Assert.assertEquals("Business Exception", jsonErr.getString("msg")); - } -} \ No newline at end of file diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceTestCase.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceTestCase.java deleted file mode 100644 index 67d3eda6b2..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCServiceTestCase.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc; - -import java.io.ByteArrayInputStream; - -import junit.framework.Assert; - -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.json.JSONObject; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import com.meterware.httpunit.PostMethodWebRequest; -import com.meterware.httpunit.WebConversation; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -/** - * @version $Rev$ $Date$ - */ -public class JSONRPCServiceTestCase{ - - private static final String SERVICE_PATH = "/EchoService"; - - private static final String SERVICE_URL = "http://localhost:8085/SCADomain" + SERVICE_PATH; - - private SCADomain domain; - - @Before - public void setUp() throws Exception { - domain = SCADomain.newInstance("JSONRPCBinding.composite"); - } - - @After - public void tearDown() throws Exception { - domain.close(); - } - - @Test - public void testJSONRPCBinding() throws Exception { - JSONObject jsonRequest = new JSONObject("{ \"method\": \"echo\", \"params\": [\"Hello JSON-RPC\"], \"id\": 1}"); - - WebConversation wc = new WebConversation(); - WebRequest request = new PostMethodWebRequest( SERVICE_URL, new ByteArrayInputStream(jsonRequest.toString().getBytes("UTF-8")),"application/json"); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - - JSONObject jsonResp = new JSONObject(response.getText()); - Assert.assertEquals("echo: Hello JSON-RPC", jsonResp.getString("result")); - } -} \ No newline at end of file diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCSmdTestCase.java b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCSmdTestCase.java deleted file mode 100644 index 64c2dd31f2..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/java/org/apache/tuscany/sca/binding/jsonrpc/JSONRPCSmdTestCase.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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 org.apache.tuscany.sca.binding.jsonrpc; - -import junit.framework.Assert; - -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -import com.meterware.httpunit.GetMethodWebRequest; -import com.meterware.httpunit.WebConversation; -import com.meterware.httpunit.WebRequest; -import com.meterware.httpunit.WebResponse; - -/** - * @version $Rev$ $Date$ - */ -public class JSONRPCSmdTestCase { - - private static final String SERVICE_PATH = "/EchoService"; - - private static final String SERVICE_URL = "http://localhost:8085/SCADomain" + SERVICE_PATH; - - private static final String SMD_URL = SERVICE_URL + "?smd"; - - private static SCADomain domain; - - @Before - public void setUp() throws Exception { - domain = SCADomain.newInstance("JSONRPCBinding.composite"); - } - - @After - public void tearDown() throws Exception { - domain.close(); - } - - @Test - /** - * This test make sure the JSON-RPC Binding can handle special characters when generating SMD - */ - public void testJSONRPCSmdSpecialCharacters() throws Exception { - WebConversation wc = new WebConversation(); - WebRequest request = new GetMethodWebRequest(SMD_URL); - WebResponse response = wc.getResource(request); - - Assert.assertEquals(200, response.getResponseCode()); - Assert.assertNotNull(response.getText()); - - //System.out.println(">>>SMD:" + response.getText()); - } -} diff --git a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/resources/JSONRPCBinding.composite b/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/resources/JSONRPCBinding.composite deleted file mode 100644 index 978fdcfa7f..0000000000 --- a/tags/java/sca/1.5.1/modules/binding-jsonrpc-runtime/src/test/resources/JSONRPCBinding.composite +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - -- cgit v1.2.3