Hi, On Tue, Mar 18, 2008 at 9:38 AM, Matthias Wessendorf <[EMAIL PROTECTED]> wrote: > Hi, > > > On Tue, Mar 18, 2008 at 7:01 AM, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> wrote: > > Hi Stephan, > > > > I'll need to ask Matthias to update his example ;-) > > that is not mine. Mine is kind of up-to-date (facesgoodies)
it is mario's project: http://code.google.com/p/myfaces-orchestra-goodies/ > > -M > > > > > > > Everything looks ok in the logs. It just looks to me like your page is > > not actually referencing anything from your controller bean. > > > > Orchestra is assuming that in page regUserDirectPlanningController, > > there is something that pulls data from the > > regUserDirectPlanningController class during the render phase. Is this > > not the case for your page? I would expect that somewhere in your page > > you have a component that accesses > > #{regUserDirectPlanningController.reservationData} > > or some other property on your controller bean. That access is how > > Orchestra knows that the bean is still in use. > > > > A "pure controller" bean, which handles postbacks but does not serve any > > resources at all during the render phase is possible, though I would not > > think it common. If your class is indeed a "pure controller" then you > > can add a dummy component to the page, eg > > <h:outputText rendered="#{regUserDirectPlanningController.class == > > null}"/> > > Of course this rendered expression will never be true, so this will not > > affect the page output in any way, but just evaluating the rendered > > expression will tell Orchestra that the bean is still in use. > > > > However: do the beans > > regUserDirectPlanningController > > reservationJSF > > simpleOrChainSelectionJSF > > etc > > all have the same lifetime, ie they should all be discarded together? If > > so, then what you should do is add attribute > > conversationName="regUser" > > (or whatever name you want to choose) to each of the Spring bean > > declarations. Then they all live in the same conversation. One effect is > > that a reference to *any* of those beans will keep *all* of them alive > > (because the common conversation is in use). Only when a render phase > > accesses none of them will the conversation be discarded. > > > > Regards, Simon > > > > > > Stephan Frai schrieb: > > > > > > > Hello Simon, > > > > > > thank you for answering. > > > > > > I saw the old "flash" example here: > > > http://myfaces-orchestra-goodies.googlecode.com/svn/trunk > > > > > > After I turned on logging I got the following logger output: > > > > > > 18 Mrz 2008 11:09:03,156 DEBUG [n.jsf.AccessScopePhaseListener: 161] > > > Clearing access-scoped conversation regUserDirectPlanningController > after > > > rendering view /pages/ruplanning/regUserDirectPlanning.xhtml > > > 18 Mrz 2008 11:09:03,171 DEBUG [stra.conversation.Conversation: 288] > destroy > > > conversation:regUserDirectPlanningController > > > 18 Mrz 2008 11:09:03,171 DEBUG [n.jsf.AccessScopePhaseListener: 152] Not > > > clearing accessed conversation reservationFormBean after rendering view > > > /pages/ruplanning/regUserDirectPlanning.xhtml > > > 18 Mrz 2008 11:09:03,171 DEBUG [n.jsf.AccessScopePhaseListener: 161] > > > Clearing access-scoped conversation reservationJSF after rendering view > > > /pages/ruplanning/regUserDirectPlanning.xhtml > > > 18 Mrz 2008 11:09:03,171 DEBUG [stra.conversation.Conversation: 288] > destroy > > > conversation:reservationJSF > > > 18 Mrz 2008 11:09:03,171 DEBUG [n.jsf.AccessScopePhaseListener: 152] Not > > > clearing accessed conversation simpleOrChainSelectionJSF after rendering > > > view /pages/ruplanning/regUserDirectPlanning.xhtml > > > 18 Mrz 2008 11:09:03,171 DEBUG [n.jsf.AccessScopePhaseListener: 161] > > > Clearing access-scoped conversation timeChainJSF after rendering view > > > /pages/ruplanning/regUserDirectPlanning.xhtml > > > 18 Mrz 2008 11:09:03,171 DEBUG [stra.conversation.Conversation: 288] > destroy > > > conversation:timeChainJSF > > > 18 Mrz 2008 11:09:03,171 DEBUG [OrchestraFacesContextFactory$1: 129] > Running > > > release > > > 18 Mrz 2008 11:09:03,171 DEBUG [dapter.jsf.JsfFrameworkAdapter: 69] > Ending > > > request > > > > > > > > > 18 Mrz 2008 11:13:15,640 DEBUG [n.jsf.AccessScopePhaseListener: 161] > > > Clearing access-scoped conversation regUserDirectPlanningController > after > > > rendering view /pages/ruplanning/regUserDirectPlanningConfirmation.xhtml > > > 18 Mrz 2008 11:13:15,640 DEBUG [stra.conversation.Conversation: 288] > destroy > > > conversation:regUserDirectPlanningController > > > 18 Mrz 2008 11:13:15,640 DEBUG [n.jsf.AccessScopePhaseListener: 161] > > > Clearing access-scoped conversation reservationFormBean after rendering > view > > > /pages/ruplanning/regUserDirectPlanningConfirmation.xhtml > > > 18 Mrz 2008 11:13:15,640 DEBUG [stra.conversation.Conversation: 288] > destroy > > > conversation:reservationFormBean > > > 18 Mrz 2008 11:13:15,656 DEBUG [n.jsf.AccessScopePhaseListener: 152] Not > > > clearing accessed conversation reservationJSF after rendering view > > > /pages/ruplanning/regUserDirectPlanningConfirmation.xhtml > > > 18 Mrz 2008 11:13:15,656 DEBUG [n.jsf.AccessScopePhaseListener: 161] > > > Clearing access-scoped conversation simpleOrChainSelectionJSF after > > > rendering view /pages/ruplanning/regUserDirectPlanningConfirmation.xhtml > > > 18 Mrz 2008 11:13:15,656 DEBUG [stra.conversation.Conversation: 288] > destroy > > > conversation:simpleOrChainSelectionJSF > > > 18 Mrz 2008 11:13:15,656 DEBUG [OrchestraFacesContextFactory$1: 129] > Running > > > release > > > 18 Mrz 2008 11:13:15,656 DEBUG [dapter.jsf.JsfFrameworkAdapter: 69] > Ending > > > request > > > 18 Mrz 2008 11:13:15,656 DEBUG [OrchestraFacesContextFactory$1: 138] > Release > > > completed > > > > > > > > > As you can see, the converstion is destroyed after every rendered view > of > > > the workflow. > > > Do I have to use the ViewController annotation? > > > > > > > > > Greetings, > > > > > > Stephan > > > > > > > > > -----Ursprüngliche Nachricht----- > > > Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > > Gesendet: Dienstag, 18. März 2008 10:34 > > > An: MyFaces Discussion > > > Betreff: Re: Orchestra beginner question: conversation.flash behaves > like > > > request scope > > > > > > Stephan Frai schrieb: > > > > > >> Hello, > > >> > > >> > > >> > > >> I am new to orchestra and just integrated it into my application. > > >> > > >> Myfaces 1.2.2 > > >> > > >> Hibernate 3.2.5 > > >> > > >> Spring 2.0.4 > > >> > > >> > > >> > > >> I`m using plain Hibernate without JPA, so I took the integration > > >> provided at Google. > > >> > > >> > > >> > > >> Currently I am running into that problem that conversation.flash > > >> behaves like request scope. > > >> > > >> I have a 4 step workflow and one controller bean for that workflow: > > >> > > >> > > >> > > >> <bean id="regUserDirectPlanningController" > > >> class="com.playoli.ruplanning.jsf.RegUserDirectPlanningController" > > >> > > >> scope="conversation.flash" depends-on="reservationJSF"> > > >> > > >> <property name="planningWorkflow" > > >> ref="regUserDirectPlanning"/> > > >> > > >> <property name="reservationData" > ref="reservationFormBean"/> > > >> > > >> <property name="chainData" ref="timeChainJSF"/> > > >> > > >> <property name="reservationConfirmation" > > >> ref="reservationJSF"/> > > >> > > >> <property name="messageFormatter" > ref="jsfMessageFormatter"/> > > >> > > >> <property name="resourceManager" ref="resourceManager"/> > > >> > > >> <!-- > > >> > > >> <property name="calendarJSF" ref="calendarJSF"/> > > >> > > >> --> > > >> > > >> <property name="reservationType" > > >> ref="simpleOrChainSelectionJSF"/> > > >> > > >> <property name="reservationFactory" > > >> ref="reservationBeanFactory"/> > > >> > > >> </bean> > > >> > > >> > > >> > > >> The other beans that are referenced are either Singletons as they are > > >> Business Objects, or they are also conversation scoped as they are > > >> JsfBeans. > > >> > > >> > > >> > > >> My problem is, that for each step in my workflow a new empty > > >> regUserDirectPlanningController is created and i lose the internal > state. > > >> > > >> In debugger I can see that the AOP proxies around the conversation > > >> scoped beans are properly created, so I think it`s kind of an > > >> configuration problem. > > >> > > >> > > >> > > >> Does this problem sound familiar to anyone? > > >> > > >> > > >> > > >> If needed I can provide more detailed infos about configuration. > > >> > > >> > > > You could try enabling debug level for the logging category > > > > > > > "org.apache.myfaces.orchestra.conversation.jsf.OrchestraAccessScopePhaseList > > > ener". > > > > > > This is the class that is responsible for discarding access-scope > > > (formerly called "flash" scope) beans. > > > > > > By the way, the name "flash" is now deprecated; "access" is the > > > preferred term. The old name should still work, but AFAIK all the > > > examples have been updated to the new name. Where did you see the old > one? > > > > > > Regards, Simon > > > > > > > > > > > > > > > > > > > > -- > Matthias Wessendorf > > further stuff: > blog: http://matthiaswessendorf.wordpress.com/ > sessions: http://www.slideshare.net/mwessendorf > mail: matzew-at-apache-dot-org > -- Matthias Wessendorf further stuff: blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf mail: matzew-at-apache-dot-org

