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