jsf-flex-examples-mojarra12Impl-1.0b.war jsf-flex-examples-myfaces12Impl-1.0b.war
Abstract
JSF Flex goal is to provide users capability in creating standard Flex components as JSF components {note dynamic charts and some other components are not part of standard Flex components}. So users would create the components as normal JSF components and the project will create the necessary MXML, SWC, SWF files and etcetera and link the values of the components back to the managed beans using JSON+Javascript and Actionscript. {standard Flex components have been open sourced through MPL license}. Also MXML_BASIC renderKitId allows utilizing other renderKits within the same view {i.e. HTML_BASIC}, allowing mix of JSF Flex components and other components such as standard HTML components. If you are curious of how the code is implemented, you can check out the following Wiki page which contains a brief overview : JSFFlexProcess. There exists various configuration fields that can be set within web.xml, but one noteworthy field is com.googlecode.jsfFlex.MODE.
The project aim is to support the following JSF implementations {bold faced are currently supported} :
- MyFaces
- 1.2
- 2.0
- Mojarra
- 1.2
- 2.0
Following is a Wiki page containing info of JSF Flex project's Maven repo which has been created on April 18th, 2009 : JsfFlexMavenRepo.
Recent changes for current Download artifact 1.0 BETA are :
- Fix of synchronizing the creation of SWC file per web application {will only be encountered if the user hits two pages at the same time for the first time in debugMode}.
- Fix of calculating maxDataPartitionIndex. This issue caused too many rows to be presented in DataGrid component {i.e. within the overall example}.
- DOJO dependency will be removed as its usage is very limited, but the logging level specified within web.xml will still be preserved if using firebug and firebug lite
- Creation of maven projects jsf-flex/core-mojarra-impl and jsf-flex/core-myFaces-impl which will hold Java files specific to each impl. The reason is MXML_BASIC renderkit needs to wrap HTML_BASIC and other renderkits in order to allow mixing of these components within the page, but MyFacess and Mojarra differ in their implementation of how HTML_BASIC renderkits are added to factory causing issue with MXML's factory MXMLRenderKitFactoryImplWrapper.
- Support for Flex 2
- Capability of moving data from one DataGrid to an another
- Removed the sorting after dragging data from one DataGrid to an another.
- Set up of a maven repo within jsf-flex project for its release
For a first NON BETA release 1.5 there will be support for :
- Change from usage of Qdox Javadoc to Annotation
- Code written in JDK 5.0
- Support of latest, stable Flex version { 3.xx {i.e. features such as runtime access of locale messages}}.
- Better packaging of component attributes { implementation }
- Additional functionality such as the current DataGrid component where there will be further interweaving of JSF/Java + ActionScript content.
- Fixes from additional testing
For the next major Beta artifact 2.0 BETA release there will be support for :
- Support of JSF 2.0
- Support of latest,stable Flex version
- Capability of using MethodExpression for components.
- Additional functionality such as the current DataGrid component where there will be further interweaving of JSF/Java + ActionScript content.
- Fixes found in additional testing.
- Clean up of code and additional functionality when thought of.
There exists a screen shot of an example .jsf at the bottom of this page and below are URLs for the latest SNAPSHOT Downloads :
| View Handler | Mojarra URL | Myfaces URL |
| JSP | http://localhost:8080/jsf-flex-examples-mojarra12Impl-1.0b/mxmlIndex.jsf | http://localhost:8080/jsf-flex-examples-myfaces12Impl-1.0b/mxmlIndex.jsf |
| Facelet using XHTML | http://localhost:8080/jsf-flex-examples-mojarra12Impl-1.0b/faces/mxmlIndex.xhtml | http://localhost:8080/jsf-flex-examples-myfaces12Impl-1.0b/faces/mxmlIndex.xhtml |
Quick Start
Following Wiki page contains info in importing the example WAR file and adding the project's Jar artifacts to a new Dynamic Web Project => QuickStart.
Since following information is so critical, it is being duplicated within the home page. When one is finished tweaking of creating the components/tags, one MUST change the com.googlecode.jsfFlex.MODE field within web.xml to productionMode to avoid the cost of creating preMxml, Mxml, Swf, and etceteras. Also one should copy all the system generated directories under Webcontent/swf/* to their corresponding directory within the Workspace during the move to higher env {since the system uses servContext.getRealPath("") as the root directory of preMxml, MXML, and SWF directory and}
- Tomcat on default for example flushes it out to their cache directory under metadata i.e. C:\OpenSource\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jsf-flex-examples
- JBoss on default for example flushes it out to their temp directory i.e. C:\Program Files\jboss-4.2.3.GA\server\default\tmp\deploy\tmp46689jsf-flex-examples.war
Testing Performed
Brief testing has been performed using Sun's JVM as JAVA_HOME :
| Operating System | Browser Tested | Application Server Tested |
| Windows XP | Firefox 2.0 , IE 6.0, Opera 9.25 | TomCat 6.0, JBoss 4.2 |
| Linux | TODO | TODO |
| Mac | TODO | TODO |
Roadmap
Please refer to the following wiki page for information regarding what is planed for support within release 1.0 BETA => RoadMap.
Meritocracy
The projects plans to do everything possible to encourage an environment that supports a meritocracy. Meaning any developer/member who has contributed dearly to the project and knows of the project's design will be promoted to an owner status.
Rationale
With the Web 2.0 technology flourishing within the web world, this would be a great opportunity in creating a project and bridging technologies such as Adobe Flex with JSF.
Specifically the project will provide :
- Easy creation of standard Flex applications while preserving the ease of databinding to legacy systems through JSF
- An alternative to purchasing Flexbuilder when creating simple Flex applications