You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sk...@apache.org on 2009/03/01 15:05:23 UTC

svn commit: r749034 - /myfaces/orchestra/trunk/core/RELEASE-NOTES.txt

Author: skitching
Date: Sun Mar  1 14:05:22 2009
New Revision: 749034

URL: http://svn.apache.org/viewvc?rev=749034&view=rev
Log:
Update release notes for release 1.3.1

Modified:
    myfaces/orchestra/trunk/core/RELEASE-NOTES.txt

Modified: myfaces/orchestra/trunk/core/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/RELEASE-NOTES.txt?rev=749034&r1=749033&r2=749034&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/RELEASE-NOTES.txt (original)
+++ myfaces/orchestra/trunk/core/RELEASE-NOTES.txt Sun Mar  1 14:05:22 2009
@@ -20,33 +20,31 @@
 $Id$
 
 
-= 1.3 =
+= 1.3.1 =
+
+== Overview ==
+
+This release is a bugfix release only (and the fixed bugs are not particularly severe).
+Upgrading from 1.3 is necessary only if one of these specific bugfixes are required.
+
+One minor new feature is introduced : the ability to set the ConversationContext timeout.
+See the "New Features" section for details.
 
 == Backwards Compatibility ==
 
-This release is backwards-compatible with version 1.2 for normal use of Orchestra, but does make
-some changes in core classes that will affect people who have modified the internal
-implementation of Orchestra.
-
-* ConversationManager.getConversationContext(Long) was previously protected and is now public. This
-  is theoretically a binary-incompatible change as existing subclasses that override the method using
-  scope of protected will now fail to compile. However it is extremely unlikely that anyone has done this.  
-  Commit: r702065 
+This release is backwards-compatible with version 1.3.
 
 == Bugfixes
 
- * ORCHESTRA-29: access-scoped conversations always get discarded during ajax requests from the NetAdvantage
-   ajax library
+* ORCHESTRA-30: viewcontroller framework does not call initView again when conversation containing ViewController bean is invalidated (ie ViewController bean is deleted). This patch doesn't actually make that happen, but it does make it possible for a backing bean to force the viewcontroller framework to do so (by forcing creation of a new ViewRoot instance).
+
+* ORCHESTRA-32: NullPointerException when deserializing an HttpSession containing a ConversationManager instance.
+
+* ORCHESTRA-34: NullPointerException on timeout of ConversationContext. The ConversationWiperThread does not run inside a request, and therefore had no FrameworkAdapter, but removeAndInvalidateConversationContext tries to check the conversationContext query param.
 
- * Fix potential problem on JSF1.2 where ViewHandler methods that are new to JSF1.2 would not be delegated
-   to the underlying implementation (r697803)
+* ORCHESTRA-35: In some containers (eg OC4J), ConversationManager is not removed from ConversationWiperThread on session timeout. Thanks to Steve Ronderos for the bugreport.
 
- * Don't trigger creation of a Session if one does not yet exist. In particular, this fixes problems with
-   Weblets when cookies are disabled; with that combination a separate Session was being created for each
-   weblet request. See r687072.
- 
- * Fix SpringBasicFrameworkAdapter.getBean(String), which threw an exception if the bean did not exist
-   instead of simply returning null.
+* ORCHESTRA-36: Improve error message when dependency injection is misconfigured. Thanks to Kito Mann for the suggestion.
 
 == Known Issues
 
@@ -55,82 +53,11 @@
 
 == Major Changes
 
-=== Access Scoped Conversations ===
-
-The check for unused access-scoped conversations now occurs only at the end of the render phase for a *new* view;
-previously the check was performed at the end of every render phase.
-
-The new approach works better with ajax calls, where only part of a page is rendered and therefore
-conversations may not be accessed for a particular ajax call even though they are still in use by
-the overall page.
-
-This also fixes a bug related to validation; when validation failed for a page and a conversation
-was only ever accessed via the "value" EL expression for an input component, then the converation
-would be discarded because after validation failure input components just render their cached
-submittedValue rather than evaluate their EL expressions. Delaying purging of access-scoped
-conversations until after render of a new view avoids this issue. 
-
-This does introduce some possible behavioural changes. Previously if a conversation was only accessed
-by components which can be toggled between rendered and not-rendered then when the components were
-not rendered the conversation would be discarded; ie hiding/showing a component would reset it.
-Now the conversation is preserved, ie hiding/showing a component does not reset its state.
-
-=== Invocation of Beans in Invalidated Conversations Now Detected ===
-
-Previously if a non-scoped-proxy referenced a bean in a conversation that had been deleted, then
-invoking that proxy would not report an error - though things would probably not work, as all the
-other beans in the conversation have been removed. Now an IllegalStateException gets thrown if this
-ever happens. It is pretty difficult to actually get into this situation without using the
-Conversation.bind(Object) method (which was added in the 1.3 release) so this is unlikely to affect
-existing code. And if it does, that code was probably broken anyway. 
-
+None.
 
 == New Features
 
-=== Binding of arbitrary beans ===
-
-Method Conversation.bind(Object) has been added to provide the ability to associate an arbitrary
-bean with a specific conversation. Method ConversationUtils.bindToCurrent(Object) is a convenient
-wrapper for this method.
-
-This is particularly useful when a conversation-scoped backing bean wants to provide a getter
-method for an EL expression to access a persistent object. By using the bind method, calls by
-the EL expression into the persistent object will set up the conversation (and therefore the
-persistence context) that is needed to walk lazy relations for that object.
-
-=== ViewControllerManager instance now available ===
-
-Orchestra uses a singleton ViewControllerManager object to invoke "lifecycle" methods on backing
-beans (which may implement the ViewController interface, or use naming-conventions).
-
-Previously the ViewControllerManager instance could not be retrieved by user code; now it can be
-accessed via new class ViewControllerManagerFactory.
-
-== ConversationContext Tracks Child Contexts ===
-
-In version 1.2, the ability for a ConversationContext to have a "parent" context was added.
-However the conversation timeout logic was not modified; a context A (and conversations in the
-context) would still time out using the normal settings even when there was a context B that
-referenced A as its parent.
-
-When a context A has one or more child contexts (ie contexts that reference it as their parent),
-then it implies that eventually the user will return to it, so it makes sense to suppress timeouts
-for a context (and all its conversations) when the context has one or more child contexts. This has
-been implemented for version 1.3. To do this, a context needs to *know* whether it has children, so
-the previously one-way relation (child->parent) is now a two-way relation. As a result, the following
-methods have been added to ConversationContext: 
- * addChild, removeChild, hasChildren.
- 
-In addition, method "clear" was renamed to "invalidate" (although a clear method exists that
-delegates to invalidate for backwards compatibility).
-
-See r674857.
-
-== Improved Filter Control ===
-
-All of the ServletFilters provided by Orchestra now take init parameters named "excludePrefix" and
-"excludeSuffix", to allow fine-tuning of which urls they apply to. This is useful due to the very
-primitive features available in the standard web.xml filter-mapping. 
+* Enhancement ORCHESTRA-33 allows the user to define a bean whose name is the fully-qualified name of the ConversationContextFactory class. An instance of this bean will then be created at startup, and its createConversationContext method used to create new ConversationContext instances configured in any desired way. To simply set the timeout, this bean can be configured as an instance of the default ConversationContextFactoryImpl class, and the timeout property set via normal property injection to any desired value.
 
 == History
 
@@ -138,3 +65,4 @@
 Branched for 1.1 release on r634925
 Branched for 1.2 release on r671173
 Branched for 1.3 release on r707462
+Branched for 1.3.1 release on r??