16

I would be glad to get references to resources and people's experience on comparison of known JSF implementations: MyFaces and IceFaces in terms of component's richness, ease to develop, popularity, stability, community support, etc.

Update: as it was pointed out the initial question is not accurate enough. There are few JSF implementations (Apache MyFaces, Sun reference implementation) and some JSF component libraries (IceFaces, RichFaces, Woodstock, etc.). But anyhow my question is about both core JSF and JSF component libraries implementations.

Gennady Shumakher
  • 5,637
  • 12
  • 40
  • 45
  • Possible duplicate of [JSF implementations and component libraries](http://stackoverflow.com/questions/2167509/jsf-implementations-and-component-libraries) – Dave Jarvis Mar 06 '11 at 01:29

5 Answers5

11

Be careful!

JSF is a specification. Thus, you must use an implementation, such as the one provided by Sun, or the one provided by Apache (MyFaces).

IceFaces is not an implementation, but a component library. Other libraries exist, such as RichFaces, MyFaces Tomahawk, and so on.

You can have a look here for the differences between components libraries.

zb226
  • 9,586
  • 6
  • 49
  • 79
Romain Linsolas
  • 79,475
  • 49
  • 202
  • 273
  • 1
    That link is not valid anymore. It links to personal page not related to programming. – Jimmy Jan 10 '18 at 15:24
9

I realize this is a late post here, but since I was looking to expand out and didn't see it: I really recommend that you look into Primefaces as well. I am still relatively new to JSF (1 year development time) but I've been trying to do each new subset in our research phase with a different suite.

Here's my experience: Icefaces handles AJAX without much work on your end. When you're trying to do something relatively simple Icefaces does a really great job of a small DOM update and a responsive UI. I highly recommend that someone new starts here as you'll be able to get something working quickly and learn all the ins and outs of JSF without suffering. (It also has decent Eclipse tools)

Richfaces is a good suite, it handles ajax in a finer grain (closer to how JSF2.0 works) The components are a little lacking in my opinion, but if you're customizing the look Richfaces is a better place to start as it generally feels easier to skin. (Then again, plain JSF2.0 works for this).

Recently I tried out Primefaces (http://www.primefaces.org). There's a lot more work involved in this suite as far as can tell it has a significant advantage in the number and look and feel of the components. Of the above, I am enjoying working on complex things in Primefaces that were utterly frustrating in Icefaces.

I hope this helps another reader, I think all these suites are great. If you're doing some insane Javascript and you need fine grain control go with Primefaces.

Another small note: if it is a new application, use JSF2.0--it has significant advantages and I have yet to find anything that's frustrating.

Daniel B. Chapman
  • 4,647
  • 32
  • 42
  • As an update to this, I've been doing a lot of mobile access and while Icefaces is more frustrating to work with (complex things) I have found that the AJAX requests/update are significantly smaller no matter the size and feel more dynamic. Its just a note really, via 3G or better connections it is a moot point. – Daniel B. Chapman Mar 19 '11 at 20:15
  • Since technology is evolving every year, I would like to give an update about PrimeFaces features after 9 years of your comment with my 3 years of experience. Your concern about AJAX request / response slowness is now enhanced by applying attributes to components. For example, if you make the "dynamic" attribute of TabView, Dropdown, etc. to "true", then lazy loading will be applied for those components and less amount of KBs will be downloaded to the device while other data like Dropdown values will be loaded on the go when user really needs them. And PrimeFaces is now version 8.0 – Keshan Fernando Apr 11 '20 at 18:38
4

RichFaces developed by Jboss under Redhat.

Component richness: Lots of nice ajax features and UI components.

Ease to develop: Subjective, but I say yes.

Popularity: v3.3.0 has about 13,000 downloads

Stability: Still in active development with new features being added. System in place for Bug Tracking.

Community support: Has a nice online demo with code examples (the one on Jboss website you have to login to get to). There is a forum and wiki on the Jboss site.

Mark
  • 16,772
  • 9
  • 42
  • 55
4

If you use the Sun RI or MyFaces makes no real difference. Both implement what the JSF standard defines.

For the component libraries you have to have a look at:

  • ICEfaces (we prefer this)
  • RichFaces (you've to check how tight this is with the JBoss world already)
  • Tomahawk (the classic; there are rumors that the development is a bit stalled)
  • Trinidad (the Oracle ADF Faces Open Source kernel)

These are important. Woodstock is dead and the ICEfaces guys are on the way to offer a migration path. If you work with Oracle tools already (e.g. JDeveloper) Trinidad is a good candidate to start. If you work with JBoss tools already RichFaces is a good candidate to start.

For a more independent use have a look at Tomahawk and ICEfaces. ICEfaces allows to integrate Tomahawk components, although the skinning is not really compatible. Integration is one of the key features with ICEfaces. The support of IDEs, Application Servers and other Open Source frameworks is brilliant. The Facelets integration is the best you can get. The AJAX push technology is the best Push implementation at the moment. A lot of stuff of JSF 2.0 is already part of ICEfaces 1.8.

Here's a bit more why we prefer ICEfaces:

http://blog.rainer.eschen.name/2008/09/22/icy-faces-for-more-than-a-year/

For an introduction into JSF look here:

http://blog.rainer.eschen.name/2008/03/10/how-to-start-the-jsf-dance/

Hint: I was asked by Packt Publishing at the end of 2008 to write a book about ICEfaces. It will be available at the end of October 2009. Knowing this, the answer may be a bit biased. But, this is a result of a long test and over 1.5 years of experience with ICEfaces. It is the best you can get in technology. I tested all important Open Source JSF implementations, before our project chose ICEfaces finally.

rainwebs
  • 111
  • 2
2

I second RichFaces. Lots of good documentation on the exadel pages (which Mark linked too) and also a very nice Developer guide on every component. Thumbs up for core JSF + Richfaces (which also have alot of nice Ajax support).

Chris Dale
  • 2,222
  • 2
  • 26
  • 39