summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/itest/promotion-interface-missmatch/src
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-1.x/itest/promotion-interface-missmatch/src')
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/BusinessException.java43
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClient.java23
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClientImpl.java44
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleService.java27
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleServiceImpl.java26
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/example.composite50
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleService.wsdl133
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleServiceTypes.xsd45
-rw-r--r--branches/sca-java-1.x/itest/promotion-interface-missmatch/src/test/java/com/example/ExampleTestCase.java44
9 files changed, 435 insertions, 0 deletions
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/BusinessException.java b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/BusinessException.java
new file mode 100644
index 0000000000..764f31b7cd
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/BusinessException.java
@@ -0,0 +1,43 @@
+/*
+ * 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 com.example;
+
+public class BusinessException extends Exception {
+
+ private String clientName;
+
+ public BusinessException(String message) {
+ super(message);
+ }
+
+ public BusinessException(String message, String clientName) {
+ super(message);
+ this.clientName = clientName;
+ }
+
+ public String getClientName() {
+ return clientName;
+ }
+
+ public void setClientName(String clientName) {
+ this.clientName = clientName;
+ }
+
+}
+
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClient.java b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClient.java
new file mode 100644
index 0000000000..0c72b52ed9
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClient.java
@@ -0,0 +1,23 @@
+/*
+ * 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 com.example;
+
+public interface ExampleClient {
+ void runTest();
+}
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClientImpl.java b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClientImpl.java
new file mode 100644
index 0000000000..d6545b5a23
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleClientImpl.java
@@ -0,0 +1,44 @@
+/*
+ * 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 com.example;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+@Service(ExampleClient.class)
+@Scope("COMPOSITE")
+public class ExampleClientImpl implements ExampleClient {
+
+ private ExampleService myService;
+
+ @Reference
+ public void setMyService(ExampleService myService) {
+ this.myService = myService;
+ }
+
+ public void runTest() {
+ try {
+ Object result = myService.hello("John");
+ System.out.println("myService returned " + result.getClass().getName());
+ } catch (BusinessException e) {
+ System.out.println("caught exception from hello(): " + e.getMessage() + " for " + e.getClientName());
+ }
+ }
+}
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleService.java b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleService.java
new file mode 100644
index 0000000000..30ea559694
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleService.java
@@ -0,0 +1,27 @@
+/*
+ * 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 com.example;
+
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface ExampleService {
+
+ String hello(String name) throws BusinessException;
+}
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleServiceImpl.java b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleServiceImpl.java
new file mode 100644
index 0000000000..b3b6f033e5
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/java/com/example/ExampleServiceImpl.java
@@ -0,0 +1,26 @@
+/*
+ * 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 com.example;
+
+public class ExampleServiceImpl implements ExampleService {
+ public String hello(String name) throws BusinessException {
+ throw new BusinessException("bad news", name);
+ // return "Hello, " + name;
+ }
+}
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/example.composite b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/example.composite
new file mode 100644
index 0000000000..cddf951d65
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/example.composite
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="/model/common/"
+ xmlns:hw="/model/common/"
+ name="example">
+
+ <component name="ExampleClientComponent">
+ <implementation.java class="com.example.ExampleClientImpl" />
+ <reference name="myService" />
+ </component>
+
+ <reference name="myService"
+ promote="ExampleClientComponent/myService">
+ <!--
+ The following interface definition violates the SCA specification because it
+ uses has a different namespace ("/model/common/") than the namespace of the
+ implicit interface.java on the promoted coponent service ("http://example.com").
+ The runtime should report an error for this mismatch.
+ -->
+ <interface.wsdl interface="/model/common/#wsdl.interface(ExampleServicePortType)" />
+ <binding.ws uri="http://localhost:8085/axis2/services/ExampleService" />
+ </reference>
+
+ <component name="ExampleComponent">
+ <implementation.java class="com.example.ExampleServiceImpl"/>
+ <service name="ExampleService">
+ <interface.wsdl interface="/model/common/#wsdl.interface(ExampleServicePortType)" />
+ <binding.ws wsdlElement="/model/common/#wsdl.binding(ExampleServiceSOAP11Binding)"
+ uri="http://localhost:8085/axis2/services/ExampleService" />
+ </service>
+ </component>
+</composite>
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleService.wsdl b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleService.wsdl
new file mode 100644
index 0000000000..a8ccde2e11
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleService.wsdl
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!--definitions
+ name="EmpFlexFieldService"
+ targetNamespace="/model/common/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="/model/common/"
+ xmlns:errors="http://xmlns.oracle.com/adf/svc/errors/"
+ xmlns:types="/model/common/types/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ -->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
+ xmlns:ns0="http://example.com"
+ xmlns:ns2="/model/common/types/"
+ xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+ xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
+ xmlns:ns1="http://example.com/xsd"
+ xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ targetNamespace="/model/common/"
+ xmlns:tns="/model/common/">
+ <wsdl:types>
+ <xs:schema>
+ <import namespace="/model/common/types/" schemaLocation="ExampleServiceTypes.xsd"/>
+ </xs:schema>
+ <xs:schema xmlns:ns="http://example.com" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://example.com">
+ <xs:element name="BusinessException">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="BusinessException" nillable="true" type="ns1:BusinessException"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+ <xs:schema xmlns:ax21="http://example.com/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://example.com/xsd">
+ <xs:complexType name="BusinessException">
+ <xs:complexContent>
+ <xs:extension base="tns:Exception">
+ <xs:sequence/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="helloRequest">
+ <wsdl:part name="parameters" element="ns2:hello"/>
+ </wsdl:message>
+ <wsdl:message name="helloResponse">
+ <wsdl:part name="parameters" element="ns2:helloResponse"/>
+ </wsdl:message>
+ <wsdl:message name="BusinessException">
+ <wsdl:part name="parameters" element="ns0:BusinessException"/>
+ </wsdl:message>
+ <wsdl:portType name="ExampleServicePortType">
+ <wsdl:operation name="hello">
+ <wsdl:input message="tns:helloRequest" wsaw:Action="urn:hello"/>
+ <wsdl:output message="tns:helloResponse" wsaw:Action="urn:helloResponse"/>
+ <wsdl:fault message="tns:BusinessException" name="BusinessException" wsaw:Action="urn:helloBusinessException"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="ExampleServiceSOAP11Binding" type="tns:ExampleServicePortType">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <wsdl:operation name="hello">
+ <soap:operation soapAction="urn:hello" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ <wsdl:fault name="BusinessException">
+ <soap:fault use="literal" name="BusinessException"/>
+ </wsdl:fault>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="ExampleServiceSOAP12Binding" type="tns:ExampleServicePortType">
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <wsdl:operation name="hello">
+ <soap12:operation soapAction="urn:hello" style="document"/>
+ <wsdl:input>
+ <soap12:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal"/>
+ </wsdl:output>
+ <wsdl:fault name="BusinessException">
+ <soap12:fault use="literal" name="BusinessException"/>
+ </wsdl:fault>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="ExampleServiceHttpBinding" type="tns:ExampleServicePortType">
+ <http:binding verb="POST"/>
+ <wsdl:operation name="hello">
+ <http:operation location="ExampleService/hello"/>
+ <wsdl:input>
+ <mime:content type="text/xml" part="hello"/>
+ </wsdl:input>
+ <wsdl:output>
+ <mime:content type="text/xml" part="hello"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="ExampleService">
+ <wsdl:port name="ExampleServiceSOAP11port_http" binding="tns:ExampleServiceSOAP11Binding">
+ <soap:address location="http://localhost:8085/axis2/services/ExampleService"/>
+ </wsdl:port>
+ <wsdl:port name="ExampleServiceSOAP12port_http" binding="tns:ExampleServiceSOAP12Binding">
+ <soap12:address location="http://localhost:8085/axis2/services/ExampleService"/>
+ </wsdl:port>
+ <wsdl:port name="ExampleServiceHttpport" binding="tns:ExampleServiceHttpBinding">
+ <http:address location="http://localhost:8085/axis2/services/ExampleService"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleServiceTypes.xsd b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleServiceTypes.xsd
new file mode 100644
index 0000000000..2caec0f20d
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/main/resources/wsdl/ExampleServiceTypes.xsd
@@ -0,0 +1,45 @@
+<!--
+ * 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.
+-->
+
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns="/model/common/"
+ attributeFormDefault="qualified"
+ elementFormDefault="qualified"
+ xmlns:tns="/model/common/types/"
+ targetNamespace="/model/common/types/">
+ <xs:complexType name="Exception">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="hello">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="param0" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="helloResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
diff --git a/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/test/java/com/example/ExampleTestCase.java b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/test/java/com/example/ExampleTestCase.java
new file mode 100644
index 0000000000..740af4f43d
--- /dev/null
+++ b/branches/sca-java-1.x/itest/promotion-interface-missmatch/src/test/java/com/example/ExampleTestCase.java
@@ -0,0 +1,44 @@
+/*
+ * 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 com.example;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+public class ExampleTestCase extends TestCase {
+
+ private SCADomain scaDomain;
+ private ExampleClient client;
+
+ @Override
+ protected void setUp() throws Exception {
+ scaDomain = SCADomain.newInstance("example.composite");
+ client = scaDomain.getService(ExampleClient.class, "ExampleClientComponent");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ scaDomain.close();
+ }
+
+ public void test() throws Exception {
+ client.runTest();
+ }
+}