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 2007/11/05 14:42:19 UTC

svn commit: r591991 [2/2] - in /incubator/tuscany/java/sca: itest/ itest/conversations-ws/src/main/java/org/apache/tuscany/sca/itest/conversational/ itest/conversations-ws/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ itest/conversati...

Added: incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/RequestScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/RequestScopeTestCase.java?rev=591991&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/RequestScopeTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/RequestScopeTestCase.java Mon Nov  5 05:42:17 2007
@@ -0,0 +1,194 @@
+/*
+ * 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.itest.conversational;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceRequestImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessImpl;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class RequestScopeTestCase {
+
+    private static SCADomain domain;
+    private static ConversationalClient conversationalStatelessClientStatelessService;
+    private static ConversationalClient conversationalStatelessClientStatefulService;
+    private static ConversationalClient conversationalStatefulClientStatelessService;
+    private static ConversationalClient conversationalStatefulClientStatefulService; 
+    private static ConversationalClient conversationalStatelessClientRequestService;
+    private static ConversationalClient conversationalStatefulClientNonConversationalCallbackStatelessService;    
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+    	try {
+	        domain = SCADomain.newInstance("conversational.composite");
+	
+	        conversationalStatelessClientStatelessService = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatelessService");
+	
+	        conversationalStatelessClientStatefulService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatefulService");
+	
+	        conversationalStatefulClientStatelessService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatelessService");
+	
+	        conversationalStatefulClientStatefulService   = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatefulService");
+	        conversationalStatelessClientRequestService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientRequestService");
+	        conversationalStatefulClientNonConversationalCallbackStatelessService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientNonConversationalCallbackStatefulService");
+	        
+	        // reset the place where we record the sequence of calls passing
+	        // through each component instance
+	        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+	        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+	        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+	        ConversationalClientStatefulImpl.calls   = new StringBuffer();
+        
+    	} catch(Exception ex) {
+    		System.err.println(ex.toString());
+    	}
+               
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        domain.close();
+    }
+    
+    private static void resetCallStack() {
+        
+        // reset the place where we record the sequence of calls passing
+        // through each component instance
+        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+        ConversationalClientStatefulImpl.calls   = new StringBuffer();    
+        ConversationalClientStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        
+    }    
+
+    // stateless client request scope service tests
+    // ============================================
+    @Test
+    public void testStatelessRequestConversationFromInjectedReference() {
+        int count = conversationalStatelessClientRequestService.runConversationFromInjectedReference();
+        Assert.assertEquals(2, count);
+    } 
+    
+    //@Test
+    public void testStatelessRequestConversationFromInjectedReference2() {
+        int count = conversationalStatelessClientRequestService.runConversationFromInjectedReference2();
+        Assert.assertEquals(1, count);
+    }     
+    
+    @Test
+    public void testStatelessRequestConversationFromServiceReference() {
+        int count = conversationalStatelessClientRequestService.runConversationFromServiceReference();
+        Assert.assertEquals(2, count);
+    }          
+   
+    @Test
+    public void testStatelessRequestConversationWithUserDefinedConversationId() {
+        int count = conversationalStatelessClientRequestService.runConversationWithUserDefinedConversationId();
+        Assert.assertEquals(2, count);
+    }   
+    
+    //@Test
+    public void testStatelessRequestConversationCheckUserDefinedConversationId() {
+        String conversationId = conversationalStatelessClientRequestService.runConversationCheckUserDefinedConversationId();
+        Assert.assertEquals("MyConversation2", conversationId);
+    } 
+    
+    //@Test
+    public void testStatelessRequestConversationCheckingScope() {
+        resetCallStack();
+    	ConversationalServiceRequestImpl.calls = new StringBuffer();
+    	conversationalStatelessClientRequestService.runConversationCheckingScope();
+        Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,", 
+        		            ConversationalServiceRequestImpl.calls.toString());
+        //init,initializeCount,init,incrementCount,init,retrieveCount,init,endConversation,
+    }     
+
+    @Test
+    public void testStatelessRequestConversationWithCallback() {
+        resetCallStack();
+    	ConversationalClientStatelessImpl.calls = new StringBuffer();    	
+        int count = conversationalStatelessClientRequestService.runConversationWithCallback();
+        Assert.assertEquals(0, count);
+               
+        Assert.assertEquals("init,runConversationWithCallback,init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,destroy,", 
+                            ConversationalClientStatelessImpl.calls.toString());        
+    }  
+    
+    //@Test
+    public void testStatelessRequestConversationHavingPassedReference() {
+        int count = conversationalStatelessClientRequestService.runConversationHavingPassedReference();
+        Assert.assertEquals(3, count);
+    }    
+  
+    //@Test
+    public void testStatelessRequestConversationBusinessException() {
+        String message = conversationalStatelessClientRequestService.runConversationBusinessException();
+        Assert.assertEquals("Business Exception", message);
+    }     
+    
+    //@Test
+    public void testStatelessRequestConversationBusinessExceptionCallback() {
+        String message = conversationalStatelessClientRequestService.runConversationBusinessExceptionCallback();
+        Assert.assertEquals("Business Exception", message);
+    }  
+    
+    @Test
+    public void testStatelessRequestConversationCallingEndedConversation() {
+        int count = conversationalStatelessClientRequestService.runConversationCallingEndedConversation();
+        Assert.assertEquals(-999, count);
+    }     
+    
+    @Test
+    public void testStatelessRequestConversationCallingEndedConversationCallback() {
+        int count = conversationalStatelessClientRequestService.runConversationCallingEndedConversationCallback();
+        Assert.assertEquals(0, count);
+    }  
+    
+    @Test
+    public void testStatelessRequestConversationCallingEndedConversationCheckConversationId() {
+        String id = conversationalStatelessClientRequestService.runConversationCallingEndedConversationCheckConversationId();
+        Assert.assertEquals(null, id);
+    }     
+    
+    //@Test
+    public void testStatelessRequestConversationCallingEndedConversationCallbackCheckConversationId() {
+        String id = conversationalStatelessClientRequestService.runConversationCallingEndedConversationCallbackCheckConversationId();
+        Assert.assertEquals(null, id);
+    }    
+        
+}

Added: incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatefulTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatefulTestCase.java?rev=591991&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatefulTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatefulTestCase.java Mon Nov  5 05:42:17 2007
@@ -0,0 +1,179 @@
+/*
+ * 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.itest.conversational;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceRequestImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessImpl;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class StatefulStatefulTestCase {
+
+    private static SCADomain domain;
+    private static ConversationalClient conversationalStatelessClientStatelessService;
+    private static ConversationalClient conversationalStatelessClientStatefulService;
+    private static ConversationalClient conversationalStatefulClientStatelessService;
+    private static ConversationalClient conversationalStatefulClientStatefulService; 
+    private static ConversationalClient conversationalStatelessClientRequestService;
+    private static ConversationalClient conversationalStatefulClientNonConversationalCallbackStatelessService;    
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+    	try {
+	        domain = SCADomain.newInstance("conversational.composite");
+	
+	        conversationalStatelessClientStatelessService = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatelessService");
+	
+	        conversationalStatelessClientStatefulService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatefulService");
+	
+	        conversationalStatefulClientStatelessService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatelessService");
+	
+	        conversationalStatefulClientStatefulService   = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatefulService");
+	        conversationalStatelessClientRequestService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientRequestService");
+	        conversationalStatefulClientNonConversationalCallbackStatelessService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientNonConversationalCallbackStatefulService");
+	        
+	        // reset the place where we record the sequence of calls passing
+	        // through each component instance
+	        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+	        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+	        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+	        ConversationalClientStatefulImpl.calls   = new StringBuffer();
+        
+    	} catch(Exception ex) {
+    		System.err.println(ex.toString());
+    	}
+               
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        domain.close();
+    }
+    
+    private static void resetCallStack() {
+        
+        // reset the place where we record the sequence of calls passing
+        // through each component instance
+        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+        ConversationalClientStatefulImpl.calls   = new StringBuffer();    
+        ConversationalClientStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        
+    }    
+
+    // stateful client stateful service tests  
+    // ======================================
+    @Test
+    public void testStatefulStatefulConversationFromInjectedReference() {
+        int count = conversationalStatefulClientStatefulService.runConversationFromInjectedReference();
+        Assert.assertEquals(2, count);
+    } 
+    
+    @Test
+    public void testStatefulStatefulConversationFromInjectedReference2() {
+        int count = conversationalStatefulClientStatefulService.runConversationFromInjectedReference2();
+        Assert.assertEquals(2, count);
+    }     
+    
+    @Test
+    public void testStatefulStatefulConversationFromServiceReference() {
+        int count = conversationalStatefulClientStatefulService.runConversationFromServiceReference();
+        Assert.assertEquals(2, count);
+    }          
+    
+    @Test
+    public void testStatefulStatefulConversationWithUserDefinedConversationId() {
+        int count = conversationalStatefulClientStatefulService.runConversationWithUserDefinedConversationId();
+        Assert.assertEquals(2, count);
+    }    
+    
+    @Test
+    public void testStatefulStatefulConversationCheckUserDefinedConversationId() {
+        String conversationId = conversationalStatefulClientStatefulService.runConversationCheckUserDefinedConversationId();
+        Assert.assertEquals("MyConversation2", conversationId);
+    } 
+   
+    @Test
+    public void testStatefulStatefulConversationCheckingScope() {
+        resetCallStack();
+        conversationalStatefulClientStatefulService.runConversationCheckingScope();
+        Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,destroy,", 
+                            ConversationalServiceStatefulImpl.calls.toString());
+    }  
+
+    @Test
+    public void testStatefulStatefulConversationWithCallback() {
+        resetCallStack();
+        int count = conversationalStatefulClientStatefulService.runConversationWithCallback();
+        Assert.assertEquals(4, count);
+               
+        Assert.assertEquals("init,runConversationWithCallback,initializeCount,incrementCount,retrieveCount,endConversation,destroy,", 
+                            ConversationalClientStatefulImpl.calls.toString());        
+    }   
+    
+    //@Test
+    public void testStatefulStatefulConversationHavingPassedReference() {
+        int count = conversationalStatefulClientStatefulService.runConversationHavingPassedReference();
+        Assert.assertEquals(3, count);
+    } 
+    
+    @Test
+    public void testStatefulStatefulConversationCallingEndedConversation() {
+        int count = conversationalStatefulClientStatefulService.runConversationCallingEndedConversation();
+        Assert.assertEquals(0, count);
+    }     
+
+    @Test
+    public void testStatefulStatefulConversationCallingEndedConversationCallback() {
+        int count = conversationalStatefulClientStatefulService.runConversationCallingEndedConversationCallback();
+        Assert.assertEquals(0, count);
+    }    
+    
+    @Test
+    public void testStatefulStatefulConversationCallingEndedConversationCheckConversationId() {
+        String id = conversationalStatefulClientStatefulService.runConversationCallingEndedConversationCheckConversationId();
+        Assert.assertEquals(null, id);
+    }     
+
+    @Test
+    public void testStatefulStatefulConversationCallingEndedConversationCallbackCheckConversationId() {
+        String id = conversationalStatefulClientStatefulService.runConversationCallingEndedConversationCallbackCheckConversationId();
+        Assert.assertEquals(null, id);
+    }    
+        
+}

Added: incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatelessTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatelessTestCase.java?rev=591991&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatelessTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatefulStatelessTestCase.java Mon Nov  5 05:42:17 2007
@@ -0,0 +1,179 @@
+/*
+ * 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.itest.conversational;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceRequestImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessImpl;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class StatefulStatelessTestCase {
+
+    private static SCADomain domain;
+    private static ConversationalClient conversationalStatelessClientStatelessService;
+    private static ConversationalClient conversationalStatelessClientStatefulService;
+    private static ConversationalClient conversationalStatefulClientStatelessService;
+    private static ConversationalClient conversationalStatefulClientStatefulService; 
+    private static ConversationalClient conversationalStatelessClientRequestService;
+    private static ConversationalClient conversationalStatefulClientNonConversationalCallbackStatelessService;    
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+    	try {
+	        domain = SCADomain.newInstance("conversational.composite");
+	
+	        conversationalStatelessClientStatelessService = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatelessService");
+	
+	        conversationalStatelessClientStatefulService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatefulService");
+	
+	        conversationalStatefulClientStatelessService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatelessService");
+	
+	        conversationalStatefulClientStatefulService   = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatefulService");
+	        conversationalStatelessClientRequestService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientRequestService");
+	        conversationalStatefulClientNonConversationalCallbackStatelessService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientNonConversationalCallbackStatefulService");
+	        
+	        // reset the place where we record the sequence of calls passing
+	        // through each component instance
+	        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+	        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+	        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+	        ConversationalClientStatefulImpl.calls   = new StringBuffer();
+        
+    	} catch(Exception ex) {
+    		System.err.println(ex.toString());
+    	}
+               
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        domain.close();
+    }
+    
+    private static void resetCallStack() {
+        
+        // reset the place where we record the sequence of calls passing
+        // through each component instance
+        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+        ConversationalClientStatefulImpl.calls   = new StringBuffer();    
+        ConversationalClientStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        
+    }    
+
+    // stateful client stateless service tests  
+    // =======================================
+    @Test
+    public void testStatefulStatelessConversationFromInjectedReference() {
+        int count = conversationalStatefulClientStatelessService.runConversationFromInjectedReference();
+        Assert.assertEquals(2, count);
+    } 
+    
+    @Test
+    public void testStatefulStatelessConversationFromInjectedReference2() {
+        int count = conversationalStatefulClientStatelessService.runConversationFromInjectedReference2();
+        Assert.assertEquals(2, count);
+    }    
+    
+    @Test
+    public void testStatefulStatelessConversationFromServiceReference() {
+        int count = conversationalStatefulClientStatelessService.runConversationFromServiceReference();
+        Assert.assertEquals(2, count);
+    }    
+    
+    @Test
+    public void testStatefulStatelessConversationWithUserDefinedConversationId() {
+        int count = conversationalStatefulClientStatelessService.runConversationWithUserDefinedConversationId();
+        Assert.assertEquals(2, count);
+    }    
+
+    @Test
+    public void testStatefulStatelessConversationCheckUserDefinedConversationId() {
+        String conversationId = conversationalStatefulClientStatelessService.runConversationCheckUserDefinedConversationId();
+        Assert.assertEquals("MyConversation2", conversationId);
+    } 
+    
+    @Test
+    public void testStatefulStatelessConversationCheckingScope() {
+        resetCallStack();
+        conversationalStatefulClientStatelessService.runConversationCheckingScope();
+        Assert.assertEquals("init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,", 
+                            ConversationalServiceStatelessImpl.calls.toString());
+    } 
+
+    @Test
+    public void testStatefulStatelessConversationWithCallback() {
+        resetCallStack();
+        int count = conversationalStatefulClientStatelessService.runConversationWithCallback();
+        Assert.assertEquals(4, count);
+               
+        Assert.assertEquals("init,runConversationWithCallback,initializeCount,incrementCount,retrieveCount,endConversation,destroy,", 
+                            ConversationalClientStatefulImpl.calls.toString());        
+    }     
+    
+    //@Test
+    public void testStatefulStatelessConversationHavingPassedReference() {
+        int count = conversationalStatefulClientStatelessService.runConversationHavingPassedReference();
+        Assert.assertEquals(3, count);
+    }     
+    
+    @Test
+    public void testStatefulStatelessConversationCallingEndedConversation() {
+        int count = conversationalStatefulClientStatelessService.runConversationCallingEndedConversation();
+        Assert.assertEquals(-999, count);
+    }     
+    
+    @Test
+    public void testStatefulStatelessConversationCallingEndedConversationCallback() {
+        int count = conversationalStatefulClientStatelessService.runConversationCallingEndedConversationCallback();
+        Assert.assertEquals(0, count);
+    }  
+    
+    @Test
+    public void testStatefulStatelessConversationCallingEndedConversationCheckConversationId() {
+        String id = conversationalStatefulClientStatelessService.runConversationCallingEndedConversationCheckConversationId();
+        Assert.assertEquals(null, id);
+    }     
+    
+    @Test
+    public void testStatefulStatelessConversationCallingEndedConversationCallbackCheckConversationId() {
+        String id = conversationalStatefulClientStatelessService.runConversationCallingEndedConversationCallbackCheckConversationId();
+        Assert.assertEquals(null, id);
+    }      
+        
+}

Added: incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatefulTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatefulTestCase.java?rev=591991&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatefulTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatefulTestCase.java Mon Nov  5 05:42:17 2007
@@ -0,0 +1,192 @@
+/*
+ * 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.itest.conversational;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceRequestImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessImpl;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class StatelessStatefulTestCase {
+
+    private static SCADomain domain;
+    private static ConversationalClient conversationalStatelessClientStatelessService;
+    private static ConversationalClient conversationalStatelessClientStatefulService;
+    private static ConversationalClient conversationalStatefulClientStatelessService;
+    private static ConversationalClient conversationalStatefulClientStatefulService; 
+    private static ConversationalClient conversationalStatelessClientRequestService;
+    private static ConversationalClient conversationalStatefulClientNonConversationalCallbackStatelessService;    
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+    	try {
+	        domain = SCADomain.newInstance("conversational.composite");
+	
+	        conversationalStatelessClientStatelessService = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatelessService");
+	
+	        conversationalStatelessClientStatefulService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatefulService");
+	
+	        conversationalStatefulClientStatelessService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatelessService");
+	
+	        conversationalStatefulClientStatefulService   = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatefulService");
+	        conversationalStatelessClientRequestService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientRequestService");
+	        conversationalStatefulClientNonConversationalCallbackStatelessService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientNonConversationalCallbackStatefulService");
+	        
+	        // reset the place where we record the sequence of calls passing
+	        // through each component instance
+	        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+	        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+	        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+	        ConversationalClientStatefulImpl.calls   = new StringBuffer();
+        
+    	} catch(Exception ex) {
+    		System.err.println(ex.toString());
+    	}
+               
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        domain.close();
+    }
+    
+    private static void resetCallStack() {
+        
+        // reset the place where we record the sequence of calls passing
+        // through each component instance
+        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+        ConversationalClientStatefulImpl.calls   = new StringBuffer();    
+        ConversationalClientStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        
+    }    
+
+    // stateless client stateful service tests
+    // =======================================
+    @Test
+    public void testStatelessStatefulConversationFromInjectedReference() {
+        int count = conversationalStatelessClientStatefulService.runConversationFromInjectedReference();
+        Assert.assertEquals(2, count);
+    } 
+    
+    @Test
+    public void testStatelessStatefulConversationFromInjectedReference2() {
+        int count = conversationalStatelessClientStatefulService.runConversationFromInjectedReference2();
+        Assert.assertEquals(2, count);
+    }     
+    
+    @Test
+    public void testStatelessStatefulConversationFromServiceReference() {
+        int count = conversationalStatelessClientStatefulService.runConversationFromServiceReference();
+        Assert.assertEquals(2, count);
+    }          
+
+    @Test
+    public void testStatelessStatefulConversationWithUserDefinedConversationId() {
+        int count = conversationalStatelessClientStatefulService.runConversationWithUserDefinedConversationId();
+        Assert.assertEquals(2, count);
+    }   
+   
+    @Test
+    public void testStatelessStatefulConversationCheckUserDefinedConversationId() {
+        String conversationId = conversationalStatelessClientStatefulService.runConversationCheckUserDefinedConversationId();
+        Assert.assertEquals("MyConversation2", conversationId);
+    } 
+    
+    @Test
+    public void testStatelessStatefulConversationCheckingScope() {
+        resetCallStack();
+        conversationalStatelessClientStatefulService.runConversationCheckingScope();
+        Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,destroy,", 
+                            ConversationalServiceStatefulImpl.calls.toString());
+    }     
+
+    @Test
+    public void testStatelessStatefulConversationWithCallback() {
+        resetCallStack();
+        int count = conversationalStatelessClientStatefulService.runConversationWithCallback();
+        Assert.assertEquals(0, count);
+               
+        Assert.assertEquals("init,runConversationWithCallback,init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,destroy,", 
+                            ConversationalClientStatelessImpl.calls.toString());        
+    }  
+   
+    //@Test
+    public void testStatelessStatefulConversationHavingPassedReference() {
+        int count = conversationalStatelessClientStatefulService.runConversationHavingPassedReference();
+        Assert.assertEquals(3, count);
+    }    
+ 
+    //@Test
+    public void testStatelessStatefulConversationBusinessException() {
+        String message = conversationalStatelessClientStatefulService.runConversationBusinessException();
+        Assert.assertEquals("Business Exception", message);
+    }     
+
+    //@Test
+    public void testStatelessStatefulConversationBusinessExceptionCallback() {
+        String message = conversationalStatelessClientStatefulService.runConversationBusinessExceptionCallback();
+        Assert.assertEquals("Business Exception", message);
+    }  
+    
+    @Test
+    public void testStatelessStatefulConversationCallingEndedConversation() {
+        int count = conversationalStatelessClientStatefulService.runConversationCallingEndedConversation();
+        Assert.assertEquals(0, count);
+    }     
+    
+    @Test
+    public void testStatelessStatefulConversationCallingEndedConversationCallback() {
+        int count = conversationalStatelessClientStatefulService.runConversationCallingEndedConversationCallback();
+        Assert.assertEquals(0, count);
+    }   
+    
+    @Test
+    public void testStatelessStatefulConversationCallingEndedConversationCheckConversationId() {
+        String id = conversationalStatelessClientStatefulService.runConversationCallingEndedConversationCheckConversationId();
+        Assert.assertEquals(null, id);
+    }     
+    
+    //@Test
+    public void testStatelessStatefulConversationCallingEndedConversationCallbackCheckConversationId() {
+        String id = conversationalStatelessClientStatefulService.runConversationCallingEndedConversationCallbackCheckConversationId();
+        Assert.assertEquals(null, id);
+    } 
+
+        
+}

Added: incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatelessTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatelessTestCase.java?rev=591991&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatelessTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/StatelessStatelessTestCase.java Mon Nov  5 05:42:17 2007
@@ -0,0 +1,179 @@
+/*
+ * 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.itest.conversational;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceRequestImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulNonConversationalCallbackImpl;
+import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessImpl;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class StatelessStatelessTestCase {
+
+    private static SCADomain domain;
+    private static ConversationalClient conversationalStatelessClientStatelessService;
+    private static ConversationalClient conversationalStatelessClientStatefulService;
+    private static ConversationalClient conversationalStatefulClientStatelessService;
+    private static ConversationalClient conversationalStatefulClientStatefulService; 
+    private static ConversationalClient conversationalStatelessClientRequestService;
+    private static ConversationalClient conversationalStatefulClientNonConversationalCallbackStatelessService;    
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+    	try {
+	        domain = SCADomain.newInstance("conversational.composite");
+	
+	        conversationalStatelessClientStatelessService = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatelessService");
+	
+	        conversationalStatelessClientStatefulService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientStatefulService");
+	
+	        conversationalStatefulClientStatelessService  = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatelessService");
+	
+	        conversationalStatefulClientStatefulService   = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientStatefulService");
+	        conversationalStatelessClientRequestService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatelessClientRequestService");
+	        conversationalStatefulClientNonConversationalCallbackStatelessService    = domain.getService(ConversationalClient.class,
+	                                                                          "ConversationalStatefulClientNonConversationalCallbackStatefulService");
+	        
+	        // reset the place where we record the sequence of calls passing
+	        // through each component instance
+	        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+	        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+	        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+	        ConversationalClientStatefulImpl.calls   = new StringBuffer();
+        
+    	} catch(Exception ex) {
+    		System.err.println(ex.toString());
+    	}
+               
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        domain.close();
+    }
+    
+    private static void resetCallStack() {
+        
+        // reset the place where we record the sequence of calls passing
+        // through each component instance
+        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+        ConversationalClientStatefulImpl.calls   = new StringBuffer();    
+        ConversationalClientStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        
+    }    
+
+
+    // stateless client stateless service tests
+    // ========================================
+   
+    @Test
+    public void testStatelessStatelessConversationFromInjectedReference() {
+        int count = conversationalStatelessClientStatelessService.runConversationFromInjectedReference();
+        Assert.assertEquals(2, count);
+    } 
+
+    @Test
+    public void testStatelessStatelessConversationFromInjectedReference2() {
+        int count = conversationalStatelessClientStatelessService.runConversationFromInjectedReference2();
+        Assert.assertEquals(2, count);
+    }     
+    
+    @Test
+    public void testStatelessStatelessConversationFromServiceReference() {
+        int count = conversationalStatelessClientStatelessService.runConversationFromServiceReference();
+        Assert.assertEquals(2, count);
+    }    
+    
+    @Test
+    public void testStatelessStatelessConversationWithUserDefinedConversationId() {
+        int count = conversationalStatelessClientStatelessService.runConversationWithUserDefinedConversationId();
+        Assert.assertEquals(2, count);
+    }  
+    @Test
+    public void testStatelessStatelessConversationCheckUserDefinedConversationId() {
+        String conversationId = conversationalStatelessClientStatelessService.runConversationCheckUserDefinedConversationId();
+        Assert.assertEquals("MyConversation2", conversationId);
+    }     
+    
+    @Test
+    public void testStatelessStatelessConversationCheckingScope() {
+        resetCallStack();
+        conversationalStatelessClientStatelessService.runConversationCheckingScope();
+        Assert.assertEquals("init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,", 
+                            ConversationalServiceStatelessImpl.calls.toString());
+    }       
+    
+    @Test
+    public void testStatelessStatelessConversationWithCallback() {
+        resetCallStack();
+        int count = conversationalStatelessClientStatelessService.runConversationWithCallback();
+        Assert.assertEquals(0, count);
+               
+        Assert.assertEquals("init,runConversationWithCallback,init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,destroy,", 
+                            ConversationalClientStatelessImpl.calls.toString());        
+    }
+    //@Test
+    public void testStatelessStatelessConversationHavingPassedReference() {
+        int count = conversationalStatelessClientStatelessService.runConversationHavingPassedReference();
+        Assert.assertEquals(3, count);
+    }     
+
+    @Test
+    public void testStatelessStatelessConversationCallingEndedConversation() {
+        int count = conversationalStatelessClientStatelessService.runConversationCallingEndedConversation();
+        Assert.assertEquals(-999, count);
+    }     
+    
+    @Test
+    public void testStatelessStatelessConversationCallingEndedConversationCallback() {
+        int count = conversationalStatelessClientStatelessService.runConversationCallingEndedConversationCallback();
+        Assert.assertEquals(0, count);
+    } 
+    
+    @Test
+    public void testStatelessStatelessConversationCallingEndedConversationCheckConversationId() {
+        String id = conversationalStatelessClientStatelessService.runConversationCallingEndedConversationCheckConversationId();
+        Assert.assertEquals(null, id);
+    }     
+    
+    //@Test
+    public void testStatelessStatelessConversationCallingEndedConversationCallbackCheckConversationId() {
+        String id = conversationalStatelessClientStatelessService.runConversationCallingEndedConversationCallbackCheckConversationId();
+        Assert.assertEquals(null, id);
+    }     
+
+}

Modified: incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTestCase.java?rev=591991&r1=591990&r2=591991&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTestCase.java Mon Nov  5 05:42:17 2007
@@ -30,21 +30,23 @@
 import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulNonConversationalCallbackImpl;
 import org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessImpl;
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class ConversationalTestCase {
 
-    private SCADomain domain;
-    private ConversationalClient conversationalStatelessClientStatelessService;
-    private ConversationalClient conversationalStatelessClientStatefulService;
-    private ConversationalClient conversationalStatefulClientStatelessService;
-    private ConversationalClient conversationalStatefulClientStatefulService; 
-    private ConversationalClient conversationalStatelessClientRequestService;
-    private ConversationalClient conversationalStatefulClientNonConversationalCallbackStatelessService;    
+    private static SCADomain domain;
+    private static ConversationalClient conversationalStatelessClientStatelessService;
+    private static ConversationalClient conversationalStatelessClientStatefulService;
+    private static ConversationalClient conversationalStatefulClientStatelessService;
+    private static ConversationalClient conversationalStatefulClientStatefulService; 
+    private static ConversationalClient conversationalStatelessClientRequestService;
+    private static ConversationalClient conversationalStatefulClientNonConversationalCallbackStatelessService;    
 
-    @Before
-    public void setUp() throws Exception {
+    @BeforeClass
+    public static void setUp() throws Exception {
     	try {
 	        domain = SCADomain.newInstance("conversational.composite");
 	
@@ -63,13 +65,6 @@
 	                                                                          "ConversationalStatelessClientRequestService");
 	        conversationalStatefulClientNonConversationalCallbackStatelessService    = domain.getService(ConversationalClient.class,
 	                                                                          "ConversationalStatefulClientNonConversationalCallbackStatefulService");
-	        
-	        // reset the place where we record the sequence of calls passing
-	        // through each component instance
-	        ConversationalServiceStatelessImpl.calls = new StringBuffer();
-	        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
-	        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
-	        ConversationalClientStatefulImpl.calls   = new StringBuffer();
         
     	} catch(Exception ex) {
     		System.err.println(ex.toString());
@@ -77,10 +72,23 @@
                
     }
 
-    @After
-    public void tearDown() throws Exception {
+    @AfterClass
+    public static void tearDown() throws Exception {
         domain.close();
     }
+    
+    private void resetCallStack() {
+        
+        // reset the place where we record the sequence of calls passing
+        // through each component instance
+        ConversationalServiceStatelessImpl.calls = new StringBuffer();
+        ConversationalServiceStatefulImpl.calls  = new StringBuffer();
+        ConversationalClientStatelessImpl.calls  = new StringBuffer();         
+        ConversationalClientStatefulImpl.calls   = new StringBuffer();    
+        ConversationalClientStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        ConversationalServiceStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        
+    }
 
     // stateless client stateful service tests
     // =======================================
@@ -116,6 +124,7 @@
     
     @Test
     public void testStatelessStatefulConversationCheckingScope() {
+        resetCallStack();
         conversationalStatelessClientStatefulService.runConversationCheckingScope();
         Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,destroy,", 
                             ConversationalServiceStatefulImpl.calls.toString());
@@ -123,6 +132,7 @@
 
     @Test
     public void testStatelessStatefulConversationWithCallback() {
+        resetCallStack();
         int count = conversationalStatelessClientStatefulService.runConversationWithCallback();
         Assert.assertEquals(0, count);
                
@@ -205,6 +215,7 @@
     
     @Test
     public void testStatelessStatelessConversationCheckingScope() {
+        resetCallStack();
         conversationalStatelessClientStatelessService.runConversationCheckingScope();
         Assert.assertEquals("init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,", 
                             ConversationalServiceStatelessImpl.calls.toString());
@@ -212,6 +223,7 @@
     
     @Test
     public void testStatelessStatelessConversationWithCallback() {
+        resetCallStack();
         int count = conversationalStatelessClientStatelessService.runConversationWithCallback();
         Assert.assertEquals(0, count);
                
@@ -282,6 +294,7 @@
     
     @Test
     public void testStatefulStatefulConversationCheckingScope() {
+        resetCallStack();
         conversationalStatefulClientStatefulService.runConversationCheckingScope();
         Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,destroy,", 
                             ConversationalServiceStatefulImpl.calls.toString());
@@ -289,6 +302,7 @@
 
     @Test
     public void testStatefulStatefulConversationWithCallback() {
+        resetCallStack();
         int count = conversationalStatefulClientStatefulService.runConversationWithCallback();
         Assert.assertEquals(4, count);
                
@@ -313,7 +327,7 @@
         int count = conversationalStatefulClientStatefulService.runConversationCallingEndedConversationCallback();
         Assert.assertEquals(0, count);
     }    
-    
+   
     @Test
     public void testStatefulStatefulConversationCallingEndedConversationCheckConversationId() {
         String id = conversationalStatefulClientStatefulService.runConversationCallingEndedConversationCheckConversationId();
@@ -360,6 +374,7 @@
     
     @Test
     public void testStatefulStatelessConversationCheckingScope() {
+        resetCallStack();
         conversationalStatefulClientStatelessService.runConversationCheckingScope();
         Assert.assertEquals("init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,", 
                             ConversationalServiceStatelessImpl.calls.toString());
@@ -367,6 +382,7 @@
 
     @Test
     public void testStatefulStatelessConversationWithCallback() {
+        resetCallStack();
         int count = conversationalStatefulClientStatelessService.runConversationWithCallback();
         Assert.assertEquals(4, count);
                
@@ -379,13 +395,13 @@
         int count = conversationalStatefulClientStatelessService.runConversationHavingPassedReference();
         Assert.assertEquals(3, count);
     }     
-    
+   
     @Test
     public void testStatefulStatelessConversationCallingEndedConversation() {
         int count = conversationalStatefulClientStatelessService.runConversationCallingEndedConversation();
         Assert.assertEquals(-999, count);
     }     
-    
+  
     @Test
     public void testStatefulStatelessConversationCallingEndedConversationCallback() {
         int count = conversationalStatefulClientStatelessService.runConversationCallingEndedConversationCallback();
@@ -411,7 +427,7 @@
         int count = conversationalStatelessClientRequestService.runConversationFromInjectedReference();
         Assert.assertEquals(2, count);
     } 
-    
+   
     @Test
     public void testStatelessRequestConversationFromInjectedReference2() {
         int count = conversationalStatelessClientRequestService.runConversationFromInjectedReference2();
@@ -430,7 +446,7 @@
         Assert.assertEquals(2, count);
     }   
     
-    @Test
+    //@Test
     public void testStatelessRequestConversationCheckUserDefinedConversationId() {
         String conversationId = conversationalStatelessClientRequestService.runConversationCheckUserDefinedConversationId();
         Assert.assertEquals("MyConversation2", conversationId);
@@ -438,14 +454,16 @@
     
     @Test
     public void testStatelessRequestConversationCheckingScope() {
+        resetCallStack();
     	ConversationalServiceRequestImpl.calls = new StringBuffer();
     	conversationalStatelessClientRequestService.runConversationCheckingScope();
-        Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,", 
+        Assert.assertEquals("initializeCount,incrementCount,retrieveCount,endConversation,", 
         		            ConversationalServiceRequestImpl.calls.toString());
     }     
 
     @Test
     public void testStatelessRequestConversationWithCallback() {
+        resetCallStack();
     	ConversationalClientStatelessImpl.calls = new StringBuffer();    	
         int count = conversationalStatelessClientRequestService.runConversationWithCallback();
         Assert.assertEquals(0, count);
@@ -522,16 +540,16 @@
         int count = conversationalStatefulClientNonConversationalCallbackStatelessService.runConversationWithUserDefinedConversationId();
         Assert.assertEquals(2, count);
     }    
-    
+      
     @Test
     public void testStatefulNonConversationalCallbackStatefulConversationCheckUserDefinedConversationId() {
         String conversationId = conversationalStatefulClientNonConversationalCallbackStatelessService.runConversationCheckUserDefinedConversationId();
         Assert.assertEquals("MyConversation2", conversationId);
     } 
-    
+  
     @Test
     public void testStatefulNonConversationalCallbackStatefulConversationCheckingScope() {
-    	ConversationalServiceStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        resetCallStack();
     	conversationalStatefulClientNonConversationalCallbackStatelessService.runConversationCheckingScope();
         Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,destroy,", 
         		            ConversationalServiceStatefulNonConversationalCallbackImpl.calls.toString());
@@ -539,7 +557,7 @@
 
     @Test
     public void testStatefulNonConversationalCallbackStatefulConversationWithCallback() {
-    	ConversationalClientStatefulNonConversationalCallbackImpl.calls = new StringBuffer();
+        resetCallStack();
         int count = conversationalStatefulClientNonConversationalCallbackStatelessService.runConversationWithCallback();
         Assert.assertEquals(0, count);
                

Modified: incubator/tuscany/java/sca/itest/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/pom.xml?rev=591991&r1=591990&r2=591991&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/pom.xml (original)
+++ incubator/tuscany/java/sca/itest/pom.xml Mon Nov  5 05:42:17 2007
@@ -49,6 +49,7 @@
                 <module>contribution-import-export</module>
                 <module>contribution-classloader</module>
                 <module>conversations</module>
+                <module>conversations-ws</module>
                 <module>databindings</module>
                 <module>exceptions</module>
                 <module>exceptions-cross-binding</module>

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java?rev=591991&r1=591990&r2=591991&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java Mon Nov  5 05:42:17 2007
@@ -51,6 +51,28 @@
             }
             wsBinding.setBindingInterfaceContract(contract);
         }
+        
+        // TODO - fix up the conversational flag and operation sequences in case the contract has come from WSDL
+        // as we don't yet support requires="conversational" or sca:endConversation annotations
+        // in WSDL interface descriptions (see section 1.5.4 of the assembly spec V1.0)
+        if ( reference.getInterfaceContract().getInterface() != null ) {
+            contract.getInterface().setConversational(reference.getInterfaceContract().getInterface().isConversational());
+    
+            for (Operation operation : contract.getInterface().getOperations()){
+                Operation referenceOperation = null;
+                
+                for (Operation tmpOp : reference.getInterfaceContract().getInterface().getOperations()){
+                    if ( operation.getName().equals(tmpOp.getName())) {
+                        referenceOperation = tmpOp;
+                        break;
+                    }
+                }
+                
+                if (referenceOperation != null ){
+                    operation.setConversationSequence(referenceOperation.getConversationSequence());
+                }
+            }        
+        }
 
         // Set to use the Axiom data binding
         contract.getInterface().resetDataBinding(OMElement.class.getName());

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java?rev=591991&r1=591990&r2=591991&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java Mon Nov  5 05:42:17 2007
@@ -22,6 +22,7 @@
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.host.http.ServletHost;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
+import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
 import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -49,7 +50,30 @@
             }
             wsBinding.setBindingInterfaceContract(contract);
         }
+        
+        // TODO - fix up the conversational flag and operation sequences in case the contract has come from WSDL
+        // as we don't yet support requires="conversational" or sca:endConversation annotations
+        // in WSDL interface descriptions (see section 1.5.4 of the assembly spec V1.0)
+        if (service.getInterfaceContract().getInterface() != null ) {
+            contract.getInterface().setConversational(service.getInterfaceContract().getInterface().isConversational());
+            
+            for (Operation operation : contract.getInterface().getOperations()){
+                Operation serviceOperation = null;
+                
+                for (Operation tmpOp : service.getInterfaceContract().getInterface().getOperations()){
+                    if ( operation.getName().equals(tmpOp.getName())) {
+                        serviceOperation = tmpOp;
+                        break;
+                    }
+                }
+                
+                if (serviceOperation != null ){
+                    operation.setConversationSequence(serviceOperation.getConversationSequence());
+                }
+            }
+        }
 
+        
         // Set to use the Axiom data binding
         contract.getInterface().resetDataBinding(OMElement.class.getName());
 

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java?rev=591991&r1=591990&r2=591991&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java Mon Nov  5 05:42:17 2007
@@ -329,11 +329,10 @@
         Operation operation = msg.getOperation();
         ConversationSequence sequence = operation.getConversationSequence();
         // We check that conversation has not already ended as there is only one
-        // comversation manager in the runtime and so, in the case of remote bindings, 
+        // conversation manager in the runtime and so, in the case of remote bindings, 
         // the conversation will already have been stopped when we get back to the client
         if ((sequence == ConversationSequence.CONVERSATION_END) && 
             (conversation.getState()!= ConversationState.ENDED)) {
-            conversation.end();
 
             // remove conversation id from scope container
             ScopeContainer scopeContainer = getConversationalScopeContainer(wire);
@@ -341,6 +340,8 @@
             if (scopeContainer != null) {
                 scopeContainer.remove(conversation.getConversationID());
             }
+            
+            conversation.end();            
         }
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java?rev=591991&r1=591990&r2=591991&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java Mon Nov  5 05:42:17 2007
@@ -203,11 +203,7 @@
      * @throws TargetResolutionException
      */
     private void conversationPreinvoke(Message msg) {
-        if (!conversational) {
-            // Not conversational or the conversation has been started
-            return;
-        }
-        if (conversation == null || conversation.getState() == ConversationState.ENDED) {
+        if (conversational) {
             // in some cases the ConversationID that should be used comes in with the 
             // message, e.g. when ws binding is in use. 
             if (msg.getTo().getReferenceParameters().getConversationID() != null) {
@@ -215,13 +211,12 @@
             }
             conversation = conversationManager.getConversation(conversationID);
             
-            if (conversation == null) {
+            if (conversation == null || conversation.getState() == ConversationState.ENDED) {
                 conversation = conversationManager.startConversation(conversationID);
             }
+    
+            msg.getTo().getReferenceParameters().setConversationID(conversation.getConversationID());
         }
-        // TODO - assuming that the conversation ID is a string here when
-        //       it can be any object that is serializable to XML
-        msg.getTo().getReferenceParameters().setConversationID(conversation.getConversationID());
 
     }
 
@@ -233,16 +228,25 @@
      */
     @SuppressWarnings("unchecked")
     private void conversationPostInvoke(Message msg) throws TargetDestructionException {
-        Operation operation = msg.getOperation();
-        ConversationSequence sequence = operation.getConversationSequence();
-        if (sequence == ConversationSequence.CONVERSATION_END) {
-            conversation.end();
-
-            // remove conversation id from scope container
-            ScopeContainer scopeContainer = getConversationalScopeContainer(msg);
-
-            if (scopeContainer != null) {
-                scopeContainer.remove(conversation.getConversationID());
+        if (conversational) {       
+            Operation operation = msg.getOperation();
+            ConversationSequence sequence = operation.getConversationSequence();
+            if (sequence == ConversationSequence.CONVERSATION_END) {
+                // in some cases the ConversationID that should be used comes in with the 
+                // message, e.g. when ws binding is in use. 
+                if (msg.getTo().getReferenceParameters().getConversationID() != null) {
+                    conversationID =  msg.getTo().getReferenceParameters().getConversationID();
+                }
+                conversation = conversationManager.getConversation(conversationID);            
+    
+                // remove conversation id from scope container
+                ScopeContainer scopeContainer = getConversationalScopeContainer(msg);
+    
+                if (scopeContainer != null) {
+                    scopeContainer.remove(conversation.getConversationID());
+                }
+                
+                conversation.end();
             }
         }
     }
@@ -251,7 +255,7 @@
     private ScopeContainer getConversationalScopeContainer(Message msg) {
         ScopeContainer scopeContainer = null;
 
-        RuntimeComponent component = msg.getFrom().getComponent();
+        RuntimeComponent component = msg.getTo().getComponent();
 
         if (component instanceof ScopedRuntimeComponent) {
             ScopedRuntimeComponent scopedRuntimeComponent = (ScopedRuntimeComponent)component;
@@ -265,17 +269,6 @@
         return scopeContainer;
     }
 
-    /**
-     * Creates a new conversational id
-     * 
-     * @return the conversational id
-     */
-    private Object createConversationID() {
-        if (conversationID == null) {
-            return UUID.randomUUID().toString();
-        }
-        return conversationID;
-    }
 
     /**
      * Minimal wrapper for a callback object contained in a ServiceReference

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ConversationalScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ConversationalScopeContainer.java?rev=591991&r1=591990&r2=591991&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ConversationalScopeContainer.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ConversationalScopeContainer.java Mon Nov  5 05:42:17 2007
@@ -303,7 +303,7 @@
 
             // find out if we are dealing with the original client conversation id
             // and reset accordingly
-            if (clientConversationId.equals(contextId)) {
+            if ( ( clientConversationId != null ) && ( clientConversationId.equals(contextId)) ) {
                 clientConversationId = null;
             } else {
                 // reset the conversationId in the conversation object if present 
@@ -372,7 +372,12 @@
      * @see org.apache.tuscany.sca.core.conversation.ConversationListener#conversationEnded(org.apache.tuscany.sca.core.conversation.ExtendedConversation)
      */
     public void conversationEnded(ExtendedConversation conversation) {
-        stopContext(conversation.getConversationID());
+        //stopContext(conversation.getConversationID());
+        try {
+            remove(conversation.getConversationID());
+        } catch (Exception ex) {
+            
+        }
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org