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 2008/02/15 22:19:33 UTC

svn commit: r628172 - in /incubator/tuscany/java/sca/itest/callablereferences/src: main/java/org/apache/tuscany/sca/itest/callablerefreturn/ main/resources/ test/java/org/apache/tuscany/sca/itest/callableref/

Author: slaws
Date: Fri Feb 15 13:19:32 2008
New Revision: 628172

URL: http://svn.apache.org/viewvc?rev=628172&view=rev
Log:
TUSCANY-2028
Thanks to Daniel Stucky for these test classes checking that callable references can be successfully returned from a component while maintaining a conversation. 

Added:
    incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/
    incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Alpha.java   (with props)
    incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/AlphaImpl.java   (with props)
    incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Beta.java   (with props)
    incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/BetaImpl.java   (with props)
    incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Gamma.java   (with props)
    incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/GammaImpl.java   (with props)
    incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite   (with props)
    incubator/tuscany/java/sca/itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/CallableReferenceReturnTestCase.java   (with props)

Added: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Alpha.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Alpha.java?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Alpha.java (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Alpha.java Fri Feb 15 13:19:32 2008
@@ -0,0 +1,27 @@
+/*
+ * 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.callablerefreturn;
+
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface Alpha
+{	
+	boolean run();
+}

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Alpha.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Alpha.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/AlphaImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/AlphaImpl.java?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/AlphaImpl.java (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/AlphaImpl.java Fri Feb 15 13:19:32 2008
@@ -0,0 +1,94 @@
+/*
+ * 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.callablerefreturn;
+
+import org.osoa.sca.CallableReference;
+import org.osoa.sca.ComponentContext;
+import org.osoa.sca.Conversation;
+import org.osoa.sca.annotations.Context;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+
+@Scope("COMPOSITE")
+public class AlphaImpl implements Alpha
+{
+    @Reference
+    public Beta beta;
+	
+    @Context
+    protected ComponentContext componentContext;
+    
+	public boolean run()
+	{
+		CallableReference<Gamma> gammaRef = null;
+		try
+        {   
+		    Object conversationId1 = null;
+		    Object conversationId2 = null;
+		    
+			// it is expected that this call returns a reference to Gamma that reuses the established Conversation
+			gammaRef = beta.getRef();	
+			
+			// no Conversation exists
+			Conversation con = gammaRef.getConversation();
+			if( con == null)
+			{
+				System.out.println( "Alpha: Conversation to gamma is null" );
+			}
+			else
+			{
+				System.out.println( "Alpha: Conversation to gamma exists. conversationId=" + con.getConversationID() );
+				conversationId1 = con.getConversationID();
+			}
+					
+			// this call should reuse a Conversation, but as none exists it creates a new conversation
+	        gammaRef.getService().doSomething();
+	        con = gammaRef.getConversation();
+			if( con == null)
+			{
+				System.out.println( "Alpha: Conversation to gamma is null" );
+			}
+			else
+			{
+				System.out.println( "Alpha: Conversation to gamma exists. conversationId=" + con.getConversationID() );
+				conversationId2 = con.getConversationID();
+			}	        
+			
+			if ( (conversationId1 == null) || (conversationId2 == null)){
+			    return false;
+			} 
+			
+			boolean testPassed = conversationId1.equals(conversationId2);
+			return testPassed;
+        }
+        catch(Exception e)
+        {
+        	e.printStackTrace();
+        	return false;
+        }
+        finally
+        {        	 
+        	if( gammaRef != null)
+        	{
+        		gammaRef.getService().stop();
+        	}
+        }
+	}
+		
+}

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/AlphaImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/AlphaImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Beta.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Beta.java?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Beta.java (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Beta.java Fri Feb 15 13:19:32 2008
@@ -0,0 +1,28 @@
+/*
+ * 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.callablerefreturn;
+
+import org.osoa.sca.CallableReference;
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface Beta
+{	
+	CallableReference<Gamma> getRef();
+}

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Beta.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Beta.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/BetaImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/BetaImpl.java?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/BetaImpl.java (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/BetaImpl.java Fri Feb 15 13:19:32 2008
@@ -0,0 +1,44 @@
+/*
+ * 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.callablerefreturn;
+
+import org.osoa.sca.CallableReference;
+import org.osoa.sca.ComponentContext;
+import org.osoa.sca.ServiceReference;
+import org.osoa.sca.annotations.Context;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+
+@Scope("COMPOSITE")
+public class BetaImpl implements Beta
+{
+    @Context
+    protected ComponentContext componentContext;
+    
+    @Reference
+    public Gamma gamma;
+	        
+	public CallableReference<Gamma> getRef()
+	{
+		ServiceReference<Gamma> gammaRef = componentContext.getServiceReference(Gamma.class, "gamma");		
+		gammaRef.getService().start();		
+		return gammaRef;
+	}
+	
+}

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/BetaImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/BetaImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Gamma.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Gamma.java?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Gamma.java (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Gamma.java Fri Feb 15 13:19:32 2008
@@ -0,0 +1,35 @@
+/*
+ * 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.callablerefreturn;
+
+import org.osoa.sca.annotations.Conversational;
+import org.osoa.sca.annotations.EndsConversation;
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+@Conversational
+public interface Gamma
+{	
+	void start();
+			
+	void doSomething();
+	
+	@EndsConversation
+	void stop();
+}

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Gamma.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/Gamma.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/GammaImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/GammaImpl.java?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/GammaImpl.java (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/GammaImpl.java Fri Feb 15 13:19:32 2008
@@ -0,0 +1,47 @@
+/*
+ * 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.callablerefreturn;
+
+import org.osoa.sca.annotations.ConversationID;
+import org.osoa.sca.annotations.Scope;
+
+@Scope("CONVERSATION")
+public class GammaImpl implements Gamma
+{    	
+    @ConversationID
+    protected String conversationId;
+       
+
+	public void start()
+	{	
+		System.out.println("Gamma:start(), conversationId=" + conversationId);
+	}
+	
+
+	public void doSomething()	
+	{
+		System.out.println("Gamma:doSomething(), conversationId=" + conversationId);
+	}
+
+	
+	public void stop()
+	{
+		System.out.println("Gamma:stop(), conversationId=" + conversationId);
+	}
+}

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/GammaImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/java/org/apache/tuscany/sca/itest/callablerefreturn/GammaImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite Fri Feb 15 13:19:32 2008
@@ -0,0 +1,39 @@
+<?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
+    * 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"
+		xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+		xmlns:s="http://test"			
+		name="test">
+
+	<component name="Alpha">
+		<implementation.java class="org.apache.tuscany.sca.itest.callablerefreturn.AlphaImpl"/>
+		<reference name="beta" target="Beta"/>		
+	</component>
+    
+	<component name="Beta">
+		<implementation.java class="org.apache.tuscany.sca.itest.callablerefreturn.BetaImpl"/>
+		<reference name="gamma" target="Gamma"/>
+	</component>     
+
+	<component name="Gamma">
+		<implementation.java class="org.apache.tuscany.sca.itest.callablerefreturn.GammaImpl"/>
+	</component>     
+
+</composite>

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/main/resources/CallableReferenceReturnTest.composite
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/tuscany/java/sca/itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/CallableReferenceReturnTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/CallableReferenceReturnTestCase.java?rev=628172&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/CallableReferenceReturnTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/CallableReferenceReturnTestCase.java Fri Feb 15 13:19:32 2008
@@ -0,0 +1,48 @@
+/*
+ * 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.callableref;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.itest.callablerefreturn.Alpha;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class CallableReferenceReturnTestCase {
+    private static SCADomain domain;
+    private static Alpha alpha;
+
+    @BeforeClass
+    public static void init() throws Exception {
+        domain = SCADomain.newInstance("CallableReferenceReturnTest.composite");
+        alpha = domain.getService(Alpha.class, "Alpha");
+    }
+
+    @AfterClass
+    public static void destroy() throws Exception {
+        domain.close();
+    }
+
+    @Test
+    public void testCallableReferenceReturn() {
+        Assert.assertTrue(alpha.run());
+    }
+
+}

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/CallableReferenceReturnTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/CallableReferenceReturnTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



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