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