JBoss Developer Framework: A Documentation Hub For JBoss Technologies
Recently JBoss has released version 1.0 of JBoss Developer Framework. While the name and version imply a software release, in reality the framework (JDF for short) is a central documentation hub for all technologies related to JBoss and JBoss AS. This consolidation effort allows the developer to focus on a single documentation resource instead of hunting down several individual guides for the different parts (for example a Hibernate guide in one place and a Seam guide in another).
The emphasis of JDF is on showing a developer how to use the whole software stack at all layers (e.g. user interface and persistence layer). One can already find documentation that deals on a single JBoss technology only (e.g. a Hibernate guide) but it is harder to find official information on how to get "the big picture" during developing an application end-to-end from an official source.
For this purpose, JDF includes more than 50 quickstarts that come in the form of Maven projects. The interesting thing is that most quickstarts deal with more than one software layers (and the respective JBoss technologies). These can serve either as tutorials or as the basis for more complicated applications. Some examples include:
- The ejb-in-war quickstart which uses JSF, EJB
- The greeter quickstart which uses EJB, JPA, JSF, JTA, CDI
- The helloworld-html5 quickstart which uses HTML5, JAX-RS, CDI
- The wicket-ear quickstart which uses JPA, Apache Wicket
- The kitchensink quickstart which uses Validation, EJB, JAX-RS, JPA, JPA, JSF, CDI
The quickstarts are clearly categorized as Beginner, Intermediate and Advanced. Apart from Maven they also require JBoss Developer Studio (or JBoss Tools in Eclipse). Naturally, the deployment target is JBoss AS. For some of them deployment instructions are also offered for RedHAt/JBoss's PaaS OpenShift. The source of each quickstart is located in GitHub.
Whilst the quickstarts are a great starting point, they are not full featured applications. To demonstrate a "real world" example JDF covers in detail the development of the "TickerMonster" application. This is a full blown application developed using the latest Java EE6 technologies (with JBoss implementations). What is interesting here is that rather than focusing on a single view architecture the TickerMonster application showcases different technologies per module:
- The User Interface is HTML5 and REST
- The Administration module is in JSF/RichFaces
- The statistics dashboard is in GWT/Errai
JBoss has adopted Java EE 6 as the preferred option for developing enterprise applications, so a section of JDF explains the migration paths for users of Spring, Seam and Java EE 5. The adoption path from Seam is especially important since new development on it has essentially stopped. Current users are clearly informed that there will be no Seam 3 and they must migrate to CDI/DeltaSpike. Users are also encouraged to send their own migration stories.
The final part of JDF, is a set of Maven BOM (Bill Of Materials) files that define complete application stacks tested against JBoss AS. Maven BOM file are special POM files that include dependencies and can be used in projects via the "import" scope introduced in Maven 2.0.9. These BOM files grouped under "JBoss stacks" define the required dependencies in order to have the suggested project structure respective to the approach you select (e.g. an Errai/GWT application). You can freely download them for JBoss AS, but you must have a Redhat account to get BOM files for JBoss EAP