8 Replies Latest reply: Nov 30, 2010 6:21 AM by Nick Belaevski RSS

    Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2

    B Singh Newbie

      Hi,

       

      I have tried to migrate an existing application from Richfaces 3.3.3 JSF 1.2 to Richfaces 4.0.0 M4 with JSF2, and I have encountered the following issues during the build using maven

       

       

      Component/Class Issues:     3.3.3                                         4.0.0.M4
      PushEventListener            - org.ajax4jsf.event                              not found               
      Modifiable                          - org.richfaces.model                        not found
      HtmlComboBox                 -  org.richfaces.component.html                not found
      UIPickList                          - org.richfaces.component                    not found
      SortField2                     - org.richfaces.model                             not found
      TreeNode                      - org.richfaces.model                         org.richfaces.component.UITreeNode
      TreeNodeImpl                 - org.richfaces.model                             not found
      HtmlTree                      - org.richfaces.component.html                not found
      HeaderEncodeStrategy    - org.richfaces.renderkit                         not found
      FormUtil                          - org.richfaces.component.util                 org.richfaces.renderkit.util
      RequestContext            - org.richfaces.context                             not found
      Ordering                         - org.richfaces.model                             not found
      RendererUtils                 - org.ajax4jsf.renderkit                         not found
      DataTableRenderer        - org.richfaces.renderkit.html                  org.richfaces.renderkit
      SimpleToggleEvent        - org.richfaces.event                             not found
      NodeExpandedEvent        - org.richfaces.event                             not found
      ExtendedFilterField          - org.richfaces.component                         not found
      DataTableIconSortAsc    - org.richfaces.renderkit.html.iconimages    not found

       

      class DataTableRenderer method Issues
      isColumnRendered(javax.faces.component.UIComponent)                            
      encodeStyleClass(javax.faces.context.ResponseWriter,<nulltype>,java.lang       
      getUtils()                                                                    
      renderChild(javax.faces.context.FacesContext,javax.faces.component.UICom

       

      class UIColumn method issues
      isSelfSorted()
      getSortIconAscending()
      getSortIconDescending()
      getSortIcon()

       

      class DataTableRenderer method Issues
      method isColumnRendered(javax.faces.component.UIComponent)                            
      method encodeStyleClass(javax.faces.context.ResponseWriter,<nulltype>,java.lang       
      method getUtils()                                                                    
      renderChild(javax.faces.context.FacesContext,javax.faces.component.UICom

       

      class UIColumn method issues
      method isSelfSorted()
      method getSortIconAscending()
      method getSortIconDescending()
      method getSortIcon()

       

      Alot of the components and classes used as part Richfaces 3.3.3 are not available in Richfaces 4.0.0 M4 or have been moved.

       

      Is there a migration document for Richfaces 3.3.x to Richfaces 4. Which components can be used as in 3.3.X and which ones have changed.

       

      It was ok to migrate from Richfaces 3.3.2 to Richfaces 3.3.3 and JSF 1.2 to JSF 2.0.2. It looks like a big effort to migrate to Richfaces 4  for an existing application.

       

      Please advise a good strategy to migrate.

       

       

      Thanks,

      B.

        • 1. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
          Ilya Shaikovsky Master

          unfortunatelly we still in progress for creation migration docs/samples... So better way for now - explore demos (rf-showcase in distribution) for components available and usage samples. And follow-up http://community.jboss.org/wiki/RichFaces40ReleaseCenter to check info on further migrations.

           

          Will try to add info according to your list. It will be usefull for all the guys:


          PushEventListener            - org.ajax4jsf.event                              not found               

          Push completelly redesigned for using Comet and JMS support. Currently info available at developer demo only. We will create official demos asap.

           

          Modifiable                          - org.richfaces.model                        not found

          Just renaimed to ArrangeableModel and Arrangeable interface.


          HtmlComboBox                 -  org.richfaces.component.html                not found

          SuggestionBox and ComboBox unified to single autocomplete component. And b.t.w. for dynamic creation it's better to use Application.createComponent(componentType) rather than new html*();

           

          UIPickList                          - org.richfaces.component                    not found

          not planned even to final. We planning to redesign ListShuttle(questionable for first final) to more simple implementation so we will have no need in that ligh-weight clone component.


          SortField2                     - org.richfaces.model                             not found

          Look to ArrangeableState. We unified the fields.

           

          TreeNode                      - org.richfaces.model                         org.richfaces.component.UITreeNode

          TreeNodeImpl                 - org.richfaces.model                             not found

          Will be in M5

           

          HtmlTree                      - org.richfaces.component.html                not found

          Again - use create component and component type(org.richfaces.Tree) for dynamic creation and you will not depends on concrete html impl classes. That one removed.

           

          HeaderEncodeStrategy    - org.richfaces.renderkit                         not found

          RequestContext            - org.richfaces.context                             not found

          Not used and I can't comment much without knowing for what you using it.

           

          FormUtil                          - org.richfaces.component.util                 org.richfaces.renderkit.util

          yes refactored and present in M4

           

          Ordering                         - org.richfaces.model                             not found

          see org.richfaces.component.SortOrder


          RendererUtils                 - org.ajax4jsf.renderkit                         not found

          refactored. moved to org.richfaces.renderkit.util

           

          DataTableRenderer        - org.richfaces.renderkit.html                  org.richfaces.renderkit

          refactored moved.

           

          SimpleToggleEvent        - org.richfaces.event                             not found

          see now component is collapsiblePanel and PanelToggleEvent

           

          NodeExpandedEvent        - org.richfaces.event                             not found

          see TreeToggleEvent


          ExtendedFilterField          - org.richfaces.component                         not found

          need to check more

           

          DataTableIconSortAsc    - org.richfaces.renderkit.html.iconimages    not found

          there is no built-in sort filter controls right now. so no such images classes.

           

          class DataTableRenderer method Issues
          isColumnRendered(javax.faces.component.UIComponent)                            
          encodeStyleClass(javax.faces.context.ResponseWriter,<nulltype>,java.lang       
          getUtils()                                                                    
          renderChild(javax.faces.context.FacesContext,javax.faces.component.UICom

           

          just refactoring. need details about your problems related to it.

           

          class UIColumn method issues
          isSelfSorted()
          getSortIconAscending()
          getSortIconDescending()
          getSortIcon()

          As written above - no built-in controls for now so no such methods and classes.

           

           

           

          hope it will be usefull for you. I will make that thread sticky to make the thread more public and helpfull for others.

          Thanks for your efforts with migration!

          • 2. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
            Nick Belaevski Master

            >> TreeNode                      - org.richfaces.model                         org.richfaces.component.UITreeNode
            >> TreeNodeImpl                 - org.richfaces.model                             not found

             

            UITreeNode is not a model class. Use UITree instead of HtmlTree.

            • 3. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
              asschwab Newbie

              Hi,

               

              is there a possiblity in 4.0.0 M4 to select nodes in the tree via the API. If so, how can I do it? If not, can I use a nightly build (@Nick: I'ven seen you checked some stuff in some days ago ;-)  ). If so, which Listener class to use and which attribute to use in the rich:tree tag?

               

              I certainly could also use Javascript directly, but as we will use the Final in our release anyway, I'd prefer to use the API - method if possible.

               

              Thanks in advance

              Andreas

              • 4. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
                Nick Belaevski Master

                Andreas,

                 

                There is "selection" attribute that accepts collection of row keys to be selected. Currently only a single selection is supported, so this has to be singleton set.

                • 5. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
                  asschwab Newbie

                  Hi Nick,

                   

                  thank you for your answer. I think I didn't express well enough what I was thinking about.

                  In RF 3.3.3 I used the tag 'nodeSelectListener' and  bound it to an instance of a NodeSelectionListener implementing public void processSelection(NodeSelectionEvent event) to react to a node selection event.

                  I find the org.richfaces.event.TreeSelectionListener in RF 4.0.0 with the method public void processSelection(TreeSelectionEvent event). Is this the equivalent to the older NodeSelectionListener?

                  What I don't know is, which tag attribute to use in rich:tree.

                  In RF 3.3.3 I uses nodeSelectListener and I also set the ajaxSubmitSelection to true. How is this accomplished in RF 4.0? And is it correct to change from switchType="ajax" to toggleType="ajax"?

                   

                  Thanks in advance

                  Andreas

                  • 6. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
                    Nick Belaevski Master

                    Currently attribute's name is 'selectionChangeListener' and it can be set at tree component, not treeNode. Listener accepts TreeSelectionChangeEvent.

                     

                    Yes, there are selectionType = (client | ajax) and toggleType = (ajax | client | server) attributes.

                    • 7. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
                      asschwab Newbie

                      Thanks a lot, Nick, I only cannot find TreeSelectionChangeEvent in M4. Is there a nightly build I could use?

                       

                      Thanks in advance.

                      Andreas

                      • 8. Re: Migrate Richfaces 3.3.x to Richfaces 4.0.0 M4 and JSF2
                        Nick Belaevski Master

                        Yes, nightly build should be available in our snapshots repository.