JHeadstart 10.1.3.2: Taking J2EE Developer Productivity to the Next Level!
By Steven Davelaar on Jul 04, 2007
The productivity you can achieve with the current JHeadstart 10.1.3.1 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 10.1.3.2 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 10.1.3.2., 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 10.1.3.2 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 10.1.3.2 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 10.1.3.2 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.
- JHeadstart Designer Generator upgraded to JDeveloper 10.1.3.x.
The JHeadstart Designer Generator, previously only available
with JHeadstart 10.1.2 in JDeveloper 10.1.2 has been upgraded and added
to JHeadstart 10.1.3.2 so it can be used directly in
JDeveloper 10.1.3.x. It has been renamed to JHeadstart Designer-Forms
Migrator since regeneration is no longer supported. To start the
JHeadstart Designer-Forms Migrator, select your Model project, invoke
the New... gallery, switch
the Filter By dropdown list to "All Technologies", and select ADF
Business Components within the Business Tier. The
JHeadstart Designer-Forms Migrator will now appear as an item you can
select in the pane at the right.
- Nested Application Modules. It is now possible to use nested application modules in ADF Business Components.
In the Application Definition Editor, the Data Collection drop down list now includes view object usages in nested application
- Split Generated Page to Work Around 64K Size Limit of JSP Pages. Due
to a limitation in the Java language, JSP pages
cannot exceed the 64 KB size limit. When a generated page is larger,
and you try to run the page, you will get a "Page Too Large"
error. Through new properties in the Application Definition Editor, you
now have the ability to generate a group, search area or item region
into a separate ADF Faces region JSP file, to prevent pages to exceed
the 64KB limit.
- More Control over Detail Group Positioning.
A new Detail Group Property 'Same Page Position' allows you to place
detail groups at the right or below the parent group or inside the
table overflow of the parent group. The 'Stack Detail Groups on Same
Page' property has been renamed to 'Stack Groups on Same Page' with
allowable values 'Detail Groups Only' (which is equivalent to checking
the former boolean property 'Stack Detail Groups'), 'All Groups' and
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 10.1.3.2 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 10.1.3.2 features on OTN as soon as possible, for now you can click here to see some screen shots of the 10.1.3.2 functionality.
JHeadstart Product Center.