2. Release Notes
Version 1.2.0_SP1
Bug
- GDS-275 - Tide: simple arrays are not merged.
- GDS-294 - Gas3 generates unecessary empty methods when a class implements an interface but the implementation of this interface is in a parent class.
- GDS-295 - interfaceBase.gsp doesn't correctly print the AS3 package name for Interfaces.
- GDS-301 - Tide: conversationPropagation header not reset correctly after first remote call.
Version 1.2.0_GA
New Feature
- 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
Improvement
- 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
Bug
- 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 does not 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
Version 1.2.0_RC1
New Feature
- GDS-177 - Tide: Spring provider
- GDS-191 - Tide: EJB provider
- GDS-246 - Integration with GlassFish security
- GDS-247 - Integration with TopLink Essentials JPA provider
- GDS-250 - Automatic re-connect with Gravity if IP changes or server restarts
Improvement
- GDS-210 - Tide: Javadoc and Asdoc API is not created for Tide classes
- GDS-218 - Gas3 should issue an error when it encounters unsupported inner classes
- GDS-220 - ServiceExceptionHandlers should handle exceptions logging, instead of AMF3MessageProcessor
- GDS-227 - Add the possibility to plug in Externalizers at runtime (GraniteConfig)
- GDS-229 - Throw a WebcompilerException instead of logging only for MXML compilation errors
- GDS-231 - externalizer configuration: annotatedwith should have precedence over instanceof
- GDS-235 - gravity embedded activemq config
- GDS-238 - Tide: ability to disable remote sync for context variables outjected by client components
- GDS-239 - Tide: ability to disable sync for specific server variables
- GDS-245 - Tide: remove remaining dependencies on Hibernate jars
- GDS-248 - Tide: support for Seam 2.1.0
Bug
- GDS-209 - Tide: default generated get uid() function does not use the actual qualified name of the current object
- GDS-212 - org.granite.logging.Logger does not show correct lines
- GDS-213 - XML deserialization is broken; need a standard String -> w3c Document converter
- GDS-219 - Javadoc (Ant build) does not work with Eclipse 3.4+
- GDS-223 - Ant build is missing a copy into granite.jar
- GDS-224 - Gravity (Tomcat): a NullPointerException is thrown when the request in CometEventImpl is null
- GDS-225 - Gravity implementation for Jetty 6 is broken
- GDS-226 - Gas3 Ant task does not set parent classloader when creating its AntClassLoader
- GDS-228 - Enum.as equals does not work
- GDS-230 - Binding 2 collections to view leads to endless loop
- GDS-232 - Problem with asynchronous calls in session bean
- GDS-236 - Tide: dirty checking of entities is not always correct
- GDS-237 - Tide: paged collection does not track and dispatch entity updates
- GDS-240 - Tide: incorrect injection of session scoped components into conversation components
- GDS-241 - TextMessage objects in Gravity
- GDS-242 - ActiveMQServiceAdapter configuration should use '/' delimiters instead of '.' delimiters
- GDS-243 - @ExternalizedProperty should write field value (to fix mx.utils.ObjectUtil.copy method issue)
- GDS-251 - Tide: incorrect tracking during initialization, NPE with PagedCollection
- GDS-252 - Gravity (Tomcat): implementation is broken on heavy load and may cause unexpected subscription removals
Version 1.1.0_GA
Improvement
- GDS-185 - Tide: enable remote validation for entity properties
- GDS-187 - Tide: enable instantiation of non-existing target observers
- GDS-192 - Enhance @RemoteDestination with Spring services
- GDS-195 - Tide: too many results requested in some cases
- GDS-208 - Add a public static valueOf(name:String) function to generated AS3 enums
Task
- GDS-205 - Compile all SWC/SWF with Flex 2 Hotfix3 SDK
Bug
- GDS-157 - JMS adapter throws exception inside of jboss 4.2.2. This method is not applicable inside the application server. See the J2EE spec, e.g. J2EE1.4 Section 6.6
- GDS-179 - restoreContext fails for Outjected object (not a Seam component)
- GDS-180 - TideInterceptor for Seam throws a null pointer exception, when invoked on a component that is observing a start up event
- GDS-181 - GDS-173 has other problem about generic type
- GDS-182 - Custom granite-config.xml should be optional
- GDS-183 - Tide: component not created in the conversation context
- GDS-184 - Gas3 code generation fails outside of Eclipse
- GDS-186 - Tide: context destruction triggers reinitialization events
- GDS-188 - Tide: incorrect dispatching of events in conversations
- GDS-190 - java.util.Locale serialization is broken
- GDS-193 - Tide: incorrect merge of collections having same content
- GDS-196 - Tide: context not properly cleaned
- GDS-197 - Tide: outjected variables retrieved in incorrect scope
- GDS-198 - Authentication credentials differ between service calls
- GDS-199 - A warning is generated when writing a collection to the amf3-stream if JMS sends a message to gravity
- GDS-200 - Tide: incorrect merge for read-only properties
- GDS-201 - GAS generation - failure cause of Groovy exception
- GDS-202 - GraniteDS trying to deserialize enum on the Java side through creating new instance of enum (not allowed in Java)
- GDS-203 - Tide: Asynchronous impl does not work with Seam 2.0.3
- GDS-204 - Tide: Granite context not initialized for asynchronous thread
- GDS-207 - Incorrect cleanup of the gravity thread (interceptor.after not called)
Version 1.1.0_RC4
New Feature
- GDS-169 - Add @RemoteDestination support for POJO services
- GDS-178 - Builder: add granite nature should trigger a configuration wizard
Improvement
- GDS-142 - Use a two-phase writing method when generating files (first in memory, then to output file)
- GDS-143 - Tide: improve client entity caching in context
- GDS-144 - Tide: notify client components before they are destroyed
- GDS-151 - Add initial context parameters support in EJB factories
- GDS-155 - Tide: remove dependency on Seam for paged collection
- GDS-156 - Improve properties handling for services-config.xml files
- GDS-164 - Tide: improve and simplify security integration
- GDS-167 - Tide: cleanup of identity/security
- GDS-171 - The GDS Eclipse builder should reload templates whenever they are modified
- GDS-172 - Builder should support dependent Granite project so classes that extend classes from other projects are correctly generated
Task
- GDS-152 - Tide: rename internal variables of context with a meta prefix to avoid naming conflicts
- GDS-162 - Remove JDOM dependency
- GDS-163 - Remove commons-beanutils dependency
- GDS-165 - Make log4j dependency optional
- GDS-168 - Tide: split the project in technology-specific subpackages
Bug
- GDS-134 - Stateful session beans are cached in application context and should be in session cache
- GDS-141 - entity with Embedded/compound key are not being generated with a compound id field
- GDS-145 - Tide: context requests too many server expressions evaluations
- GDS-146 - Tide: concurrent access error when trying to synchronize context with stateful EJB 3 Seam component
- GDS-147 - Invalid child element type defined for exceptionconverters in granite-config.dtd
- GDS-148 - Tide: incorrect cleaning of context after remote fault
- GDS-149 - not use override in subclass' uid and use parent's private attribute _id directly
- GDS-150 - Gas3 cannot generate uid incorrectly when class hierarchy higher 2 levels
- GDS-153 - Tide: fixed lifecycle of context destruction
- GDS-154 - Tide: component call swallows exceptions
- GDS-158 - Tide: premature removal of asynchronous event listeners
- GDS-159 - Tide: stack overflow in remote asynchronous calls
- GDS-160 - Tide: context does not detect all changes on managed collections/entities
- GDS-161 - Tide: context events not correctly dispatched in conversation contexts
- GDS-166 - Eclipse Builder does not generate anything
- GDS-173 - throws NoConverterFoundException when the enity use generic type
- GDS-175 - Builder: Class loading errors are not correctly reported
Version 1.1.0_RC3
New Feature
- GDS-117 - Tide: AS3 client exception handlers
- GDS-119 - Tide: Management of Seam events synchronous and asynchronous with Gravity
- GDS-120 - Tide: Deeper integration with Seam Query framework component and support for paged collections
- GDS-139 - Tide: implement automatic lazy loading of collections
Improvement
- GDS-125 - tide.seam.Context expects type Seam in constructor, which is not necessary
- GDS-135 - Integrate Tide managed entities with LCDS [Managed] annotation to simplify the Gas3 templates
- GDS-137 - Tide: implement merging of maps in Context
- GDS-138 - Refactor Gas3 for Granite Eclipse Builder and future extendability
- GDS-140 - Tide: Filtering of target components
Task
- GDS-115 - Use mx.logging instead of trace in all AS3 components
Bug
- GDS-116 - Tide: Incorrect destruction of finished conversation contexts
- GDS-118 - Tide: NaN numbers incorrectly managed in context merge
- GDS-122 - Authentication does not work with Gravity
- GDS-124 - Typo in bean.gsp (interfaceProperties instead of interfacesProperties)
- GDS-126 - Tide: Merge of collections in context loses order
- GDS-127 - Improved saving of entity values before sending to server
- GDS-128 - Tide: request wrapper not correctly cleaned during consecutive messages in the same http request
- GDS-129 - Tide: Asynchronous impl depends on deprecated Seam 2.0.0 API
- GDS-130 - Tide: remove messages dependency on JSF FacesContext/Locale
- GDS-131 - Tide: missing update of id for new entities
- GDS-132 - Error when deserializing RemotingMessage
- GDS-133 - DefaultMethodMatcher does not find some methods with complex generic types
- GDS-134 - Stateful session beans are cached in application context and should be in session cache
- GDS-136 - Incorrect management of context variables in conversation scope
Version 1.1.0_RC2
New Feature
- GDS-112 - Create a servlet-based compiler servlet for MXML/AS3 deployed code
Improvement
- GDS-106 - Use Spring security instead of the deprecated Acegi security; keeping Acegi for compatibility
- GDS-108 - Gas3 should have an option for custom GenerationControllers
- GDS-109 - Working with SortedSet fails
- GDS-110 - Generate Entities on separated source folder
- GDS-123 - Enabled message interceptors in Gravity
Task
- GDS-111 - Update to Groovy-1.5.6 (Gas3)
Bug
- GDS-105 - Gas3 AS3TypeFactory (formerly Java2AS3) class loading should try to use the default classloader before the Ant ones
- GDS-107 - Gas3 does not automatically create directories for generated classes
- GDS-113 - "Could not instantiate type" because of abstract inheritance tree
- GDS-114 - Incorrect adapter cache in gravity messages send from server
- GDS-121 - SubcriptionId is not stored in Consumer.as (unsubscription cannot work)
Version 1.1.0_RC1
New Feature
- GDS-54 - Provide a way to dynamically add destinations to applications using Granite Data Services
- GDS-97 - GraniteDS Tide client data management framework
Improvement
- 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
Task
- GDS-98 - Upgrade Seam example to use Granite Tide
Bug
- 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 collection throws exception "could not reassociate uninitialized transient collection"
