Granite Data Services 1.1.0 RC1 is available for download on Sourceforge. This new release brings many new features, improvements and bug fixes.
One of the salient improvements in this release is a tighter Granite/Seam integration (named Tide, after another [bad?] wordplay between Granite - telluric - and Gravity). Tide supports almost all Seam features:
- Easy-to-use remoting for Seam components,
- Automatic synchronization between the Flex client context and the Seam server context,
- Improved conversation management,
- Integration with component bijection,
- Integration with server side validation,
- Integration between Seam security and RemoteObject security.
Another new feature in this RC1 is automated configuration of several aspects of granite-config.xml and services-config.xml. You may now have a granite-config.xml file as follow:
<granite-config scan="true">
<!-- Optionnal, security settings -->
<security type="..."/>
</granite-config>
With this config, GDS will automatically scan your classpath for Externalizers and ClassGetters, using them when suitable objects are encountered at (de)serialization time (for example, object annotated with @Entity will be externalized by the HibernateExternalizer).
Remoting destinations are also auto discovered when scan is enabled provided that you have annotated your service class with a special @RemoteDestination annotation.
Gas3 has been completely revamped and brings new support for Java enums (inner class enum declarations are supported).
Additionally, there is a completely new ActionScript3 / Java type conversions stack: GDS now correctly coerces any type of AS3 collections to Java ones (provided that component types are compatible).
Here is the complete release note for this RC1 (see also GDS Jira):
New features:
- [GDS-54] - Provide a way to dynamically add destinations to applications using Granite Data Services.
- [GDS-97] - GraniteDS Tide client data management framework.
- [GDS-89] - AS3 <-> Java conversions mechanism and service methods finding should be improved.
- [GDS-94] - Improve definition of target and method arguments in service invokers.
- [GDS-95] - Keep messages on Seam authentication errors.
- [GDS-96] - New Java2As3 allowing use of ListCollectionView in collection variables instead of ArrayCollection.
- [GDS-100] - Add support for read only, server side computed property in Externalizers.
- [GDS-101] - Provide a way to dynamically discover Externalizers.
- [GDS-102] - Rewrite Gas3 in order to make possible Eclipse builders or Annotation processors.
- [GDS-104] - Refactor enum generation and add support for inner enums.
- [GDS-98] - Upgrade Seam example to use Granite Tide.
- [GDS-90] - Build file references "asdoc.exe" (with the exe), instead of just "asdoc".
- [GDS-91] - Initialized persistent collections on Flex side are deserialized as hashset/hashmap instead of persistentset/persistentmap.
- [GDS-92] - HibernateProxy ids are not converted to compatible target type.
- [GDS-93] - ErrorMessage does not keep extendedData for SecurityServiceException.
- [GDS-103]- Saving deserialized Hibernate entity with uninitialized collectionthrows exception "could not reassociate uninitialized transientcollection".
Best regards,
Franck.