Granite Data Services 1.2.0 GA released
- Hi all,
Granite Data Services 1.2.0 GA is out. You may download it, as usual, on Sourceforge here.
This is the first GraniteDS release compiled against the new Flex 3 SDK ("Version 3.2.0 build 3958", to be precise). As announced in previous release notes, Flex 2 isn't supported anymore: you may recompile everything against Flex 2, it should work, but you won't be able to use specific Flex 3 annotations support required by Tide and we won't fix Flex 2 specific issues anymore.
Here is some other highlights about this release (some new features were already available in 1.2.0_RC1):
- The Gravity implementation for Tomcat with APR/NIO has been completely rewritten since 1.1 and is now a lot more stable. Additionally there is now Gravity support for JBossWeb, which is a modified Tomcat included in JBoss 5.0.0 GA.
- We are starting to integrate new JPA providers and application servers. GDS 1.2 comes with a specific integration for TopLink (used in GlassFish V2, Sun AS and Oracle AS) and EclipseLink (RI for JPA 2.0 used in GlassFish V3). It also brings a specific security service for GlassFish (only a slightly modified Tomcat security service).
- Tide for Seam now fully supports Seam 2.1 and the two example projects now run with Seam 2.1.0.SP1. That allows to remove the dependency on JSF and brings a cleaner deployment. It is also fully integrated with Seam 2.1 authorizations and it is now possible to use role-based and permission-based security on the Flex client to make some components conditionally visible or to check for access rights before trying to issue service calls.
- Tide for Spring and Tide for EJB have been improved and should be fullyfunctional on all supported combinations of application servers/dataaccess providers. In particular Tide/Spring now works correctly withplain Hibernate, without JPA and without JTA and can use the SessionAPI (but still requires the use of annotations). Both integrationsprovide zero-conf remoting, entity caching, transparent lazy loading ofcollections and data paging. They can also be completely integratedwith the Tide client framework.
- The WebCompiler now includes the Flex 3.2 SDK and is able to compile code for Flash 10.
- Maven artifacts are now available on java.net. The final 1.2.0 GA release isn't uploaded yet, but it should be available very soon.
Important migration tip: you should regenerate all your ***Base.as beans with the new Gas3 Ant task or the new GraniteDS builder!
Here is the complete release note for this 1.2.0 GA (see also GDS Jira):
- [GDS-266] - Tide: integration with server-side Seam authorization
- [GDS-267] - Integration with EclipseLink JPA provider
- [GDS-279] - Gravity Tomcat servlet does not deploy on Jboss 5.0.0.GA
- [GDS-254] - Add maven POM files for all GDS modules and publish artifacts to a public repository
- [GDS-257] - Gas3: add more debug information.
- [GDS-258] - Tide: add [Version] tag on optimistic locking property getter in gas3 template
- [GDS-260] - Tide: ability to force a server conversationId from a client conversation
- [GDS-262] - Tide: better handling of client conversations
- [GDS-264] - Tide: support for TideResponders in remote calls instead of defining resultHandler and faultHandler
- [GDS-265] - Tide: allow static injection of properties in client components
- [GDS-270] - Tide: use of qualified class name + uid as a key in the entity cache
- [GDS-277] - Tide: LOGIN event not dispatched on browser refresh when user already logged
- [GDS-280] - Tide: server-agnostic operation
- [GDS-249] - Gas3 never regenerates Enums
- [GDS-253] - Copy of ErrorMessages loses extendedData
- [GDS-256] - Gas3 template compilation errors does not show source code (NPE)
- [GDS-259] - ContextEventListener doesn't catch first raised event
- [GDS-261] - Tide: merge of persistent maps is not correct
- [GDS-268] - Tide: lazy loading requires JTA transactions and does not work in simple Tomcat deployments
- [GDS-269] - Tide: stack overflow in meta_getReference for complex graphs of entities
- [GDS-274] - Gas3 does not generate correct code for interfaces extending other interfaces.
- [GDS-275] - Tide: simple arrays are not merged
- [GDS-276] - Tide: lazy loading does not work correctly with complex entity graphs
- [GDS-278] - Tide: outjected variables evaluated in incorrect scope in some cases
- [GDS-281] - Tide: updates on component collection properties are not merged
- [GDS-282] - Tide: entity merge does not use cache in some cases
- [GDS-284] - Tide: restore context should not get previous value when incoming value is an unsaved entity
- [GDS-285] - Tide: remote observers are lost after logout/relogin
It is likely that we are going to jump directly from the 1.2 release to a 2.0 release: the project is somehow getting messy and we are going to reorganize it. Here is some future plans:
- Suppress all specific persistence SWCs (granite-eclipselink.swc, granite-hibernate.swc, granite-tide-eclipselink.swc, granite-tide-hibernate.swc, granite-tide-toplink.swc, granite-toplink.swc!) and integrate generic persistence classes in the core granite.swc bundle. Because we are going to add OpenJPA (WebLogic Kodo) and maybe JPOX/DataNucleus, this simplification seems to be necessary in order to avoid SWCs proliferation.
- Integrate the Gas3 Ant plugin with the GraniteDS builder in a same jar.
- Build a release with only one file (graniteds-***.zip) containing built packages, source code, API documentation, tools and examples.