You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2012/02/20 11:40:37 UTC

svn commit: r1291186 [2/2] - in /tuscany/sca-java-2.x/trunk/testing/itest/policy: ./ reliability/ reliability/src/ reliability/src/main/ reliability/src/main/java/ reliability/src/main/java/helloworld/ reliability/src/main/java/testbindingwspolicy/ rel...

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();
+    }
+
+}