Added: 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.composite
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.composite?rev=1291186&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.composite
 (added)
+++ 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.composite
 Mon Feb 20 10:40:35 2012
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912";
+           
targetNamespace="http://www.tuscany.apache.org/itests/policy/interceptors";
+                  xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912";
+                  xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1";
+           name="HelloWorld">
+
+    <component name="HelloWorldClient">
+        <implementation.java class="helloworld.HelloWorldClient"/>
+        <reference name="helloWorldWS"
+                   target="HelloWorldService/HelloWorld/BindingWS"
+                   requires="exactlyOnce"/>
+    </component>
+    
+    <component name="HelloWorldService">
+               <implementation.java class="helloworld.HelloWorldService"/>
+           <service name="HelloWorld" requires="exactlyOnce">  
+               <binding.ws name="BindingWS"/>
+           </service>          
+    </component> 
+    
+</composite>

Added: 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.wsdl
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.wsdl?rev=1291186&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.wsdl
 (added)
+++ 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/main/resources/helloworld.wsdl
 Mon Feb 20 10:40:35 2012
@@ -0,0 +1,90 @@
+<?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.    
+-->
+<wsdl:definitions targetNamespace="http://helloworld"; 
+                  xmlns:tns="http://helloworld"; 
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
+                  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; 
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+                     name="helloworld">
+
+    <wsdl:types>
+        <schema elementFormDefault="qualified" 
targetNamespace="http://helloworld"; xmlns="http://www.w3.org/2001/XMLSchema";>
+
+            <element name="getGreetings">
+                <complexType>
+                    <sequence>
+                        <element name="name" type="xsd:string"/>
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="getGreetingsResponse">
+                <complexType>
+                    <sequence>
+                        <element name="getGreetingsReturn" type="xsd:string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            
+        </schema>
+    </wsdl:types>
+
+    <wsdl:message name="getGreetingsRequest">
+        <wsdl:part element="tns:getGreetings" name="parameters"/>
+    </wsdl:message>
+
+    <wsdl:message name="getGreetingsResponse">
+        <wsdl:part element="tns:getGreetingsResponse" name="parameters"/>
+    </wsdl:message>
+
+    <wsdl:portType name="HelloWorld">
+        <wsdl:operation name="getGreetings">
+            <wsdl:input message="tns:getGreetingsRequest" 
name="getGreetingsRequest"/>
+            <wsdl:output message="tns:getGreetingsResponse" 
name="getGreetingsResponse"/>
+        </wsdl:operation>
+    </wsdl:portType>
+
+    <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">
+        <wsdlsoap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+        <wsdl:operation name="getGreetings">
+            <wsdlsoap:operation soapAction=""/>
+            <wsdl:input name="getGreetingsRequest">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="getGreetingsResponse">
+                <wsdlsoap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+    </wsdl:binding>
+
+    <wsdl:service name="HelloWorldService">
+        <wsdl:port binding="tns:HelloWorldSoapBinding" 
name="HelloWorldSoapPort1">
+            <wsdlsoap:address 
location="http://localhost:8085/services/HelloWorldWebService1"/>
+        </wsdl:port>
+        <wsdl:port binding="tns:HelloWorldSoapBinding" 
name="HelloWorldSoapPort2">
+            <wsdlsoap:address 
location="http://localhost:8085/services/HelloWorldWebService2"/>
+        </wsdl:port>
+        <wsdl:port binding="tns:HelloWorldSoapBinding" 
name="HelloWorldSoapPort3">
+            <wsdlsoap:address 
location="http://localhost:8085/services/HelloWorldWebService3"/>
+        </wsdl:port>
+    </wsdl:service>
+
+</wsdl:definitions>

Added: 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/test/java/interceptors/HelloworldTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/test/java/interceptors/HelloworldTestCase.java?rev=1291186&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/test/java/interceptors/HelloworldTestCase.java
 (added)
+++ 
tuscany/sca-java-2.x/trunk/testing/itest/policy/reliability/src/test/java/interceptors/HelloworldTestCase.java
 Mon Feb 20 10:40:35 2012
@@ -0,0 +1,84 @@
+/*
+ * 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 interceptors;
+
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import helloworld.HelloWorld;
+import helloworld.HelloWorldException;
+import helloworld.StatusImpl;
+
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.junit.Ignore;
+
+public class HelloworldTestCase extends TestCase {
+
+    private Node node;
+    private HelloWorld helloWorld;
+
+    @Override
+    protected void setUp() throws Exception {
+        StatusImpl.statusString = "";
+        
+        node = NodeFactory.newInstance().createNode("helloworld.composite", 
new Contribution("test", "target/classes"));
+        node.start();
+        helloWorld = node.getService(HelloWorld.class, 
"HelloWorldClient/HelloWorld");
+    }
+    
+    /*
+     * We're not testing real reliability policy here. Just checking that the 
+     * exactlyOnce profile intent is handled correctly and presented as its 
+     * constituent atMostOnce and atLeastOnce intents. 
+     */
+    public void testReliabilityIntent() throws Exception {
+        // check response from application
+        assertEquals("Hello fred", helloWorld.getGreetings("fred"));
+        
+        // check sequences of interceptors
+        System.out.println(StatusImpl.statusString);
+        assertTrue(StatusImpl.statusString.contains("atmostonce exactlyonce 
atleastonce"));
+                
+        // check final intents on endpoint reference to see if the matching 
process
+        // results on the right set
+        Composite domainComposite = ((NodeImpl)node).getDomainComposite();
+        List<Intent> intents = 
domainComposite.getComponents().get(0).getReferences().get(0).getEndpointReferences().get(0).getRequiredIntents();
+        
+        assertEquals(2, intents.size());
+        assertEquals("atMostOnce", intents.get(0).getName().getLocalPart());
+        assertEquals("atLeastOnce", intents.get(1).getName().getLocalPart());
+        
+    }    
+    
+    @Override
+    protected void tearDown() throws Exception {
+        node.stop();
+    }
+
+}


Reply via email to