ICEfaces is on the way to become the JSF-based AJAX framework (from the marketing's point-of-view). For the rest of us, it is one of the coolest JSF implementations, that also delivers the best AJAX implementation a Java developer can dream of ;-).
AppFuse is the Java Open Source integration framework. It allows you to start with a new Web application within minutes, although your application has to support Dependency Injection, Aspect-oriented Programming, Object-relational Mapping, Transactions, Persistence and all the other challenging non-functional requirements ;-).
ICEfusion is the glue between ICEfaces and AppFuse.
In the first step it delivers a code base that allows to use AppFuse with an ICEfaces frontend (a Maven 2 Artefact). ICEfusion is based on the AppFuse Basic JSF archetype. The code was changed to skip
- all existing AJAX stuff (ajax4jsf, dwr)
- the standard Facelets (jsf-facelets)
- the sitemesh templating
The adapted code
- integrates ICEfaces with it's own AJAX and Facelets support
- let ICE facelets and ICE skinning do the page templating
ICEfusion keeps the login management (but doesn't use it) and all AppFuse internal technologies that can be kept with ICEfaces (e.g. Apache Tomahawk). Additionally, it delivers an extended "menu" concept to get a more desktop-like presentation that e.g. offers exchangeable skinning.
ICEfusion still offers all functionality you get when you create an application from the Basic JSF archetype. So, we don't have exported any code from the AppFuse repository to get things running. Instead some workarounds help to circumvent the old presentation to establish the new one. This allows AppFuse updates without much effort.
This is also true for the ICEfaces updates. All skinning and extra functionality is kept separate from the framework structures.
More on this at the ICEfusion.dev Blog.
BTW: ICEfusion delivers the code base for the ICEcube example application of my ICEfaces book from Packt Publishing:
The lastest information can be found at Twitter.