From 10a2ea1f2d41791aa3078618f3b3ecfba9a98212 Mon Sep 17 00:00:00 2001 From: scottkurz Date: Wed, 27 Jul 2011 21:46:25 +0000 Subject: TUSCANY-3894. Add tests especially exercising binding-sca-runtime code cross-classloader. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1151641 13f79535-47bb-0310-9956-ffa450edef68 --- .../trunk/testing/itest/data-copy/client/pom.xml | 49 +++++++ .../main/java/itest/client/impl/ClientImpl.java | 119 ++++++++++++++++ .../java/itest/privatecopy/intf/ServiceIntf.java | 42 ++++++ .../main/java/itest/privatecopy/types/Name.java | 24 ++++ .../src/main/resources/helloworld-client.composite | 44 ++++++ .../trunk/testing/itest/data-copy/common/pom.xml | 39 ++++++ .../main/java/itest/common/intf/ClientIntf.java | 31 ++++ .../main/resources/META-INF/sca-contribution.xml | 23 +++ .../trunk/testing/itest/data-copy/driver/pom.xml | 79 +++++++++++ .../src/test/java/itest/CrossContribTestCase.java | 156 +++++++++++++++++++++ sca-java-2.x/trunk/testing/itest/data-copy/pom.xml | 43 ++++++ .../trunk/testing/itest/data-copy/service/pom.xml | 51 +++++++ .../java/itest/privatecopy/intf/ServiceIntf.java | 56 ++++++++ .../main/java/itest/privatecopy/types/Name.java | 24 ++++ .../main/java/itest/service/impl/ServiceImpl.java | 81 +++++++++++ .../main/resources/helloworld-service.composite | 33 +++++ 16 files changed, 894 insertions(+) create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/client/pom.xml create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/client/impl/ClientImpl.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/intf/ServiceIntf.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/types/Name.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/resources/helloworld-client.composite create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/common/pom.xml create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/java/itest/common/intf/ClientIntf.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/driver/pom.xml create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/driver/src/test/java/itest/CrossContribTestCase.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/pom.xml create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/service/pom.xml create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/intf/ServiceIntf.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/types/Name.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/service/impl/ServiceImpl.java create mode 100644 sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/resources/helloworld-service.composite (limited to 'sca-java-2.x/trunk/testing/itest/data-copy') diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/client/pom.xml b/sca-java-2.x/trunk/testing/itest/data-copy/client/pom.xml new file mode 100644 index 0000000000..1a15bb987c --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/client/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + itest-data-copy + 2.0-SNAPSHOT + ../pom.xml + + itest-data-copy-client + Apache Tuscany SCA iTest Data-Copy Client + + + + org.apache.tuscany.sca + itest-data-copy-common + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-sca-api + 2.0-SNAPSHOT + provided + + + org.apache.tuscany.sca + tuscany-databinding + 2.0-SNAPSHOT + + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/client/impl/ClientImpl.java b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/client/impl/ClientImpl.java new file mode 100644 index 0000000000..5ae417b845 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/client/impl/ClientImpl.java @@ -0,0 +1,119 @@ +/* + * 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 itest.client.impl; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertTrue; + +import java.io.StringReader; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import itest.common.intf.ClientIntf; +import itest.privatecopy.intf.ServiceIntf; +import itest.privatecopy.types.Name; + +import org.oasisopen.sca.annotation.Reference; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.xml.sax.InputSource; + +public class ClientImpl implements ClientIntf { + + @Reference + public ServiceIntf service; + + @Override + public void callJAXBCrossContribution() { + Name name = new Name(); + name.setFirstName("Leora"); + name.setLastName("Mayora"); + Name retVal = service.greet(name); + assertEquals("Hi Leora", retVal.getFirstName()); + assertEquals("Ms. Mayora", retVal.getLastName()); + } + + @Override + public void callObjectGraphCheck(int caseNumber) { + switch (caseNumber) { + case 1: + Name name1 = new Name(); + name1.setFirstName("First"); + name1.setLastName("Last"); + boolean retVal1 = service.areNamesTheSameObjects(name1, name1); + assertTrue(retVal1); + break; + case 2: + Name name2a = new Name(); + name2a.setFirstName("First"); + name2a.setLastName("Last"); + Name name2b = new Name(); + name2b.setFirstName("First"); + name2b.setLastName("Last"); + boolean retVal2 = service.areNamesTheSameObjects(name2a, name2b); + assertFalse(retVal2); + break; + + } + } + + @Override + public void callJSON() { + Name name = new Name(); + name.setFirstName("Jason"); + name.setLastName("Nosaj"); + String retVal = service.greetJSON(name); + assertEquals("good", retVal); + } + + @Override + public void callSDO() { + Name name = new Name(); + name.setFirstName("SDO"); + name.setLastName("ODS"); + service.greetSDO(name); + //assertEquals("good", retVal); + } + + @Override + public void testRoundTripDOMIdentity() { + try { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + String nameString = "" + + "BOB"; + InputSource is = new InputSource( new StringReader(nameString) ); + Document doc = builder.parse(is); + Node name = doc.getDocumentElement(); + Node retVal = service.greetDOM(name); + assertNotSame("PBV should result in different object", name, retVal); + } catch (Exception e) { + throw new RuntimeException(e); + } + + } + + +} diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/intf/ServiceIntf.java b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/intf/ServiceIntf.java new file mode 100644 index 0000000000..a554461f26 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/intf/ServiceIntf.java @@ -0,0 +1,42 @@ +/* + * 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 itest.privatecopy.intf; + +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + +import org.apache.tuscany.sca.databinding.annotation.DataBinding; +import org.oasisopen.sca.annotation.Remotable; +import org.w3c.dom.Node; + +import itest.privatecopy.types.Name; + +@Remotable +public interface ServiceIntf { + Name greet(Name name); + boolean areNamesTheSameObjects(Name name1, Name name2); + String greetJSON(Name name); + void greetSDO(Name name); + +// @RequestWrapper(localName = "greetDOM", targetNamespace = "http://intf/internal/itest/", className = "org.w3c.dom.Node") +// @ResponseWrapper(localName = "greetDOMResponse", targetNamespace = "http://intf/internal/itest/", className = "org.w3c.dom.Node") +// @DataBinding("org.w3c.dom.Node") + Node greetDOM(Node name); +} diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/types/Name.java b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/types/Name.java new file mode 100644 index 0000000000..065b23db29 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/java/itest/privatecopy/types/Name.java @@ -0,0 +1,24 @@ +package itest.privatecopy.types; + +public class Name implements java.io.Serializable { + + public Name() { + super(); + } + private String firstName; + private String lastName; + + public void setLastName(String lastName) { + this.lastName = lastName; + } + public String getLastName() { + return lastName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getFirstName() { + return firstName; + } +} + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/resources/helloworld-client.composite b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/resources/helloworld-client.composite new file mode 100644 index 0000000000..461ec33c89 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/client/src/main/resources/helloworld-client.composite @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/common/pom.xml b/sca-java-2.x/trunk/testing/itest/data-copy/common/pom.xml new file mode 100644 index 0000000000..1441c058ae --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/common/pom.xml @@ -0,0 +1,39 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + itest-data-copy + 2.0-SNAPSHOT + ../pom.xml + + itest-data-copy-common + Apache Tuscany SCA iTest Data-Copy Common + + + + org.apache.tuscany.sca + tuscany-sca-api + 2.0-SNAPSHOT + provided + + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/java/itest/common/intf/ClientIntf.java b/sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/java/itest/common/intf/ClientIntf.java new file mode 100644 index 0000000000..8fbdac95a6 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/java/itest/common/intf/ClientIntf.java @@ -0,0 +1,31 @@ +/* + * 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 itest.common.intf; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface ClientIntf { + void callJAXBCrossContribution(); + void callObjectGraphCheck(int caseNumber); + void callJSON(); + void callSDO(); + void testRoundTripDOMIdentity(); +} diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..393bd0baaf --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/common/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/driver/pom.xml b/sca-java-2.x/trunk/testing/itest/data-copy/driver/pom.xml new file mode 100644 index 0000000000..4faaa6a4d0 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/driver/pom.xml @@ -0,0 +1,79 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + itest-data-copy + 2.0-SNAPSHOT + ../pom.xml + + itest-data-copy-driver + Apache Tuscany SCA iTest Data-Copy Driver + + + org.apache.tuscany.sca + itest-data-copy-common + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-sca-client-impl + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-node-impl + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + 2.0-SNAPSHOT + + + org.mortbay.jetty + jetty + 6.1.19 + + + org.apache.tuscany.sca + tuscany-binding-rmi-runtime + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-databinding-json + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-databinding-sdo + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-base-runtime-pom + pom + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-binding-ws-runtime-axis2 + 2.0-SNAPSHOT + + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/driver/src/test/java/itest/CrossContribTestCase.java b/sca-java-2.x/trunk/testing/itest/data-copy/driver/src/test/java/itest/CrossContribTestCase.java new file mode 100644 index 0000000000..88b747856d --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/driver/src/test/java/itest/CrossContribTestCase.java @@ -0,0 +1,156 @@ +/* + * 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 itest; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import itest.common.intf.ClientIntf; + +import java.net.URI; + +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +/** + * This shows how to test the Calculator service component. + */ +public class CrossContribTestCase { + + private static URI domainURI = URI.create("CrossContribTestCase"); + private static Node node; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + node = NodeFactory.getInstance().createNode(domainURI, "../service/target/classes", "../client/target/classes", "../common/target/classes"); + node.start(); + } + + @Test + public void testJAXBCrossContributionSCA() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientSCA"); + assertNotNull(client); + client.callJAXBCrossContribution(); + } + + + @Test + public void testJAXBCrossContributionWS() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientWS"); + assertNotNull(client); + client.callJAXBCrossContribution(); + } + + @Test + public void testSameObjectSCA() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientSCA"); + assertNotNull(client); + client.callObjectGraphCheck(1); + } + + @Test + public void testDifferentObjectSCA() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientSCA"); + assertNotNull(client); + client.callObjectGraphCheck(2); + } + + @Test + public void testSameObjectRMI() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientRMI"); + assertNotNull(client); + client.callObjectGraphCheck(1); + } + + @Test + public void testDifferentObjectRMI() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientRMI"); + assertNotNull(client); + client.callObjectGraphCheck(2); + } + + // We expect that object identity will be different across binding.ws, + // so remove this test. + // public void testSameObjectWS() throws Exception { + + @Test + public void testDifferentObjectWS() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientWS"); + assertNotNull(client); + client.callObjectGraphCheck(2); + } + + @Test + @Ignore + public void testJSONSCA() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientSCA"); + assertNotNull(client); + client.callJSON(); + } + + @Test + @Ignore + public void testJSONWS() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientWS"); + assertNotNull(client); + client.callJSON(); + } + + @Test + @Ignore + public void testSDOWS() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientWS"); + assertNotNull(client); + client.callSDO(); + } + + @Test + @Ignore + public void testSDOSCA() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientSCA"); + assertNotNull(client); + client.callSDO(); + } + + @Test + public void testDOMIdentitySCA() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientSCA"); + assertNotNull(client); + client.testRoundTripDOMIdentity(); + } + + @Test + public void testDOMIdentityWS() throws Exception { + ClientIntf client = node.getService(ClientIntf.class, "ClientSCA"); + assertNotNull(client); + client.testRoundTripDOMIdentity(); + } + + + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/pom.xml b/sca-java-2.x/trunk/testing/itest/data-copy/pom.xml new file mode 100644 index 0000000000..ee31851df4 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-itest + 2.0-SNAPSHOT + ../pom.xml + + pom + itest-data-copy + Apache Tuscany SCA iTest Data-Copy + + + install + + + + common + client + service + driver + + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/service/pom.xml b/sca-java-2.x/trunk/testing/itest/data-copy/service/pom.xml new file mode 100644 index 0000000000..263144bf01 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/service/pom.xml @@ -0,0 +1,51 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + itest-nodes + 2.0-SNAPSHOT + ../pom.xml + + itest-data-copy-service + Apache Tuscany SCA iTest Data-Copy Service + + + + org.apache.tuscany.sca + itest-data-copy-common + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-sca-api + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-databinding-json + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-databinding-sdo + 2.0-SNAPSHOT + + + org.apache.tuscany.sca + tuscany-databinding + 2.0-SNAPSHOT + + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/intf/ServiceIntf.java b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/intf/ServiceIntf.java new file mode 100644 index 0000000000..fd258b3611 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/intf/ServiceIntf.java @@ -0,0 +1,56 @@ +/* + * 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 itest.privatecopy.intf; + +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + +import org.apache.tuscany.sca.databinding.annotation.DataBinding; +import org.codehaus.jettison.json.JSONObject; +import org.oasisopen.sca.annotation.Remotable; +import org.w3c.dom.Node; + +import commonj.sdo.DataObject; + +import itest.privatecopy.types.Name; + +@Remotable +public interface ServiceIntf { + + boolean areNamesTheSameObjects(Name name1, Name name2); + Name greet(Name name); + + //@DataBinding("JSON") + //@RequestWrapper(localName = "greetJSON", targetNamespace = "http://intf/internal/itest/", className = "org.codehaus.jettison.json.JSONObject") + //@ResponseWrapper(localName = "greetJSONResponse", targetNamespace = "http://intf/internal/itest/", className = "org.codehaus.jettison.json.JSONObject") + + String greetJSON(JSONObject name); + + //@RequestWrapper(localName = "greetSDO", targetNamespace = "http://intf/internal/itest/", className = "commonj.sdo.DataObject") + //@ResponseWrapper(localName = "greetSDOResponse", targetNamespace = "http://intf/internal/itest/", className = "commonj.sdo.DataObject") + //@DataBinding("commonj.sdo.DataObject") + void greetSDO(DataObject name); + + //@RequestWrapper(localName = "greetDOM", targetNamespace = "http://intf/internal/itest/", className = "org.w3c.dom.Node") + //@ResponseWrapper(localName = "greetDOMResponse", targetNamespace = "http://intf/internal/itest/", className = "org.w3c.dom.Node") + //@DataBinding("org.w3c.dom.Node") + Node greetDOM(Node name); + +} diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/types/Name.java b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/types/Name.java new file mode 100644 index 0000000000..dfc830ff7b --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/privatecopy/types/Name.java @@ -0,0 +1,24 @@ +package itest.privatecopy.types; + +public class Name implements java.io.Serializable { + + public Name() { + super(); + } + private String firstName; + private String lastName; + + public void setLastName(String lastName) { + this.lastName = lastName; + } + public String getLastName() { + return lastName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getFirstName() { + return firstName; + } +} + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/service/impl/ServiceImpl.java b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/service/impl/ServiceImpl.java new file mode 100644 index 0000000000..b8490c073a --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/java/itest/service/impl/ServiceImpl.java @@ -0,0 +1,81 @@ +/* + * 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 itest.service.impl; + +import java.util.List; + +import org.codehaus.jettison.json.JSONException; +import org.codehaus.jettison.json.JSONObject; +import org.w3c.dom.Node; + +import commonj.sdo.DataObject; + +import static org.junit.Assert.assertEquals; + +import itest.privatecopy.intf.ServiceIntf; +import itest.privatecopy.types.Name; + + +public class ServiceImpl implements ServiceIntf { + + @Override + public Name greet(Name name) { + Name retVal = new Name(); + retVal.setFirstName("Hi " + name.getFirstName()); + retVal.setLastName("Ms. " + name.getLastName()); + return retVal; + } + + @Override + public boolean areNamesTheSameObjects(Name name1, Name name2) { + return name1 == name2; + } + + @Override + public String greetJSON(JSONObject name) { + try { + String firstName = name.getString("firstName"); + String lastName = name.getString("lastName"); + assertEquals("Jason", firstName); + assertEquals("Nosaj", lastName); + } catch (JSONException exc) { + throw new RuntimeException(exc); + } + return "good"; + } + + @Override + public void greetSDO(DataObject name) { + DataObject firstNameDO = (DataObject)((List)name.get("firstName")).get(0); + DataObject lastNameDO = (DataObject)((List)name.get("lastName")).get(0); + Object firstName = firstNameDO.get(0); + Object lastName = lastNameDO.get(0); + //assertEquals("SDO", firstName); + //assertEquals("ODS", lastName); + //return "good"; + } + + @Override + public Node greetDOM(Node name) { + return name; + } +} + + diff --git a/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/resources/helloworld-service.composite b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/resources/helloworld-service.composite new file mode 100644 index 0000000000..14a7801cf1 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/data-copy/service/src/main/resources/helloworld-service.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + -- cgit v1.2.3