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/23 12:04:13 UTC
svn commit: r558679 - in /incubator/tuscany/java/sca:
itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/
itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/
itest/conversations/src/main/resour...
Author: slaws
Date: Mon Jul 23 03:04:09 2007
New Revision: 558679
URL: http://svn.apache.org/viewvc?view=rev&rev=558679
Log:
TUSCANY-1377
Generate proper conversationId if a target has conversational scope but only its callback interface is conversational
Add more detailed commentry to AbstractInvocationHandler
Add more testing for error conditions
Added:
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalReferenceClientImpl.java
Modified:
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalCallback.java
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalClient.java
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalService.java
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationAgeComponentImpl.java
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationMaxIdleComponentImpl.java
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/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java
incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessScope.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/ConversationalTestCase.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/component/CallableReferenceImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/scope/ConversationalScopeContainer.java
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalCallback.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalCallback.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalCallback.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalCallback.java Mon Jul 23 03:04:09 2007
@@ -44,7 +44,9 @@
public int retrieveCount();
+ public void businessException() throws Exception;
+
@EndsConversation
- public void endConversation();
+ public String endConversation();
}
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalClient.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalClient.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalClient.java Mon Jul 23 03:04:09 2007
@@ -33,10 +33,14 @@
public int runConversationFromInjectedReference();
public int runConversationFromServiceReference();
public int runConversationWithUserDefinedConversationId();
+ public String runConversationCheckUserDefinedConversationId();
public int runConversationCheckingScope();
public int runConversationWithCallback();
public int runConversationHavingPassedReference();
- public int runConversationError();
+ public String runConversationBusinessException();
+ public String runConversationBusinessExceptionCallback();
+ public int runConversationCallingEndedConversation();
+ public int runConversationCallingEndedConversationCallback();
public int runConversationAgeTimeout();
public int runConversationIdleTimeout();
public int runConversationPrincipleError();
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalService.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalService.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/ConversationalService.java Mon Jul 23 03:04:09 2007
@@ -46,15 +46,19 @@
public int retrieveCount();
+ public void businessException() throws Exception;
+
public void initializeCountCallback(int count);
public void incrementCountCallback();
public int retrieveCountCallback();
+ public void businessExceptionCallback() throws Exception;
+
@EndsConversation
- public void endConversation();
+ public String endConversation();
- public void endConversationCallback();
+ public String endConversationCallback();
}
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationAgeComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationAgeComponentImpl.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationAgeComponentImpl.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationAgeComponentImpl.java Mon Jul 23 03:04:09 2007
@@ -30,14 +30,22 @@
public class ConversationAgeComponentImpl implements ConversationalService {
private int count;
+
+ public void businessException() throws Exception {
+ }
+
+ public void businessExceptionCallback() throws Exception {
+ }
public void destroy() {
}
- public void endConversation() {
+ public String endConversation() {
+ return null;
}
- public void endConversationCallback() {
+ public String endConversationCallback() {
+ return null;
}
public void incrementCount() {
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationMaxIdleComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationMaxIdleComponentImpl.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationMaxIdleComponentImpl.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationMaxIdleComponentImpl.java Mon Jul 23 03:04:09 2007
@@ -31,13 +31,21 @@
private int count;
+ public void businessException() throws Exception {
+ }
+
+ public void businessExceptionCallback() throws Exception {
+ }
+
public void destroy() {
}
- public void endConversation() {
+ public String endConversation() {
+ return null;
}
- public void endConversationCallback() {
+ public String endConversationCallback() {
+ return null;
}
public void incrementCount() {
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=558679&r1=558678&r2=558679
==============================================================================
--- 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 Mon Jul 23 03:04:09 2007
@@ -26,6 +26,7 @@
import org.osoa.sca.ServiceReference;
import org.osoa.sca.annotations.Context;
import org.osoa.sca.annotations.ConversationAttributes;
+import org.osoa.sca.annotations.ConversationID;
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.EndsConversation;
import org.osoa.sca.annotations.Init;
@@ -53,7 +54,7 @@
@Reference
protected ConversationalService conversationalService;
- // @Reference - not yet
+ @Reference
protected ConversationalReferenceClient conversationalReferenceClient;
private int clientCount = 0;
@@ -92,7 +93,7 @@
calls.append("runConversationWithUserDefinedConversationId,");
ServiceReference<ConversationalService> serviceReference = componentContext.getServiceReference(ConversationalService.class,
"conversationalService");
- serviceReference.setConversationID("MyConversation");
+ serviceReference.setConversationID("MyConversation1");
ConversationalService callableReference = serviceReference.getService();
@@ -105,6 +106,20 @@
return clientCount;
}
+ public String runConversationCheckUserDefinedConversationId(){
+ calls.append("runConversationCheckUserDefinedConversationId,");
+ ServiceReference<ConversationalService> serviceReference = componentContext.getServiceReference(ConversationalService.class,
+ "conversationalService");
+ serviceReference.setConversationID("MyConversation2");
+
+ ConversationalService callableReference = serviceReference.getService();
+
+ callableReference.initializeCount(1);
+ callableReference.incrementCount();
+ clientCount = callableReference.retrieveCount();
+ return callableReference.endConversation();
+
+ }
public int runConversationCheckingScope(){
calls.append("runConversationCheckingScope,");
// run a conversation
@@ -123,24 +138,77 @@
return clientCount;
}
- public int runConversationHavingPassedReference(){
- calls.append("runConversationHavingPassedReference,");
- return clientCount;
- }
- public int runConversationError(){
- calls.append("runConversationError,");
+ public int runConversationHavingPassedReference(){
+ calls.append("runConversationHavingPassedReference,");
+ ServiceReference<ConversationalService> serviceReference = componentContext.getServiceReference(ConversationalService.class,
+ "conversationalService");
+ ConversationalService callableReference = serviceReference.getService();
+
+ callableReference.initializeCount(1);
+ callableReference.incrementCount();
+ conversationalReferenceClient.incrementCount(serviceReference);
+ clientCount = callableReference.retrieveCount();
+ callableReference.endConversation();
+
+ serviceReference.getConversation().end();
+
return clientCount;
}
+ public String runConversationBusinessException(){
+ calls.append("runConversationbusinessException,");
+ try {
+ conversationalService.initializeCount(1);
+ conversationalService.businessException();
+ clientCount = conversationalService.retrieveCount();
+ conversationalService.endConversation();
+ } catch(Exception ex) {
+ return ex.getMessage();
+ }
+
+ return "No Exception Returned";
+ }
+
+ public String runConversationBusinessExceptionCallback(){
+ calls.append("runConversationbusinessExceptionCallback,");
+ try {
+ conversationalService.initializeCountCallback(1);
+ conversationalService.businessExceptionCallback();
+ clientCount = conversationalService.retrieveCountCallback();
+ conversationalService.endConversationCallback();
+ } catch(Exception ex) {
+ return ex.getMessage();
+ }
+
+ return "No Exception Returned";
+ }
+
+ public int runConversationCallingEndedConversation(){
+ calls.append("runConversationCallingEndedConversation,");
+ conversationalService.initializeCount(1);
+ conversationalService.endConversation();
+ return conversationalService.retrieveCount();
+ }
+
+ public int runConversationCallingEndedConversationCallback(){
+ calls.append("runConversationCallingEndedConversationCallback,");
+ conversationalService.initializeCountCallback(1);
+ conversationalService.endConversationCallback();
+ return conversationalService.retrieveCountCallback();
+ }
+
public int runConversationAgeTimeout(){
calls.append("runConversationAgeTimeout,");
+ // done in other testing
return clientCount;
}
public int runConversationIdleTimeout(){
calls.append("runConversationIdleTimeout,");
+ // done in other testing
return clientCount;
}
public int runConversationPrincipleError(){
calls.append("runConversationPrincipleError,");
+ // TODO - when policy framework is done
return clientCount;
}
@@ -149,13 +217,11 @@
@Init
public void init(){
calls.append("init,");
-
}
@Destroy
public void destroy(){
- calls.append("destroy,");
-
+ calls.append("destroy,");
}
public void initializeCount(int count){
@@ -173,9 +239,13 @@
return callbackCount;
}
- public void endConversation(){
+ public void businessException() throws Exception {
+ throw new Exception("Business Exception");
+ }
+
+ public String endConversation(){
calls.append("endConversation,");
-
+ return null;
}
}
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=558679&r1=558678&r2=558679
==============================================================================
--- 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 Mon Jul 23 03:04:09 2007
@@ -26,6 +26,7 @@
import org.osoa.sca.ServiceReference;
import org.osoa.sca.annotations.Context;
import org.osoa.sca.annotations.ConversationAttributes;
+import org.osoa.sca.annotations.ConversationID;
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.EndsConversation;
import org.osoa.sca.annotations.Init;
@@ -42,14 +43,14 @@
@Service(interfaces={ConversationalClient.class})
public class ConversationalClientStatelessImpl implements ConversationalClient, ConversationalCallback {
-
+
@Context
protected ComponentContext componentContext;
@Reference
protected ConversationalService conversationalService;
- // @Reference - not yet
+ @Reference
protected ConversationalReferenceClient conversationalReferenceClient;
private int clientCount = 0;
@@ -98,6 +99,20 @@
return clientCount;
}
+ public String runConversationCheckUserDefinedConversationId(){
+ calls.append("runConversationCheckUserDefinedConversationId,");
+ ServiceReference<ConversationalService> serviceReference = componentContext.getServiceReference(ConversationalService.class,
+ "conversationalService");
+ serviceReference.setConversationID("MyConversation2");
+
+ ConversationalService callableReference = serviceReference.getService();
+
+ callableReference.initializeCount(1);
+ callableReference.incrementCount();
+ clientCount = callableReference.retrieveCount();
+ return callableReference.endConversation();
+
+ }
public int runConversationCheckingScope(){
calls.append("runConversationCheckingScope,");
// run a conversation
@@ -115,24 +130,79 @@
return clientCount;
}
+
public int runConversationHavingPassedReference(){
calls.append("runConversationHavingPassedReference,");
+ ServiceReference<ConversationalService> serviceReference = componentContext.getServiceReference(ConversationalService.class,
+ "conversationalService");
+ ConversationalService callableReference = serviceReference.getService();
+
+ callableReference.initializeCount(1);
+ callableReference.incrementCount();
+ conversationalReferenceClient.incrementCount(serviceReference);
+ clientCount = callableReference.retrieveCount();
+ callableReference.endConversation();
+
+ serviceReference.getConversation().end();
+
return clientCount;
}
- public int runConversationError(){
- calls.append("runConversationError,");
- return clientCount;
+
+ public String runConversationBusinessException(){
+ calls.append("runConversationbusinessException,");
+ try {
+ conversationalService.initializeCount(1);
+ conversationalService.businessException();
+ clientCount = conversationalService.retrieveCount();
+ conversationalService.endConversation();
+ } catch(Exception ex) {
+ return ex.getMessage();
+ }
+
+ return "No Exception Returned";
}
+
+ public String runConversationBusinessExceptionCallback(){
+ calls.append("runConversationbusinessExceptionCallback,");
+ try {
+ conversationalService.initializeCountCallback(1);
+ conversationalService.businessExceptionCallback();
+ clientCount = conversationalService.retrieveCountCallback();
+ conversationalService.endConversationCallback();
+ } catch(Exception ex) {
+ return ex.getMessage();
+ }
+
+ return "No Exception Returned";
+ }
+
+ public int runConversationCallingEndedConversation(){
+ calls.append("runConversationCallingEndedConversation,");
+ conversationalService.initializeCount(1);
+ conversationalService.endConversation();
+ return conversationalService.retrieveCount();
+ }
+
+ public int runConversationCallingEndedConversationCallback(){
+ calls.append("runConversationCallingEndedConversationCallback,");
+ conversationalService.initializeCountCallback(1);
+ conversationalService.endConversationCallback();
+ return conversationalService.retrieveCountCallback();
+ }
+
public int runConversationAgeTimeout(){
calls.append("runConversationAgeTimeout,");
+ // done in other testing
return clientCount;
}
public int runConversationIdleTimeout(){
calls.append("runConversationIdleTimeout,");
+ // done in other testing
return clientCount;
}
public int runConversationPrincipleError(){
calls.append("runConversationPrincipleError,");
+ // TODO - when policy framework is done
return clientCount;
}
@@ -165,9 +235,13 @@
return callbackCount;
}
- public void endConversation(){
+ public void businessException() throws Exception {
+ throw new Exception("Business Exception");
+ }
+
+ public String endConversation(){
calls.append("endConversation,");
-
+ return null;
}
}
Added: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalReferenceClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalReferenceClientImpl.java?view=auto&rev=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalReferenceClientImpl.java (added)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalReferenceClientImpl.java Mon Jul 23 03:04:09 2007
@@ -0,0 +1,55 @@
+/*
+ * 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 org.apache.tuscany.sca.itest.conversational.ConversationalCallback;
+import org.apache.tuscany.sca.itest.conversational.ConversationalClient;
+import org.apache.tuscany.sca.itest.conversational.ConversationalReferenceClient;
+import org.apache.tuscany.sca.itest.conversational.ConversationalService;
+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.ConversationAttributes;
+import org.osoa.sca.annotations.ConversationID;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.EndsConversation;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * A client component that accepts a reference to an ongoing conversation
+ * and takes part in that conversation
+ *
+ * @version $Rev: 537240 $ $Date: 2007-05-11 18:35:03 +0100 (Fri, 11 May 2007) $
+ */
+
+@Service(interfaces={ConversationalReferenceClient.class})
+public class ConversationalReferenceClientImpl implements ConversationalReferenceClient{
+
+ public void incrementCount(CallableReference<ConversationalService> conversationalService){
+ ConversationalService callableReference = conversationalService.getService();
+
+ callableReference.incrementCount();
+ }
+
+
+}
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=558679&r1=558678&r2=558679
==============================================================================
--- 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 Mon Jul 23 03:04:09 2007
@@ -82,6 +82,10 @@
return count;
}
+ public void businessException() throws Exception {
+ throw new Exception("Business Exception");
+ }
+
public void initializeCountCallback(int count){
calls.append("initializeCountCallback,");
this.count = count;
@@ -99,13 +103,19 @@
return conversationalCallback.retrieveCount();
}
- public void endConversation(){
+ public void businessExceptionCallback() throws Exception {
+ calls.append("businessExceptionCallback,");
+ conversationalCallback.businessException();
+ }
+
+ public String endConversation(){
calls.append("endConversation,");
count = 0;
+ return conversationId;
}
- public void endConversationCallback(){
+ public String endConversationCallback(){
calls.append("endConversationCallback,");
- conversationalCallback.endConversation();
+ return conversationalCallback.endConversation();
}
}
Modified: 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=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessImpl.java Mon Jul 23 03:04:09 2007
@@ -84,9 +84,18 @@
public int retrieveCount(){
calls.append("retrieveCount,");
- return conversationalState.get(conversationId).intValue();
+ Integer count = conversationalState.get(conversationId);
+ if (count != null){
+ return count.intValue();
+ } else {
+ return -999;
+ }
}
+ public void businessException() throws Exception {
+ throw new Exception("Business Exception");
+ }
+
public void initializeCountCallback(int count){
calls.append("initializeCountCallback,");
initializeCount(count);
@@ -104,13 +113,19 @@
return conversationalCallback.retrieveCount();
}
- public void endConversation(){
+ public void businessExceptionCallback() throws Exception {
+ calls.append("businessExceptionCallback,");
+ conversationalCallback.businessException();
+ }
+
+ public String endConversation(){
calls.append("endConversation,");
conversationalState.remove(conversationId);
+ return conversationId;
}
- public void endConversationCallback(){
+ public String endConversationCallback(){
calls.append("endConversationCallback,");
- conversationalCallback.endConversation();
+ return conversationalCallback.endConversation();
}
}
Modified: incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessScope.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessScope.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessScope.java (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/java/org/apache/tuscany/sca/itest/conversational/impl/ConversationalServiceStatelessScope.java Mon Jul 23 03:04:09 2007
@@ -39,12 +39,14 @@
}
- public void endConversation() {
+ public String endConversation() {
state.remove(cid);
+ return cid;
}
- public void endConversationCallback() {
+ public String endConversationCallback() {
// TODO Auto-generated method stub
+ return null;
}
@@ -52,6 +54,10 @@
state.put(cid, Integer.valueOf(state.get(cid)+1));
}
+ public void businessException() throws Exception {
+ throw new Exception("Business Exception");
+ }
+
public void incrementCountCallback() {
// TODO Auto-generated method stub
@@ -70,6 +76,10 @@
// TODO Auto-generated method stub
}
+
+ public void businessExceptionCallback() throws Exception {
+ throw new Exception("Business Exception");
+ }
public int retrieveCount() {
return state.get(cid);
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=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/itest/conversations/src/main/resources/conversational.composite (original)
+++ incubator/tuscany/java/sca/itest/conversations/src/main/resources/conversational.composite Mon Jul 23 03:04:09 2007
@@ -23,31 +23,31 @@
<component name="ConversationalStatelessClientStatelessService">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl"/>
- <!--reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/-->
+ <reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/>
<reference name="conversationalService" target="ConversationalServiceStatelessSL"/>
</component>
<component name="ConversationalStatelessClientStatefulService">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatelessImpl"/>
- <!--reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/-->
+ <reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/>
<reference name="conversationalService" target="ConversationalServiceStateful"/>
</component>
<component name="ConversationalStatefulClientStatelessService">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulImpl"/>
- <!--reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/-->
+ <reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/>
<reference name="conversationalService" target="ConversationalServiceStatelessSL"/>
</component>
<component name="ConversationalStatefulClientStatefulService">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalClientStatefulImpl"/>
- <!--reference name="conversationalReferenceClient" target="ConversationalReferenceClient"/-->
+ <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="ConversationalReferenceClient">
+ <implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalReferenceClientImpl"/>
+ </component>
<component name="ConversationalServiceStateful">
<implementation.java class="org.apache.tuscany.sca.itest.conversational.impl.ConversationalServiceStatefulImpl"/>
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?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- 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 Jul 23 03:04:09 2007
@@ -87,14 +87,20 @@
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() {
int count = conversationalStatelessClientStatefulService.runConversationCheckingScope();
Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,destroy,",
ConversationalServiceStatefulImpl.calls.toString());
- }
+ }
@Test
public void testStatelessStatefulConversationWithCallback() {
@@ -103,7 +109,37 @@
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);
+ }
// stateless client stateless service tests
// ========================================
@@ -123,7 +159,12 @@
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() {
@@ -131,6 +172,32 @@
Assert.assertEquals("init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,",
ConversationalServiceStatelessImpl.calls.toString());
}
+
+ @Test
+ public void testStatelessStatelessConversationWithCallback() {
+ 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);
+ }
// stateful client stateful service tests
// ======================================
@@ -153,6 +220,12 @@
}
@Test
+ public void testStatefulStatefulConversationCheckUserDefinedConversationId() {
+ String conversationId = conversationalStatefulClientStatefulService.runConversationCheckUserDefinedConversationId();
+ Assert.assertEquals("MyConversation2", conversationId);
+ }
+
+ @Test
public void testStatefulStatefulConversationCheckingScope() {
int count = conversationalStatefulClientStatefulService.runConversationCheckingScope();
Assert.assertEquals("init,initializeCount,incrementCount,retrieveCount,endConversation,destroy,",
@@ -166,8 +239,26 @@
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);
+ }
+
// stateful client stateless service tests
// =======================================
@Test
@@ -187,12 +278,45 @@
int count = conversationalStatefulClientStatelessService.runConversationWithUserDefinedConversationId();
Assert.assertEquals(2, count);
}
+
+ @Test
+ public void testStatefulStatelessConversationCheckUserDefinedConversationId() {
+ String conversationId = conversationalStatefulClientStatelessService.runConversationCheckUserDefinedConversationId();
+ Assert.assertEquals("MyConversation2", conversationId);
+ }
@Test
public void testStatefulStatelessConversationCheckingScope() {
int count = conversationalStatefulClientStatelessService.runConversationCheckingScope();
Assert.assertEquals("init,initializeCount,destroy,init,incrementCount,destroy,init,retrieveCount,destroy,init,endConversation,destroy,",
ConversationalServiceStatelessImpl.calls.toString());
- }
+ }
+
+ @Test
+ public void testStatefulStatelessConversationWithCallback() {
+ 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);
+ }
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/component/CallableReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/component/CallableReferenceImpl.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/component/CallableReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/component/CallableReferenceImpl.java Mon Jul 23 03:04:09 2007
@@ -49,7 +49,7 @@
}
public boolean isConversational() {
- return false;
+ return ((WireObjectFactory<B>)factory).getConversation() != null;
}
public Conversation getConversation() {
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java Mon Jul 23 03:04:09 2007
@@ -68,7 +68,7 @@
// 2 - Specified by the application (through a service reference)
// 3 - from the message context (if the source is stateful)
//
- // TODO - number 3 seems a little shaky as we end up propogating
+ // TODO - number 3 seems a little shaky as we end up propagating
// a conversationId through the source component. If we don't
// do this though we can't correlate the callback call with the
// current target instance. Currently specifying an application
@@ -84,16 +84,17 @@
Object conversationId = conversation.getConversationID();
// create a conversation id if one doesn't exist
- // already. This could be because we are in the middle of a
- // conversation or the conversation hasn't started but the
+ // already, i.e. the conversation is just starting
if ((conversationStarted == false) && (conversationId == null)) {
// It the current component is already in a conversation
// the use this just in case this message has a stateful
// callback. In which case the callback will come back
// to the correct instance.
- // TODO - need a better mechanism for identifyng the
- // stateful callback case
+ // TODO - we should always create a unique id here or
+ // take the application defined conversation id.
+ // This implies we have to re-register the component
+ // instance against this
if (msgContextConversationId == null) {
conversationId = createConversationID();
} else {
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?view=diff&rev=558679&r1=558678&r2=558679
==============================================================================
--- 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 Jul 23 03:04:09 2007
@@ -22,6 +22,7 @@
import java.util.Iterator;
import java.util.Map;
+import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -135,7 +136,7 @@
// conversation Id here to store the service against
// and populate the thread context
if (contextId == null){
- contextId = new String("1234");
+ contextId = UUID.randomUUID().toString();
Message msgContext = ThreadMessageContext.getMessageContext();
if (msgContext != null){
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org