[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: ISSUE 95: Proposed direction for resolution
The following is a high-level sketch of a proposed direction for resolving issue JAVA-95. Comments and suggested improvements are most welcome. 1. Rename CONVERSATIONAL scope to STATEFUL scope. 2. Remove @Conversational and @EndsConversation from interfaces. 3. Introduce a new annotation @Correlation(name) for parameters of service methods of STATEFUL-scoped implementations. When a method of a STATEFUL-scoped implementation is dispatched by the SCA runtime, the set of names and values identified by its @Correlation annotations is used to attempt to locate an existing matching instance in the component's correlated instance pool. If a matching instance is found, it is used for the method dispatch. If no matching instance is found, a new instance is created and placed in the correlated instance pool, identified by the correlation set of names and values. 4. Introduce a new annotation @EndCorrelation for service methods of STATEFUL-scoped implementations. When an @EndCorrelation method is dispatched and returns to the SCA runtime, the instance that was used for the dispatch is removed from the pool of correlated instances. 5. Introduce a new annotation @StartCorrelation for service methods of STATEFUL-scoped implementations. When a @StartCorrelation method is dispatched by the SCA runtime, an existing instance must not be used for the dispatch, even if it matches the correlation set data. If a matching instance is found, the SCA runtime MUST throw a ServiceRuntimeException. 6. A method with no @Correlation annotations implies @EndCorrelation. It will always create a new instance because it has no correlation set data that can be used to match an existing instance in the correlated instance pool. 7. Rename @ConversationAttributes to @CorrelationAttributes. 8. Remove Conversation class and @ConversationID annotation. 9. Remove stateful callbacks. 10. Remove isConversational() and getConversation() from CallbableReference. 11. Remove getConversationID() and setConversationID() from ServiceReference. 12. Remove ServiceReference class. 13. Remove ConversationEndedException. Simon
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]