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/07/19 17:46:58 UTC
svn commit: r557662 - in /incubator/tuscany/java/sca/itest/conversations/src:
main/java/org/apache/tuscany/sca/itest/conversational/impl/ main/resources/
test/java/org/apache/tuscany/sca/itest/conversational/
Author: slaws
Date: Thu Jul 19 08:46:57 2007
New Revision: 557662
URL: http://svn.apache.org/viewvc?view=rev&rev=557662
Log:
TUSCANY-1377
Updates for stateless services - currently there are issues with user defined conversationId
Added:
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java
Modified:
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatefulImpl.java
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatelessImpl.java
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatefulImpl.java
incubator/tuscany/java/sca/itest/conversations/src/main/resources/conversational.composite
incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTest.java
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatefulImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatefulImpl.java?view=diff&rev=557662&r1=557661&r2=557662
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatefulImpl.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatefulImpl.java Thu Jul 19 08:46:57 2007
@@ -41,7 +41,7 @@
@Service(interfaces={ConversationalClient.class})
@Scope("CONVERSATION")
-@ConversationAttributes(maxAge="10 seconds",
+@ConversationAttributes(maxAge="10 minutes",
singlePrincipal=false)
public class ConversationalClientStatefulImpl implements ConversationalClient, ConversationalCallback {
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatelessImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatelessImpl.java?view=diff&rev=557662&r1=557661&r2=557662
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatelessImpl.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalClientStatelessImpl.java Thu Jul 19 08:46:57 2007
@@ -23,6 +23,7 @@
import org.apache.tuscany.sca.itest.conversational.ConversationalReferenceClient;
import org.apache.tuscany.sca.itest.conversational.ConversationalService;
import org.osoa.sca.ComponentContext;
+import org.osoa.sca.ServiceReference;
import org.osoa.sca.annotations.Context;
import org.osoa.sca.annotations.ConversationAttributes;
import org.osoa.sca.annotations.Destroy;
@@ -67,6 +68,17 @@
return clientCount;
}
public int runConversationFromReference(){
+ ServiceReference<ConversationalService> serviceReference = componentContext.getServiceReference(ConversationalService.class,
+ "conversationalService");
+ serviceReference.setConversationID("MyConversation");
+
+ ConversationalService callableReference = serviceReference.getService();
+
+ conversationalService.initializeCount(1);
+ conversationalService.incrementCount();
+ int count = conversationalService.retrieveCount();
+ conversationalService.endConversation();
+
return clientCount;
}
public int runConversationPassingReference(){
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatefulImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatefulImpl.java?view=diff&rev=557662&r1=557661&r2=557662
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatefulImpl.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatefulImpl.java Thu Jul 19 08:46:57 2007
@@ -23,6 +23,7 @@
import org.apache.tuscany.sca.itest.conversational.ConversationalService;
import org.osoa.sca.annotations.Callback;
import org.osoa.sca.annotations.ConversationAttributes;
+import org.osoa.sca.annotations.ConversationID;
import org.osoa.sca.annotations.Conversational;
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.EndsConversation;
@@ -37,23 +38,27 @@
*
* @version $Rev: 537240 $ $Date: 2007-05-11 18:35:03 +0100 (Fri, 11 May 2007) $
*/
-@Service(interfaces={ConversationalService.class})
+@Service(ConversationalService.class)
@Scope("CONVERSATION")
-@ConversationAttributes(maxAge="10 seconds",
+@ConversationAttributes(maxAge="10 minutes",
singlePrincipal=false)
public class ConversationalServiceStatefulImpl implements ConversationalService {
+ @ConversationID
+ private String conversationId;
+
// @Callback - not working yet
protected ConversationalCallback conversationalCallback;
private int count;
public void init(){
-
+ count = 999;
}
public void destroy(){
-
+ // how do we know that destroy is called?
+ count = 0;
}
public void initializeCount(int count){
@@ -83,7 +88,7 @@
}
public void endConversation(){
-
+ count = 0;
}
public void endConversationCallback(){
Added: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java?view=auto&rev=557662
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java (added)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java Thu Jul 19 08:46:57 2007
@@ -0,0 +1,112 @@
+/*
+ * 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.impl;
+
+import java.util.HashMap;
+
+import org.apache.tuscany.sca.itest.conversational.ConversationalCallback;
+import org.apache.tuscany.sca.itest.conversational.ConversationalClient;
+import org.apache.tuscany.sca.itest.conversational.ConversationalService;
+import org.osoa.sca.ComponentContext;
+import org.osoa.sca.ServiceReference;
+import org.osoa.sca.annotations.Callback;
+import org.osoa.sca.annotations.Context;
+import org.osoa.sca.annotations.ConversationAttributes;
+import org.osoa.sca.annotations.ConversationID;
+import org.osoa.sca.annotations.Conversational;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.EndsConversation;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Remotable;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+
+/**
+ * The service used when testing stateful conversations
+ *
+ * @version $Rev: 537240 $ $Date: 2007-05-11 18:35:03 +0100 (Fri, 11 May 2007) $
+ */
+@Service(ConversationalService.class)
+public class ConversationalServiceStatelessImpl implements ConversationalService {
+
+ @Context
+ protected ComponentContext componentContext;
+
+ // @Callback - not working yet
+ protected ConversationalCallback conversationalCallback;
+
+ // static area in which to hold conversational data
+ private HashMap<String, Integer> conversationalState = new HashMap<String, Integer>();
+
+
+ public void init(){
+ // does nothing - service is stateless
+ }
+
+ public void destroy(){
+ // does nothing - service is stateless
+ }
+
+ public void initializeCount(int count){
+ Integer conversationalCount = new Integer(count);
+ String conversationId = getConversationId();
+ conversationalState.put(conversationId, conversationalCount);
+ }
+
+ public void incrementCount(){
+ String conversationId = getConversationId();
+ Integer conversationalCount = conversationalState.get(conversationId);
+ conversationalCount++;
+ }
+
+ public int retrieveCount(){
+ String conversationId = getConversationId();
+ return conversationalState.get(conversationId).intValue();
+ }
+
+ public void initializeCountCallback(int count){
+ initializeCount(count);
+ conversationalCallback.initializeCount(count);
+ }
+
+ public void incrementCountCallback(){
+ incrementCount();
+ conversationalCallback.incrementCount();
+ }
+
+ public int retrieveCountCallback(){
+ return conversationalCallback.retrieveCount();
+ }
+
+ public void endConversation(){
+ String conversationId = getConversationId();
+ conversationalState.remove(conversationId);
+ }
+
+ public void endConversationCallback(){
+ conversationalCallback.endConversation();
+ }
+
+ private String getConversationId(){
+ ServiceReference<ConversationalService> serviceReference = componentContext.createSelfReference(ConversationalService.class);
+ return (String)serviceReference.getConversationID();
+
+ }
+}
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/resources/conversational.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/resources/conversational.composite?view=diff&rev=557662&r1=557661&r2=557662
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/resources/conversational.composite (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/resources/conversational.composite Thu Jul 19 08:46:57 2007
@@ -21,22 +21,32 @@
targetNamespace="http://conversations"
name="ConversationalITest">
- <component name="ConversationalClientStateful">
+ <component name="ConversationalClientStateless">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl"/>
<!--reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/-->
- <reference name="conversationalService" target="ConversationalServiceStateful"/>
+ <reference name="conversationalService" target="ConversationalServiceStatelessSL"/>
</component>
+ <component name="ConversationalClientStateful">
+ <implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl"/>
+ <!--reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/-->
+ <reference name="conversationalService" target="ConversationalServiceStateful"/>
+ </component>
+
<!--component name="ConversationalReferenceClient">
<implementation.java class="org.apache.tuscany.sca.test.AnotherServiceImpl"/>
</component-->
<component name="ConversationalServiceStateful">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulImpl"/>
- </component>
-
+ </component>
+
<component name="ConversationalServiceStateless">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessScope"/>
- </component>
+ </component>
+
+ <component name="ConversationalServiceStatelessSL">
+ <implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatelessImpl"/>
+ </component>
</composite>
Modified: incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTest.java?view=diff&rev=557662&r1=557661&r2=557662
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTest.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/test/java/org/apache/tuscany/sca/itest/conversational/ConversationalTest.java Thu Jul 19 08:46:57 2007
@@ -29,25 +29,39 @@
public class ConversationalTest {
private SCADomain domain;
- private ConversationalClient conversationalClient;
+ private ConversationalClient conversationalClientStateless;
+ private ConversationalClient conversationalClientStateful;
@Before
public void setUp() throws Exception {
domain = SCADomain.newInstance("conversational.composite");
- conversationalClient = domain.getService(ConversationalClient.class,
- "ConversationalClientStateful");
+ conversationalClientStateless = domain.getService(ConversationalClient.class,
+ "ConversationalClientStateless");
+
+ conversationalClientStateful = domain.getService(ConversationalClient.class,
+ "ConversationalClientStateful");
+
}
@After
public void tearDown() throws Exception {
domain.close();
}
-
+
@Test
public void testStatefulConversation() {
- int count = conversationalClient.runConversation();
- Assert.assertEquals(count, 2);
- }
-
+ int count = conversationalClientStateful.runConversation();
+ Assert.assertEquals(2, count);
+
+ // need to check that initialization and destruction run correctly
+ }
+
+ @Test
+ public void testStatelessConversation() {
+ int count = conversationalClientStateless.runConversationFromReference();
+ Assert.assertEquals(2, count);
+
+ // need to check that initialization and destruction run correctly
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org