JHeadstart Taking J2EE Developer Productivity to the Next Level!

The productivity you can achieve with the current JHeadstart release is unprecedented in the J2EE world, and in my opinion even exceeds the productivity levels we can reach with Oracle Designer/Forms. Sure, I am biased but I notice that more and more people agree with me. Last week, at the Oracle Development Tools User group (ODTUG) conference, Peter Koletzke, co-author of the excellent Oracle JDeveloper handbook for Forms and PL/SQL Developers, did a presentation entitled "JDeveloper, ADF and JHeadstart, is it Oracle Forms Yet?" His conclusions: JDeveloper with ADF is a close second to Oracle Forms. However, JDeveloper with ADF and JHeadstart is far ahead of Forms! And believe me, Peter is a very modest person, not quite known for his bold statements to attract attention :-)

With the upcoming JHeadstart release, currently scheduled to go production in October this year, I am pretty sure we can convince the people who still challenge the above statements. In, we have added a number of reusable application components that will save you months of development effort. Here is the list:

  • Complete Generation of Role-based Security. Using new service-level properties in the JHeadstart Application Definition Editor, you can now generate everything required to implement full-fledged authentication and role-based authorization. You can choose between various "Security Types": JAZN, a JAAS custom login module accessing the JHeadstart security tables (or your own security tables), or the JHeadstart Authentication Filter accessing the JHeadstart security tables. JHeadstart generates the login page, the log off button, the JAAS deployment descriptors, sample SQL scripts to populate the JHeadstart security tables, and the security maintenance screens (in case you are using the JHeadstart security tables).The security maintenance sceens can easily be customized since they are generated using a default Security Application Definition file
  • Adding New Items at Runtime. JHeadstart offers the ability to add so-called flex items at runtime. At design-time, in the Application Definition, a Flex Region can be defined which acts as a placeholder for flex items that can be defined later by a system administrator at runtime. This functionality can be used without changing your table structure, JHeadstart comes with its own set of tables to store all information related to flex items. At runtime, the system administrator can switch the page to "Customize Mode" which will display links to define the content of each flex region on the page. Clicking the link will bring up a dialog window in which the flex item definitions can be maintained. Display types supported include text input, drop-down list, checkbox, radio group, file upload/download, multi-select listbox, multi-select group of check boxes, email address and more. Allowable values for flex fields can be defined through a query or by defining static allowable values. Flex items can depend on each other, for example to implement cascading drop-down lists. Complex validation and default values can be defined as well.
  • Runtime Customization of Pages. In addition to adding new flex items to a page, a system administrator can also configure "standard" items (items defined in the Application Definition Editor). Standard items can be made invisible, or required when they are defined as optional at design-time. This functionality, together with the flex items discussed before is indispensable for Independent Software Vendors (ISV's) who need to support customer-specific customizations. These customizations can now be implemented without changes to the underlying application source code nor database model.
  • Dynamic Menu Structure. You now have the option to define the menu structure at runtime, which is then stored in database tables. This allows you to create a menu structure which is independent of the group structure in your application definition. At the highest level, you define so-called modules, which can be seen as sub systems. A module can have any number of (nested) menu items. A menu item can navigate to the first page of a generated group, or to some custom URL or custom JSF navigation action. Like the security and flex item maintenance screens, the menu maintenance screens are fully customizable.
  • Full Multi-Language Support. JHeadstart already offered the ability to generate applications that supported multiple languages. However, the translatable text was generated into hard to maintain Java property files or Java resource bundle classes. As of version the new Resource Bundle type "databaseTable" is introduced. When this resource bundle type is chosen, JHeadstart generates (and optionally executes) the SQL scripts to populate this database table for all locales (languages) specified in the Application Definition. You still have the option to override or preserve existing entries. At runtime, a system administrator can switch the application into "Record Page Text Mode". In this mode, JHeadstart registers which translatable text strings are used on a specific page, and the system administrator can then invoke a dialog to change and/or translate the translatable text. In the dialog, he can select a page from the recorded pages list, and he can choose the language for which the text applies. If you want to allow the user to switch the language of the application regardless of the browser language, you can also generate a so-called locale switcher which displays a drop-down list with all supported languages on each page.
Update (October 2007): JHeadstart also includes:

Hopefully, describing features like this in text already excites you, and once you have seen a live demo, you are likely to be even more impressed, given the reactions of the few lucky people who were the first to see the features in action: "What you showed me in 1 hour, would take me 6 months to build!", "I am still recovering from
what I have just seen, amazing.", "You have got to be kidding me!","The development speed is

We will post viewlets showing the features on OTN as soon as possible, for now you can click here to see some screen shots of the functionality.

The new features of earlier JHeadstart 10.1.3 releases are listed below:
For more information about JHeadstart and for downloading an evaluation copy: see the JHeadstart Product Center.


Hi Steven, Long time no see ;-) All the things you mention are very valuable. I'm glad to see this in JHeadstart. "Complete Generation of Role-based Security" and "Dynamic Menu Structure" are issues that I encounter very often. It takes a lot off effort to achieve these things. JHeadstart makes it easy. Last week I met Tugdual Grall in London (at Oracle Develop) and I talked to him on VPD and connection pooling. Is this something that JHeadstart can provide ? Maybe you have some ideas on this issue. If not, I'ld like to talk with you on this issue. See you in 'de Meern'

Posted by luc bors on July 05, 2007 at 05:28 AM PDT #

Luc, adding out-of-the-box VPD support to JHeadstart is on our list for release 11! Of course, nothing stops you from using VPD today with JHeadstart, you only need to set up the packages and context calls from the app module yourself. Not sure what you mean with "connection pooling" support. Steven.

Posted by Steven Davelaar on July 06, 2007 at 12:11 AM PDT #

Can we see it in action? Because the last version I have downloaded and tryied it was far from all claims. Thanks

Posted by Danielson Peters on October 06, 2008 at 05:07 AM PDT #

To see it in action, check out the links on the JHeadstart Product Center at http://otn.oracle.com/products/jheadstart : there is a free download of an evaluation version of JHeadstart, and online screencast demos of JHeadstart Hope this helps, Sandra

Posted by Sandra Muller on October 07, 2008 at 12:05 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed

Java EE Consultants - JHeadstart, ADF, JSF


« April 2014