Last week we hosted the umpthieth AMIS Query – our series of Technical Seminars on Oracle and Java related subjects – with over 60 visitors. We always try to throw a good party – along with excellent speakers, great presentations and a hands-on workshop to give the audience the chance to also try for themselves what is demonstrated – by having drinks, snacks and a hot dinner buffet. We were in luck as the wheather was good and we could have dinner on the terrace.
Were also celebrating JHeadstart (note: this was not an official Oracle JHeadstart celebration): we were doing the semi-official AMIS-launch of the JHeadstart 10.1.3 release for ADF Faces as well commemorating 5 years of JHeadstart. Sprouting from an internal project at Oracle Consulting, the first blossoming of JHeadstart took place in 2001, around by now almost forgotten technology such as UIX and especially the Oracle 9iAS MVC Framework for J2EE. Three members of the original team that produced JHeadstart – Peter Ebell, Steven Davelaar (our main speaker) and Lucas Jellema (that’s me) had gathered for this event.
After the Pagoni Project presentation, Steven dazzled the audience with a vibrant presentation/demonstration that ran from 16.30 to 19.45 – roughly interrupted by the Chinese Buffet – after which over 30 people decided to use the workshop facilities and give JHeadstart 10.1.3 a try.
AMIS had organized several sessions on JHeadstart and ADF before this one, for example introducing JHeadstart for Toplink, introducing ADF Binding and later ADF Faces, presenting JHeadstart 10.1.2. We have started working with JHeadstart in our projects in 2003. Over the past few years we have been able to put it to good use in a number of quite successful projects. We have also made some contributions to the product as well as presented and published quite a lot about it.
JHeadstart 10.1.3 in the Pagoni Project
In the AMIS Query, we presented our real life experiences with both ADF Faces – on top of ADF Binding and ADF Business Components using JDeveloper 10.1.3 – as well as JHeadstart 10.1.3, over last few months. We are currently executing a project with a team of about ten, with a professional software engineering infrastructure – Jira, Maven 2, Subversion, a Project WIKI (Confluence), Continuum, JUnit etc. The team has a number of tough UI nuts to crack – especially with some complex tree-based data and navigation structures. Not only did JHeadstart prove to be a productivity booster, it also allowed us to have a team member without any prior knowledge of any of the ADF technologies productively participate in the project! Jan Riksen and Aino Andriessen took care of this presentation – their slides are at the end of this article.
We had anticipated to use JHeadstart for complete generation of only simple pages and use it as a first-cut stepping stone for more complex pages that then would have to be completed manually. As it turned out, we are still able to completely generate the entire application, thanks to the 10.1.3 JHeadstart Velocity based templating mechanism. This means that database changes – new columns, modified columns, new tables and foreign keys – can be absorbed extremely easily: synchronize the ADF BC objects, synchronize the JHeadstart groups and re-generate the application. We are also seeing that what started out as individual specialized changes in pages – implemented as custom templates special for those pages – are now evolving into generic templates, reusable throughout the application.
Most importantly – apart from giving a much greater productivity and providing many best practices for working with ADF – use of JHeadstart allowed us to focus on Functionality rather than technical infrastructure and complexities. Prototyping is a breeze using JHeadstart and rapid, intensive interaction with the customer and end-user is a very real option.
Presentation/Demonstration of JHeadstart 10.1.3 by Steven Davelaar
As we are used to from him, Steven did a very enthousiastic overview of JHeadstart in general and the 10.1.3 release in particular. He shared many of his experiences from the project is currently involved in (and had been for over a year) – and that has seen the almost effortless migration from JDeveloper 10.1.2 (UIX, Struts, ADF BC) to JDeveloper 10.1.3 (ADF Faces, ADF BC) thanks to JHeadstart and a near 100% generated application.
The demonstration of the generation of a Wizard style layout was one that appealed to me personally – as it is a very new feature with useful applications. Very impressive are also the many table overflow styles – I am determined to invent a new one: bubble (or popup) – as well as the nested tables, the tree-form, the shuttle and the very smooth manipulation of item groups (‘regions’) and stacked details.
The last part of the presentation was on the Generator Architecture and the Templates used by the Application Generator. Steven demonstrated how we can use templates – using the Velocity Templating Language (see Apache Jakarta Velocity) – to make any post-generation changes generate as well, protecting the 100% generatability of the application. As we had already experienced in our own project, this is a very useful feature that is relatively easy to master.
Download the AMIS Pagoni Project Team’s Presentation here:
Download Steven Davelaar’s Presentation on the Basic Architecture and Advanced Features in JHeadstart 10.1.3:
Workshop for JHeadstart 10.1.3:
JHeadstart 10.1.3 Developer’s Guide on OTN (6 Mb PDF)
JHeadstart Homepage on OTN (here you will soon be able to download the 10.1.3 preview version – it is a fully functional release that is limited to no more than 10 View Objects in an Application (Module).