Help

The RichFaces team and community are happy to announce that RichFaces 4.0.0.Final has been released!! This was a huge effort, but the end result was well worth it. Without further ado, you can download the distribution from our project's download page, and check out our collection of getting started guides including Maven, non-Maven, Ant/Ivy, and GAE. Plus you can now give our components a test drive anytime at our Online Component Showcase demo.

For all the details of what went into this final release please review the jira release notes. We also have the final project release notes for the project available for review.

Why RichFaces?

RichFaces 4 goes beyond simply supporting JavaServer Faces (JSF) 2. It has extended multiple areas of JSF, including usability, performance tuning, dynamic resources, skinning, and component development. This allows users to take full advantage of all the productivity enhancements of JSF 2. Some notable highlights include:

Our Community

In previous blogs I've talk about about how open source communities really thrive on their community. I've talk about how CR releases can stand for "Community Required" because of how important it is to get that feedback. All I can say is that our community stepped up, and continue to impress! We've seen a huge increase in the feedback, and both veterans and new users giving RichFaces 4 a try and helping us to make it to this point.

There are too many to list out here, but you are all appreciated!! Although, I would like to remind everyone that the JBoss Community Recognition voting ends April 2nd. Please check out the candidates from our community and give them a vote!

Our Quality

Closely related to our community and the feedback we get from them, is our focus on testing. At RichFaces we have prided ourselves on the level of testing, and stability that we have achieved. A big part of that is because of the effort our guys put into it.

Test framework development highlights:

  • Metamer - Framework that makes it easy to add new components and test each attribute under different UI templates
  • Ajocado now part of Arquillian which allows type safe Ajax with Selenium
  • Rush Eye now part of Arquillian helps test regressions by doing a visual comparison of results.
  • Partial Google Page Speed and Selenium Integration for client side performance testing

Total Number of Automated Tests: 2350. Multiply this by environment variables like JSF implementation, Application Server, and UI containers and the total number of complete automated tests go to : 2350 x 4 x 2 = 18, 800!! Plus we are adding to it all the time...

Our Documentation

We really wanted to have a focus on complete and quality documentation that would be available to everyone. One of the guys on our team (Sean), really did a great job and focused on the documentation. We have also had some informative additions to our wiki page, and knowledge base from our community, and team.

Want Even More Information

We've got a whole stack of blogs, conference talks, and upcoming publications to keep you busy :-)

What's next

That is a wide open question. We're planning to start on a 4.1 version soon with shorter time-boxed release schedules. We'll be discussing this more on the developer forums and team meetings. This release will likely include a variety of new features such as; Mobile/Tablet specific components, HTML5 extensions, new components like the rich:editor and rich:growl and more. Please join in the discussion, and be part of the future of RichFaces!

In other areas of the project:

  • Series of how-to articles for development with and on the project
  • Mobile development series on how to build for the mobile web with RichFaces 4
  • Add examples, and more details the Migration Guide 3.3 --> 4.0
  • Component Sandbox rules, and wiki page updates to help everyone become a component developer guru
  • Jira reviews from the past, and future

None of this is possible without you though! We want to hear from you, and if you find an issue, have comments or ideas please let us know through our forums, or our project jira. See our Project Calendar and the Meeting Information page for more details, agendas, and minutes if you want to get involved more!

[Project Site] [Downloads] [JIRA] [User Forums] [Design Forums] [RichFaces Twitter]

20 comments:
 
29. Mar 2011, 17:47 CET | Link
Thai

What did you mean by Run on EC2? AFAIK, EC2 is a virtual machine which you can ssh to. So Run on EC2 doesn't make any sense, at least in my opinion.
Does RichFaces 4.0.0 run on GF 3.0 and 3.1?

ReplyQuote
 
29. Mar 2011, 17:58 CET | Link

Good catch Thai! I just updated entry with Glassfish, and changed EC2 --> Amazon's Elastic Beanstalk

 
29. Mar 2011, 19:10 CET | Link

Great release! Congratulations!

One question: where can I find more information about CDK?

Thanks

 
29. Mar 2011, 20:32 CET | Link

To Ben:

I have removed your posts because of your language, not your content.  I believe your points were:

  1. 900 major bugs - how can it be a final release
  2. You found a major bug on the showcase
  3. PrimeFaces is better

1) I'm not sure where you are seeing 900 issues?  RichFaces jira is showing around 350 open jira's in the 4.Next releases.  Out of these there is about 90 marked as bugs, of variable severity.  We track all of our enhancements, tasks, and todo's here as well as feature requests.  Perhaps that is where you are mistaken?  

If you are referring to jira's resolved in the release, then I'm not sure what the issue is.  This was a major release, that spanned more than a year.  We created, resolved, reviewed, and updated a lot in that time.

2) I appreciate the bug you entered RF-10823, and saw that you just joined! I asked in the jira if you could include some more information because I was unable to reproduce the problem.

Please let us know if you find any other issues.

3) Then by all means use PrimeFaces.  I'm not sure what your point really is here, but RichFaces and PrimeFaces have had a good relationship in the past, and I have no intension of bashing another project.

-Jay

 
29. Mar 2011, 20:35 CET | Link
alexsmirnov

Be patient, I'm working on CDK documentation and examples, just got more time for this after pre-release development

 
30. Mar 2011, 02:49 CET | Link
Andrew

Great work guys.

When is the complete documentation going to be released. I noticed that some components are not documented such as mediaOutput (I can see it in the java docs). By the way why is the mediaOutput an a4j component and not a rich?

Also the component documentation doesn't list every attribute of the component in a table for easy reference (done for styling however). This documentation layout was great in the 3.x releases.

Cheers

30. Mar 2011, 12:22 CET | Link

Well, I'm sorry. You are right about the bug count. I was mistakenly only paying attention to the overall open major bug count.

To 2): I'm unable to reproduce this problem today. Maybe you guys fixed it already? That would definitely restore the view I had about your team producing a qualitiy product in a professional environment. I also appreciate that you still respond to the points i made in a admittedly harsh manner.

To 3): No, im not saying that PrimeFaces is better but to me the components just seem a little shinier because it's based on the jQueryUI themeroller. This is not the most important factor when choosing my component library though that is why I was still following the coming and now released RichFaces 4.0. To me simplicity, quality and extensibility together with a clear roadmap of where development is heading come first. And I see that RichFaces 4 has improved a lot on the generated markup, very good work indeed.

Again, apologies for my rants, now let me get my hands on this :)

PS: I forgot how to log on here. It's obviously not the same account as my JBoss one, or have I been deleted? :D

30. Mar 2011, 12:26 CET | Link
Ben

So, the problem still persists I see. I'll try to help you out on JIRA.

 
30. Mar 2011, 14:10 CET | Link
Andrew wrote on Mar 29, 2011 20:49:
When is the complete documentation going to be released. I noticed that some components are not documented such as mediaOutput (I can see it in the java docs). By the way why is the mediaOutput an a4j component and not a rich?

Now that the push for the project release is complete, we can take the time for final reviews, and updates in the docs. You may have noticed the docs release version is actually set at CR2. We plan to release the final version of the docs in a couple of week.

The docs should be in good shape though, so thanks for catching the mediaOutput document issue. I've created RFPL-1400 and it will be included in the docs asap.

Andrew wrote on Mar 29, 2011 20:49:
Also the component documentation doesn't list every attribute of the component in a table for easy reference (done for styling however). This documentation layout was great in the 3.x releases.

For the attribute listing we chose not to put the complete listing in the component guide for two reasons. 1) We did not want to duplicate information that is already in the VDL docs, 2) We did not want to bloat the component guide. If you recall from from 3.3 the component sections were huge.

I would like to see linking though - from the components in the guide to the VDL docs. We'll be working on that.

30. Mar 2011, 14:31 CET | Link
Ben wrote on Mar 30, 2011 06:22:
To 2): I'm unable to reproduce this problem today. Maybe you guys fixed it already? That would definitely restore the view I had about your team producing a qualitiy product in a professional environment. I also appreciate that you still respond to the points i made in a admittedly harsh manner.

One of the guys is looking into it, and found what may be the issue. We've not fixed it yet be are working on it.

Ben wrote on Mar 30, 2011 06:22:
To 3): No, im not saying that PrimeFaces is better but to me the components just seem a little shinier because it's based on the jQueryUI themeroller. This is not the most important factor when choosing my component library though that is why I was still following the coming and now released RichFaces 4.0. To me simplicity, quality and extensibility together with a clear roadmap of where development is heading come first. And I see that RichFaces 4 has improved a lot on the generated markup, very good work indeed.

I think those are great criteria when reviewing component suites. Thanks for your comments.

Ben wrote on Mar 30, 2011 06:22:
Again, apologies for my rants, now let me get my hands on this :) PS: I forgot how to log on here. It's obviously not the same account as my JBoss one, or have I been deleted? :D

Apology accepted, thanks for writing back in this manner, and discussing the issues more. This is what makes open source software great.

As for your account, no changes were made. This site works with different accounts than JBoss main site. You can reset your password though.

 
30. Mar 2011, 15:42 CET | Link
Flávio Almeida

The final version is Mojarra 2.1 friendly?

 
30. Mar 2011, 18:09 CET | Link
Cody

I'll go ahead a second the request for Themeroller support. It really works great with primefaces.

 
30. Mar 2011, 21:37 CET | Link
Flávio Almeida wrote on Mar 30, 2011 09:42:
The final version is Mojarra 2.1 friendly?

Yup!

30. Mar 2011, 21:51 CET | Link
Ben wrote on Mar 30, 2011 06:26:
So, the problem still persists I see. I'll try to help you out on JIRA.

Thanks again for the bug report, this should be resolved up on GAE.

We're just reviewing a little more before resolving the jira. It turns out that it was an issue with Mojarra component id mapping, and how it supports a clustered environment liks GAE.

31. Mar 2011, 02:37 CET | Link
Andrew

Thanks for the informative reply with regards to the documentation.

I would just like to make a constructive suggestion that documentation becomes top-priority of all JBoss projects. I would like to see user manuals written early. I'd go as far to say that they could be written before code cutting starts. Once the public API has been designed then it can be verified by writing a good manual. If I don't know how a component is supposed to work I can't use it or test it (easily). In the early release stages you really want as much feedback as possible. I don't want to struggle through java docs and source code to get an idea of how something works.

Once again, thanks for all the hard work. Everyone on the Richfaces team has proved again that they are the industry leader.

31. Mar 2011, 08:46 CET | Link
Ben

Probably not easy to catch that one but shouldn't this be fixed in Mojarra instead of RichFaces?

31. Mar 2011, 13:08 CET | Link
Ben wrote on Mar 31, 2011 02:46:
Probably not easy to catch that one but shouldn't this be fixed in Mojarra instead of RichFaces?

Yup, already filed with Mojarra - JAVASERVERFACES-1886

 
10. Apr 2011, 02:08 CET | Link
Paul M.

Sadly, the Richfaces PUSH capability is bound to HornetQ JMS implementation, because the others DON'T accept using the javax.jms.Connection.setClientId() in the business logic. This doesn't work on glassfish 3.1 using their JMS embedded server.

WARNING: MQJMSRA_DC2001: Unsupported:setClientID():inACC=false:connectionId=6046697373872048384
SEVERE: java.lang.ExceptionInInitializerError
        at org.richfaces.application.push.impl.jms.PushContextFactoryImpl.getPushContext(PushContextFactoryImpl.java:54)
        at org.richfaces.application.push.TopicsContext.lookup(TopicsContext.java:74)
        at com.dotachile.pushmaven.TopicsInitializer.processEvent(TopicsInitializer.java:38)
        at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
        at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2129)
        at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2105)
        at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:300)
        at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:603)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:369)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
        at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4690)
        at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:534)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5305)
        at com.sun.enterprise.web.WebModule.start(WebModule.java:500)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:755)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1980)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1630)
        at com.sun.enterprise.web.WebApplication.start(WebApplication.java:100)
        at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
        at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
        at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:286)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:465)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:222)
        at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
        at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:234)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
        at com.sun.grizzly.comet.CometEngine.executeServlet(CometEngine.java:444)
        at com.sun.grizzly.comet.CometEngine.handle(CometEngine.java:308)
        at com.sun.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:87)
        at com.sun.grizzly.arp.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:171)
        at com.sun.grizzly.arp.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:143)
        at com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:94)
        at com.sun.grizzly.http.TaskBase.run(TaskBase.java:193)
        at com.sun.grizzly.http.TaskBase.execute(TaskBase.java:175)
        at com.sun.grizzly.arp.DefaultAsyncHandler.handle(DefaultAsyncHandler.java:145)
        at com.sun.grizzly.arp.AsyncProtocolFilter.execute(AsyncProtocolFilter.java:204)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.FacesException: MQJMSRA_DC2001: Unsupported:setClientID():inACC=false:connectionId=6046697373872048384
        at org.richfaces.application.push.impl.jms.PushContextImpl.init(PushContextImpl.java:123)
        at org.richfaces.application.push.impl.jms.PushContextFactoryImpl.createInstance(PushContextFactoryImpl.java:48)
        at org.richfaces.application.push.impl.jms.PushContextFactoryImpl.access$000(PushContextFactoryImpl.java:33)
        at org.richfaces.application.push.impl.jms.PushContextFactoryImpl$PushContextHolder.<clinit>(PushContextFactoryImpl.java:37)
        ... 58 more
Caused by: javax.jms.JMSException: MQJMSRA_DC2001: Unsupported:setClientID():inACC=false:connectionId=6046697373872048384
        at com.sun.messaging.jms.ra.DirectConnection._unsupported(DirectConnection.java:982)
        at com.sun.messaging.jms.ra.DirectConnection.setClientID(DirectConnection.java:487)
        at org.richfaces.application.push.impl.jms.MessagingContext.start(MessagingContext.java:113)
        at org.richfaces.application.push.impl.jms.PushContextImpl.init(PushContextImpl.java:117)
        ... 61 more
 
10. Apr 2011, 02:11 CET | Link
Paul M.

The above problem comes from this line on org.richfaces.application.push.impl.jms.MessagingContext.java, line 110:

//TODO - review
        try {
            //durable subscription requires ClientID to be set
            connection.setClientID(UUID.randomUUID().toString());
        } catch (IllegalStateException e) {
            //ignore - clientId has already been set
        }
 
10. Apr 2011, 02:33 CET | Link
Paul M.

maybe this has something to do with the exception on glassfish jms server.

http://old.nabble.com/jms-durable-subscriber-fail-%28Unsupported%3AsetClientID%28%29%3AinACC%3Dfalse%29-td25364251.html

Post Comment