These are the items that have been worked on since Tuscany SCA Java was last released. If we record things that have been done as we check things into SVN there there are two big advantages.
- Its a lot easier to write the release notes
- People can take a look to see what is likely to be in the next release
The next release is targeted for mid May 2007. The theme is stability and consumability for the runtime core functions. Since the M2 release we have added.
General
- A clear set of SPIs which we can keep stable over future releases
- List???
- Refactored extensions to use new SPIs (see below)
- Extensions now loaded via Java service mechanism
- Improved Package/Class naming consistency across modules
- Tidied Package dependencies
Assembly(Model)
- New assembly model implementation taking into account SCA 1.0 artifacts
- Data duplication between assembly model and runtime reduced
Implementation Extensions
- Java
- Script
- Ruby
- Python
- Groovy
- JavaScript
Binding Extensions
- Axis2
- RMI
- JSONRPC
Databinding Extensions
- Axiom
- JAXB
- SDO
Hosting
- Embedded
- Tomcat
- Jetty
- RMI
Domain and Contribution
- Simple single process domain support
- Contributions support to scope items being deployed the runtime
- Contribution service to remove the need of import.sdo (rfeng) - Is this now true?
Samples
- A variety of samples testing most implementation and binding extensions
- See /sca/samples
- Maven and Ant base sample builds in the binary distribution
Java Annotations and APIs Spec Coverage
Annotations
@AllowsPassByReference
Interface
Class
Method
@Callback
Interface
Class
Method
Field
@ComponentName
Method
Field
@Conversation
Interface
Class
@Constructor
Constructor
@Context
Field
Setter
@Conversational
Interface
Class
@Destroy
Method
@EagerInit
Interface
Class
@EndsConversation
Method
@Init
Method
@OneWay
Method
@Property
Field
Method
@Reference
Field
Setter
Constructor
@Remotable
Interface
Class
@Scope
Interface
Class
STATELESS
REQUEST
CONVERSATION
COMPOSITE
@Service
Interface
Class
@ConversationAttributes
Interface
Class
@ConversationID
Field
Setter
API
CallableReference<B>
B getService();
Class<B> getBusinessInterface();
boolean isConversational();
Conversation getConversation();
Object getCallbackID();
ComponentContext
String getURI();
<B> B getService(Class<B> businessInterface, String referenceName);
<B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String referenceName);
<B> ServiceReference<B> createSelfReference(Class<B> businessInterface);
<B> ServiceReference<B> createSelfReference(Class<B> businessInterface,String serviceName);
<B> B getProperty(Class<B> type, String propertyName);
<B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException;
RequestContext getRequestContext();
<B> ServiceReference<B> cast(B target) throws IllegalArgumentException;
Conversation
Object getConversionID();
void end();
ConversationEndedException
NoRegsiteredCallbackException
RequestContext
Subject getSecuritySubject();
String getServiceName();
CallbackReference<CB> getCallbackReference();
CB getCallback();
<B> CallableReference<B> getServiceReference();
ServiceReference<B>
Object getConversationID();
void setConversationID(Object conversationId) throws IllegalStateException;
void setCallbackID(Object callbackID);
Object getCallback();
void setCallback(Object callback);
ServiceRuntimeException
ServiceUnavailableException