Short Term Roadmap
Here is a short term roadmap to our first Tuscany/Java Milestone. This is a summary of the discussion we had on the tuscany-dev mailing list, see Roadmap for the next few weeks and the follow up discussion thread in the tuscany-dev mail archive for all the details.
This is NOT a project plan. This is just a list of the areas that we would like to focus on, to help people in the group find areas where they can contribute.
Core Module assembly model
- align implementation with a subset of SCA 0.9 (the implementation diverges from SCA 0.9 in some areas today)
- support for module and fragment SCDL
- support for componentType
- no multiplicity
- simple properties only, no complex properties
- support for both Java and WSDL interfaces
Subsystem assembly model
- support for subsystem SCDL
- moduleComponents only no externalService and entryPoint at the subsystem level
- support for wiring/specifying endpoints on externalServices
- support for overriding properties of moduleComponents
- on Tomcat, subsystem maps to a Tomcat instance, moduleComponent maps to a Web app
- in J2SE, you can run a single moduleComponent
Client and implementation model
- align implementation with a subset of SCA 0.9
- support for SDO2 as well as regular Java objects
- basic scope management (request, session, module)
- no metadata API
- no request context
- no session id
- no service references
- no conversational, no callbacks
Runtime architecture improvements
remove TuscanyModuleComponentContextImpl, transition to new context architecture and make sure model, loaders, builders, config and context are decoupled
- Fix how proxying and invocation chains works, distinguish source and target proxies / invocation chains
Development Tools
WSDL2Java and Java2WSDL generators
- XSD2SDO and Java2SDO generators
- both in the form of API and maven plugins
Bindings
web service binding using AXIS2 (SOAP/HTTP, doc literal only, support for streaming) - Ant
- we can live with just a WS binding for now and look at the default SCA binding later (maybe it'll just be a variation of the WS binding with some defaults anyway)
- pluggable data-binding working with AXIS2 (start with regular Java objects and SDO)
- investigate how we can leverage AXIOM to implement an XML binding for SDO (independent of the web service binding)
- JMS binding
Data Access Service
- complete the transition to SDO2
DAS integrated into BigBank sample
- best-practice DAS sample (stand-alone and SCA-integrated)
- datasource definition in config file
- tools support - export metadata - return the SDO Types and/or write an XML file that contains the types created from the config + resultSetMetadata
SDO
- code generator improvements to support SCA usage
- model registration/config mechanism
- update project overview documentation
Extensibility
- support contribution of a new binding (I'm thinking about a sample HTTP binding to illustrate that)
- support contribution of a new component type (Ant's sample Javascript component type)
Admin
- just doc or basic tools (maven plugin?) to install/uninstall a subsystem and module component
- just doc or basic tools to start/stop a subsystem and module component
- wiring, configuration of module component properties require editing SCDL file and bouncing the subsystem
- simple monitoring/logging
Target environments
- JDK 5.0
- Tomcat
- J2SE
Samples
- We need samples for most of the items in this list to illustrate how various user roles will use Tuscany (app. developer, assembler, deployer-admin, system-developer who wants to extend or integrate with Tuscany) and help drive all this work from concrete scenarios.
Longer Term Roadmap
This is TBD. I'll initiate a discussion on the longer term roadmap on the tuscany-dev list shortly.