You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2008/04/25 18:42:47 UTC

svn commit: r651642 - in /incubator/tuscany/java/sca/vtest/java-api/annotations: ./ endsconversation/ endsconversation/src/ endsconversation/src/main/ endsconversation/src/main/java/ endsconversation/src/main/java/org/ endsconversation/src/main/java/or...

Author: kwilliams
Date: Fri Apr 25 09:42:43 2008
New Revision: 651642

URL: http://svn.apache.org/viewvc?rev=651642&view=rev
Log:
vtests for @EndsConversation, 1.6.2.2

Added:
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/AService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/BService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/AServiceImpl.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/BServiceImpl.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/
    incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/EndsConversationTestCase.java   (with props)
Modified:
    incubator/tuscany/java/sca/vtest/java-api/annotations/pom.xml

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml?rev=651642&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml Fri Apr 25 09:42:43 2008
@@ -0,0 +1,46 @@
+<?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.    
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>java-api-annotations</artifactId>
+        <version>2.0-incubating-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <artifactId>vtest-java-api-annotations-endsconversation</artifactId>
+    <name>Apache Tuscany SCA Java APIs and Annotations Verification Tests - Annotations - @EndsConversation</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-embedded</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+        
+    </dependencies>
+</project>

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/AService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/AService.java?rev=651642&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/AService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/AService.java Fri Apr 25 09:42:43 2008
@@ -0,0 +1,32 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation;
+
+/**
+ * Simple Remotable Service
+ */
+public interface AService {
+
+    public void testAtEndsConversation();
+
+    public void testSREndConversation();
+
+    public void testTimedEnd();
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/AService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/AService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/BService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/BService.java?rev=651642&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/BService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/BService.java Fri Apr 25 09:42:43 2008
@@ -0,0 +1,37 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation;
+
+import org.osoa.sca.annotations.Conversational;
+import org.osoa.sca.annotations.EndsConversation;
+
+/**
+ * Simple Local Service
+ */
+@Conversational
+public interface BService {
+
+    public void setState(String someState);
+    
+    public String getConversationId();
+    
+    @EndsConversation
+    public void endConversation();
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/BService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/BService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/AServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/AServiceImpl.java?rev=651642&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/AServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/AServiceImpl.java Fri Apr 25 09:42:43 2008
@@ -0,0 +1,70 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation.AService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation.BService;
+import org.osoa.sca.ServiceReference;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.junit.Assert;
+
+@Service(AService.class)
+public class AServiceImpl implements AService {
+
+    @Reference
+    protected BService b;
+    
+    @Reference
+    protected ServiceReference<BService> b2;
+    
+    private void delayForSeconds(int numSeconds) {
+        try {
+            Thread.sleep(numSeconds * 1000);// millisecs
+        } catch (InterruptedException ex) {
+            throw new Error(ex);
+        }
+    }
+
+    public void testAtEndsConversation() {
+        String firstId;
+        b.setState("SomeState");
+        firstId = b.getConversationId();
+        b.endConversation();
+        b.setState("SomeState");// This should start a new conversation
+        Assert.assertNotSame(b.getConversationId(), firstId); 
+    }
+
+    public void testSREndConversation() {
+        String firstId;
+        b2.getService().setState("SomeState");
+        firstId = b2.getService().getConversationId();
+        b2.getConversation().end();
+        b2.getService().setState("SomeState");// This should start a new conversation
+        Assert.assertNotSame(b2.getService().getConversationId(), firstId); 
+    }
+
+    public void testTimedEnd() {
+       b.setState("someState");
+       delayForSeconds(2);
+       b.setState("someState"); // should fail w/ timeout   
+    }
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/AServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/AServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/BServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/BServiceImpl.java?rev=651642&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/BServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/BServiceImpl.java Fri Apr 25 09:42:43 2008
@@ -0,0 +1,59 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation.BService;
+import org.osoa.sca.annotations.ConversationAttributes;
+import org.osoa.sca.annotations.ConversationID;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+@Service(BService.class)
+@Scope("CONVERSATION")
+@ConversationAttributes(maxIdleTime="1 seconds")
+public class BServiceImpl implements BService {
+
+    String someState;
+    
+    protected String conversationId;
+
+    public void setState(String someState) {
+        this.someState = someState;
+    }
+
+    @ConversationID
+    public void setConversationID (String id){
+       this.conversationId = id;
+       System.out.println("BService conversation ID =>" + conversationId);
+    }
+    
+    public String getState() {
+        return someState;
+    }
+    
+    public String getConversationId() {
+        return conversationId;
+    }
+
+    public void endConversation() {
+        System.out.println("Conversation ended");
+    }
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/BServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/impl/BServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite?rev=651642&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite Fri Apr 25 09:42:43 2008
@@ -0,0 +1,35 @@
+<?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="http://java-api-tests" name="Converstion-Composite">
+
+	<component name="AComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation.impl.AServiceImpl" />
+		<reference name="b" target="BComponent" />
+		<reference name="b2" target="BComponent" />
+	</component>
+
+	<component name="BComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation.impl.BServiceImpl" />
+	</component>
+
+</composite>

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/main/resources/endsconversation.composite
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/EndsConversationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/EndsConversationTestCase.java?rev=651642&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/EndsConversationTestCase.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/EndsConversationTestCase.java Fri Apr 25 09:42:43 2008
@@ -0,0 +1,117 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.javaapi.annotations.endsconversation;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osoa.sca.ConversationEndedException;
+
+/**
+ * This test class tests the Service annotation described in section 1.2.1 and
+ * 1.8.17
+ */
+public class EndsConversationTestCase {
+
+    protected static SCADomain domain;
+    protected static String compositeName = "endsconversation.composite";
+    protected static AService aService = null;
+
+    @BeforeClass
+    public static void init() throws Exception {
+        try {
+            System.out.println("Setting up");
+            domain = SCADomain.newInstance(compositeName);
+            aService = domain.getService(AService.class, "AComponent");
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+
+    @AfterClass
+    public static void destroy() throws Exception {
+
+        System.out.println("Cleaning up");
+        if (domain != null)
+            domain.close();
+
+    }
+
+    /**
+     * Lines 410,411,412,413:
+     * <p>
+     * A method of a conversational interface may be marked with an
+     * "@EndsConversation" annotation. Once a method marked with
+     * "@EndsConversation" has been called, the conversation between client and
+     * service provider is at an end, which implies no further methods may be
+     * called on that service within the *same* conversation.
+     */
+    @Test
+    public void atEndsConversation1() throws Exception {
+        aService.testAtEndsConversation();
+    }
+
+    /**
+     * Lines 417,418,419,420:
+     * <p>
+     * From the errata: <br>
+     * Solution: Replace lines 417-420 at the end of section 1.6.2.2 with the
+     * following: "If a conversation is ended with an explicit outbound call to
+     * an "@EndsConversation" method or a call to
+     * ServiceReference.endConversation(), then any subsequent call to an
+     * operation on the service reference will start a new conversation. If the
+     * conversation ends for any other reason (e.g. a timeout occurred), then
+     * until ServiceReference.getConversation().end() is called, the
+     * ConversationEndedException will be thrown by any conversational
+     * operation."
+     * <p>
+     * This tests the first section of the errata. Up to "start a new
+     * conversation"
+     */
+    @Test
+    public void atEndsConversation2() throws Exception {
+        aService.testSREndConversation();
+    }
+
+    /**
+     * Lines 417,418,419,420:
+     * <p>
+     * From the errata: <br>
+     * Solution: Replace lines 417-420 at the end of section 1.6.2.2 with the
+     * following: "If a conversation is ended with an explicit outbound call to
+     * an "@EndsConversation" method or a call to
+     * ServiceReference.endConversation(), then any subsequent call to an
+     * operation on the service reference will start a new conversation. If the
+     * conversation ends for any other reason (e.g. a timeout occurred), then
+     * until ServiceReference.getConversation().end() is called, the
+     * ConversationEndedException will be thrown by any conversational
+     * operation."
+     * <p>
+     * This tests the second section of the errata. Starting with .. "If the
+     * conversation ends for any other reason ..."
+     */
+    @Test (expected = ConversationEndedException.class)
+    public void atEndsConversation3() throws Exception {
+        aService.testTimedEnd();
+    }
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/EndsConversationTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/endsconversation/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/endsconversation/EndsConversationTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/vtest/java-api/annotations/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/pom.xml?rev=651642&r1=651641&r2=651642&view=diff
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/pom.xml (original)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/pom.xml Fri Apr 25 09:42:43 2008
@@ -60,6 +60,7 @@
                 <module>oneway</module>
                 <module>conversational</module>
                 <module>conversationattributes</module>
+                <module>endsconversation</module>
            </modules>
         </profile>
     </profiles>