5 Replies Latest reply on May 21, 2009 5:28 PM by jguglielmin

    Nested Conversation with IceFaces and RichFaces

    lukebk
      Dear all,



        I've setup two pure Seam/JSF projects (one using ICEFaces, the other using RichFaces) in order



        to test nested conversation. In particular i wanted to ensure that



         1. Start a new conversation (C1)



         2. Start a new nested conversation (N1, parent\=C1)



         3. close nested conversation



         4. ensure that I'm back to C1, parent \= null




      The same identical code works with RichFaces but fails with ICEFaces (at step 4 I found myself in a new conversation)







      I've setup two different projects (the ZIPs are without jars to preseve download space but they have been built with SEAM 2.1.1) in order to test the issue you can download the projects here:

      http://yuza.altervista.org/nested_bug.zip


        * Use [http://127.0.0.1:8080/nested_RichF/index.seam] for the RichFaces sample;



        * Use [http://127.0.0.1:8080/nested_IceF/index.seam] for the ICEFaces sample.
        • 1. Re: Nested Conversation with IceFaces and RichFaces
          jguglielmin

          Since most of the test applications do not require that particular manner of using nested conversations (with redirection and s links), it wasn't one that was tested.  If you use the following
          <s:link action="startNested" value="begin child conv using s link and propagation tag"
                  propagation="nest"/>

          Then your conversations will react as normal Seam/jsf.  ICEfaces has it's own redirection process (to maximize effectiveness of dom-diff).
          If it's really important to you to have the conversations nested in the original manner using pages.xml then please open an ICEfaces jira. 

          • 2. Re: Nested Conversation with IceFaces and RichFaces
            jguglielmin

            can track this at ICEfaces jira 4512

            • 3. Re: Nested Conversation with IceFaces and RichFaces
              lukebk

              Hi,


              first of all thanks for your reply.


              I've tried to use the workaround you've suggested without luck (or I didn't really understand your suggestions)


              I've canceled the propagation rules from pages.xml and used the tag propagation:



              <s:link action="startParent" propagation="join" value="Start Parent Conversation" />
              <s:link action="startNested" propagation="nest" value="Begin Child Conversation" />
              <s:link action="cancelNested" propagation="end" value="End Child Conversation" />
              


              In this way propagation doesn't work with neither icefaces nor richfaces


              Using


              <h:commandButton value="End Child Conversation" action="cancelNested"  />
              
              and ending the conversation in the pages.xml with
              
              [...]
               <navigation>
                          <rule if-outcome="cancelNested">
                          <end-conversation before-redirect="true"/>
                              <redirect view-id="/first.xhtml" />
                          </rule>
                      </navigation>
              [...]
              
              
              




              works for richfaces but still doesn't with icefaces.


              Again I tried to use pojos and annotation and again I've noticed the same behaviour (works only with richFaces).
              You can download the others example here:


              Still nested bugs


              An example with icefaces and nested conversation would be really usefull


              Thanks,
              Luca

              • 4. Re: Nested Conversation with IceFaces and RichFaces
                lukebk

                I've take a look to the jiira report bug.


                The problem we've noticed is that seam/icefaces starts the nested conversation but isn't able to retrieve the parent's one!


                This is the behavior:



                id: 1
                ->Start parent conversation
                id:2 Long running: Yes
                ->Start nested
                id:3 Long:Yes, Nested:yes Parent:2
                ->End nested




                With richfaces we go back to conversation 2
                with icefaces a new conversation with id 4 is created

                • 5. Re: Nested Conversation with IceFaces and RichFaces
                  jguglielmin

                  I don't have the time right now to go through any other examples, but perhaps you might want to look at the example attached to the jira (shows the s link tag with working nested conversation begun). It is a modified version of your original one.  I didn't get the same behaviour that you are specifying at all.  (the redirection was done before the nested conversation could be registered with Seam, so that is what the jira is really about).  Further comments really should go on the jira though.