The 0.5.1 release is our largest release to-date in terms of new features. Fabric3 now supports a majority of the SCA 1.0 specifications (Assembly, Policy, Java, and JEE Web Components) as well as a significant number of value-added features.
The themes of the 0.5.1 release are:
- Expanded SCA support
- Improved bindings
- Enhanced persistence support using JPA and Hibernate
- Web application integration
- Integration scenarios and large document streaming
- Improved application and extension modularity
- Better error handling, reporting, and diagnostics
New features by functional area are:
- Advanced SCA programming model and asynchronous features
- Support for callbacks
- Conversation propagation across multiple components
- Conversational callbacks
- Conversation expiration using @ConversationalAttributes
- @EndConversation on callback interfaces
- Improved conversational services implementation
- JPA capabilities
- Added support for zero-code data access objects. DAOs can now be defined using Java interfaces. Fabric3 will provide implementations of operations defined by the DAOs based on JPA at runtime. This intended to remove a significant amount of boilerplate persistence code from applications.
- EntityManager injection on component implementations using @PersistenceContext
- Support for transactional-scoped EntityManagers. Fabric3 now provides transparent transaction management with JPA for both in-container and out-of-container operation. Application code can use standard SCA transaction policies with JPA in a portable way across all supported runtime environments.
- Support for EntityManagers associated with long-running persistence contexts. Long running persistence contexts are associated with conversational-scoped components and transparently managed by Fabric3. This simplifies application code as the runtime manages detachment/reattachment and transaction association transparently.
- Classloader isolation for Hibernate. There have been issues running Hibernate in highly modular environments due to classloader assumptions when generating proxies for entity relationships. Fabric3 now solves this issue in a way that is transparent to application code.
- Web application components
- Asssemble and wire web applications to SCA services
- Support for SCA @Reference injection on servlets
- Support for packaging contributions as WARs
- Support for provisioning and activating WAR contributions in a domain
- Web Services binding
- JAXB databinding for complex data types now supported
- Support for security authorization policies
- Better support for WS-Security and SCA security policies
- JMS binding
- Improved support for transactional delivery
- JAXB databinding for complex data types now supported
- Support for additional configuration parameters
- OracleAQ binding
- Support for XA transactions
- JMX management
- FTP support
- Fabric3 now provides FTP capability to stream data via FTP. This is particularly useful in integration scenarios involving large documents and data sets.
- Configurable embedded FTP server
- FTP binding for sending and receiving data from services
- Diagnostics and developer experience
- Improved introspection and validation framework
- Collated contribution error and warning reporting. Contribution errors and warnings are now detected and reported together as opposed to throwing exceptions. This is inteded to speed development and testing as all errors are reported upfront instead of individually.
- Data source configuration has been improved in the Maven and standalone runtimes. Multiple data sources can now be configured per runtime. Also, configuration is has been simplified as it can now be done through user extensions as opposed to an external systemConfig file.
- Log-level annotations. In addition to @LogLevel, specific log level annotations including @Severe and @Warning have been added to provide a mechanism for compile-time checking.
- Specific scope annotations. Fabric3 now supports specific annotations for component scopes as a type-safe alternative to the standard SCA @Scope annotation.
- Numerous validation checks have been added for composites and Java-based components.
- Monitor message formatting for JDK-based logging can now be configured.
- Log message formatting in the standalone runtime has been made more readable.
- Improved modularity
- Full classloader isolation for application and extension contributions in the Standalone and Maven runtimes.
- Distributed domains
- The federated runtimes (controller and participant) have been released as part of this beta.
- Zero-configuration HTTP contribution provisioning. Contribution archives can now be provisioned to runtimes hosted on remote machines via HTTP with zero configuration.
- Extension infrastructure
- User-defined extensions are now supported.
- Tutorials
- A new BigBank tutorial has been added which demonstrates a complete real-world application and SCA best-practices. BigBank shows how to integrate SCA with web applications. In addition, it demonstrates and the use of SCA transaction policies with JPA for persistence.
- Miscellaneous
- Wire reprovisioning and reference reinjection for dynamic wiring
- Support for XML-based contributions. Contributions can now be created and deployed as XML documents. This allows components to be reused more easily, as an XML contribution can be written that imports third-party libraries and configures components.
- Added an H2 database extension.
- Support for @Monitor in constructors
- Support for @Resource injection on system components
- Atomic provisioning command updates
- Bug fixes
- There have been numerous bug fixes. See the Fabric3 JIRA for specifics: http://jira.codehaus.org/browse/FABRICTHREE/fixforversion/13998
Labels
(None)
