7 Replies Latest reply on Sep 7, 2007 8:25 AM by Ilya Shaikovsky

    ANNOUNCEMENT: RichFaces 3.1.0 RC2 has been released

    Sergey Smirnov Master

      We would like to introduce the RC2 (release candidate 2) of RichFaces 3.1.0. It is available for download:

      in binary format + javadoc, tlddoc and Dev Guide:
      http://maven.exadel.com/org/richfaces/ui/richfaces-ui/3.1.0-rc2/richfaces-ui-3.1.0-rc2-bin.zip
      and with source code:
      http://maven.exadel.com/org/richfaces/ui/richfaces-ui/3.1.0-rc2/richfaces-ui-3.1.0-rc2-bin.tar.gz
      The RC is marked in SVN (Trunk) with label: V3_1_0RC2

      The lib folder of the binary distribution contains all three required jar:

      richfaces-api-xxxxxx.jar
      richfaces-impl-xxxxxx.jar
      richfaces-ui-xxxxxx.jar

      As it was announces earlier on this forum (http://jboss.com/index.html?module=bb&op=viewtopic&t=112220), RichFaces 3.1.0 is a product that merges together the previous versions of Ajax4jsf and RichFaces.

      Any previous Ajax4jsf jar files should NOT be in the classpath to avoid correlation between old and new codebase.

      When application are deployed in EAR form, people often need to be separated the common API from the components (UI) stuff. In this scheme, the richfaces-api-xxxxxx.jar should be deployed to ear. The rest two jar files to war. If you have a problem following those rules, please let's know.

      Though the global changes in the repository, we tried to keep the full compatibility with the previous version of Ajax4jsf and Richfaces.

      Additional to the repository re-factoring the following improvements are changes are made:

      The filter configuration becomes more flexible.It is possible to configure different filters for different set of pages of the same application. Now, you do not have to select between two different filters for the whole application. The possible types are: NONE,NEKO,TIDY. Tidy filter corrects the output html code. Neko corresponds to the former "Fast Filter". None - no any correction, it is your responsibility to have it corrected.

      Example of configuration:

       <context-param>
       <param-name>org.ajax4jsf.xmlparser.ORDER</param-name>
       <param-value>NONE,NEKO,TIDY</param-value>
       </context-param>
       <context-param>
       <param-name>org.ajax4jsf.xmlparser.NONE</param-name>
      
      <param-value>/pages/performance\.xhtml,/pages/default.*\.xhtml</param-value>
       </context-param>
       <context-param>
       <param-name>org.ajax4jsf.xmlparser.NEKO</param-name>
       <param-value>/pages/repeat\.xhtml</param-value>
       </context-param>
      


      The previous variants of configuration are still available for backward compatibility.

      The URI for a4j: and rich: namespaces are changes to "http://richfaces.org/a4j" and "http://richfaces.org/rich" . The previous URIs are also available for backward compatibility.

      Te following components are added:
      rich:message - the substitute for h:message. In addition to what the standard component does, rich:message:
      * does not require to be wrapped with a4j:outputPanel ajaxRendered="true" for working on Ajaxified pages
      * allows to mark with icons when validation are passed or failed

      rich:messages - the substitute for h:messages. In addition to what the standard component does, rich:message:
      * does not require to be wrapped with a4j:outputPanel ajaxRendered="true" for working on Ajaxified pages
      * allows to mark with icons when validation are passed or failed
      * has one more type of layout - "iterator" that allows to iterate though messages like in h:dataTable

      The Functional Specification (requirements) for rich:message and rich:messages you can read here in MS-DOC format:
      [URL]http://anonsvn.jboss.org/repos/richfaces/trunk/ui/message/design/funcspec/[/URL]

      rich:toolTip - popup block with any custom context. Allows to load the content is Ajax mode.
      The Functional Spec. is here:
      [URL]http://anonsvn.jboss.org/repos/richfaces/trunk/ui/tooltip/design/funcspec/[/URL]

      rich:calendar - calendar component working in inline and popup mode. Custom format for days cells, Ajax update, etc...
      The Functional Spec. and look-n-feel sketches is here:
      [URL]http://anonsvn.jboss.org/repos/richfaces/trunk/ui/calendar/design/[/URL]

      rich:scrollableDataTable - data table with re-sizable and sortable columns and smart Ajax data fetching.

      rich:treeNodes & rich:recursiveTreeNodes - allow to define declaratively data model and presentation for tree component

      rich:effect - allows to add visual effects to the existing component and tags( as easy as a4j:support )

      rich:insert - allows to insert the page content to the view. If highlight attribute is defined and jhighlight open source library is in the classpath, the text from the file will be formated and colorized.

      rich:virtualEarth - analog of rich:gmap, but based on the MS Virtual Earth API

      We continue to improve the RichFaces documentation. Now, two Developers Guide are merged in one document (320+ pages currently).
      The richfaces-demo is planned to integrate all possible examples for former Ajax4jsf and Richfaces. This job is in progress. The 66 components are placed to be covered.

      P.S. The previously added but not very well yet documented components: rich:dataGrid, rich:dataList, rich:dataDefinitionList, rich:dataOrderedList, rich:push, a4j:portlet. All of them have placeholders in the richfaces-demo


        • 1. Re: ANNOUNCEMENT: RichFaces 3.1.0 RC2 has been released
          Jonas Buechel Novice

          Hello Sergey

          Great work! Thanks to the richfaces team for their effort!

          I replaced the libraries and got my app running.

          When i try to change the following attributes in jboss-service.xml to false again, i get a java.util.MissingResourceException during startup of the AS:

          <attribute name="Java2ClassLoadingCompliance">true</attribute>
          <attribute name="UseJBossWebLoader">true</attribute>
          


          Im running a JBoss AS 4.2.0.GA and use exploding as deployment.

          What i did:
          1. Placed the richfaces-api-3.1.0-rc2.jar to projectname.ear folder.
          2. Referenced the module in projectname.ear/META-INF/application.xml as followed:
           <!-- RichFaces -->
           <module>
           <java>richfaces-api-3.1.0-rc2.jar</java>
           </module>
          

          3. Placed the richfaces-impl-3.1.0-rc2.jar and richfaces-ui-3.1.0-rc2.jar to projectname.ear\projectname.war\WEB-INF\lib folder.
          4. JBoss AS started again

          Please tell me, what am i doing wrong?

          Stack trace:
          10:04:37,468 ERROR [[/projectname]] Exception sending context initialized event to listener instance of class org.jboss.web.jsf.integration.config.JBossJSFConfigureListener
          java.lang.ExceptionInInitializerError
           at org.ajax4jsf.resource.ResourceBuilderImpl.createResource(ResourceBuilderImpl.java:233)
           at org.ajax4jsf.resource.TemplateCSSResource.setPath(TemplateCSSResource.java:68)
           at org.ajax4jsf.resource.TemplateCSSResource.<init>(TemplateCSSResource.java:58)
           at org.richfaces.renderkit.html.SuggestionBoxRenderer.<init>(SuggestionBoxRenderer.java:76)
           at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
           at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
           at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
           at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
           at java.lang.Class.newInstance0(Class.java:355)
           at java.lang.Class.newInstance(Class.java:308)
           at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:1028)
           at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:1100)
           at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:509)
           at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:402)
           at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.java:69)
           at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3854)
           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4359)
           at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
           at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
           at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.apache.catalina.core.StandardContext.init(StandardContext.java:5310)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)
           at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
           at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
           at org.jboss.web.WebModule.startModule(WebModule.java:83)
           at org.jboss.web.WebModule.startService(WebModule.java:61)
           at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
           at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
           at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
           at $Proxy0.start(Unknown Source)
           at org.jboss.system.ServiceController.start(ServiceController.java:417)
           at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
           at $Proxy45.start(Unknown Source)
           at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
           at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
           at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
           at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:93)
           at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
           at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
           at $Proxy46.start(Unknown Source)
           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
           at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
           at $Proxy9.deploy(Unknown Source)
           at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
           at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
           at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
           at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
           at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
           at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
           at $Proxy0.start(Unknown Source)
           at org.jboss.system.ServiceController.start(ServiceController.java:417)
           at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
           at $Proxy4.start(Unknown Source)
           at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
           at $Proxy5.deploy(Unknown Source)
           at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
           at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
           at org.jboss.Main.boot(Main.java:200)
           at org.jboss.Main$1.run(Main.java:508)
           at java.lang.Thread.run(Thread.java:619)
          Caused by: java.util.MissingResourceException: Can't find bundle for base name org.ajax4jsf.messages, locale de_CH
           at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1508)
           at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1262)
           at java.util.ResourceBundle.getBundle(ResourceBundle.java:717)
           at org.ajax4jsf.Messages.<clinit>(Messages.java:29)
           ... 151 more
          


          • 2. Re: ANNOUNCEMENT: RichFaces 3.1.0 RC2 has been released
            Joe Greene Novice

            Thanks for the great work, Sergey.

            I do have a small problem, however. I was trying to get my Tree component to work when I upgraded to this new version. Now, the TreeNode class, which was an interface that I needed to implement according to to the live demo example, is no longer a class. I tried using UITreeNode, but it's not an interface. Can you let me know where I've fallen off the deep end here? Maybe I'm just missing something terribly simple. THanks.

            • 3. Re: ANNOUNCEMENT: RichFaces 3.1.0 RC2 has been released
              Nick Belaevski Master

              Hello!

              Here it is: org.richfaces.model.TreeNode . Change package name in the code please

              • 4. Re: ANNOUNCEMENT: RichFaces 3.1.0 RC2 has been released
                Joe Greene Novice

                Thanks, Nick.

                I was just coming back to reply to my own post that I finally found it, but you beat me to it. Thanks again.

                Regards,
                Joe

                • 5. Re: ANNOUNCEMENT: RichFaces 3.1.0 RC2 has been released
                  mgrouch Expert

                   

                  rich:scrollableDataTable - data table with re-sizable and sortable columns and smart Ajax data fetching.


                  I can't find scrollableDataTable in PDF documentation...

                  • 6. rich:calendar
                    Corneil du Plessis Newbie

                    This may be a bit late in the day but I would like to add a requirement to the calendar control.

                    The control seems to be fairly usable for dates in the recent past or near future. However if someone tries to capture a birthdate which could be 20-50 years in the past they are required to click the >> or << button 20-50 times.
                    If the control provides an option that makes the year editable or a dropdown with a specific range it would improve the usability in those cases a whole lot.

                    • 7. Re: ANNOUNCEMENT: RichFaces 3.1.0 RC2 has been released
                      Ilya Shaikovsky Master

                      I've writen this feature in funcspec but mark it as future functionality. Now it's specified as task for future releases.

                      http://jira.jboss.com/jira/browse/RF-858