Main

JHeadstart Generic Archives

April 10, 2006

Searching the Old JHeadstart Blog

With the automatic redirect of the old JHeadstart blog to the new one, the search option of the old blog at orablogs.com has become inaccessible. Therefore I have added a search on the old blog to the current JHeadstart blog site under Site Navigation.

July 23, 2006

Nothing close to JHeadstart

Steve Heidebrink is a regular at the JHeadstart OTN discussion forum, and in one of his posts he very kindly complimented JHeadstart as follows:

I'll admit, I'm always searching the open source space. So far, I see
nothing that is anywhere close to the generating abilities of JHS. Not
even on the .NET front.


It's great to hear that, Steve!

July 30, 2006

How to Install JHeadstart 10.1.3

Ashraf asked how JHeadstart 10.1.3 can be installed. If you have access to JHeadstart 10.1.3 on the Consulting Supplement Option, you have probably read the instructions there:

To install this release,
download the zip file, start JDeveloper, go to Help > Check for
Updates and choose the option "Install From Local File". Use the
downloaded jhs1013-install.zip file as the local file.

That's all! It seems like it's getting easier with each JHeadstart release.

On the Supplement Option, besides the jhs1013-install.zip we also published a center.xml file. Using this file you can create
your own Oracle JHeadstart Update Center
. This is useful if you want to
make new JHeadstart versions available to multiple developers within
your organization.

  • Put this center.xml and jhs1013-install.zip together in a folder on your file share.
  • Verify that the center.xml contains the
    correct build number for the corresponding install.zip.

Each developer can now perform the following steps:

  • Open JDeveloper 10.1.3
  • Go to Help > Check for Updates
  • Click the Add button to enter a new Update center
  • In the dialog box that appears type in:

    Name: JHeadstart 10.1.3 Update Center

    Location: Specify the center.xml file on the file share
  • Click Next
  • Select JHeadstart 10.1.3.0.x, click Next and Finish
  • JDeveloper restarts and JHeadstart will be installed

After having specified the JHeadstart Update Center, each developer
can easily check if a new JHeadstart build was put on the file share,
by going to Help > Check For Updates > JHeadstart 10.1.3 Update
Center > Next.


August 11, 2006

JHeadstart 10.1.3 Production!

Finally, it's there! After several weeks of hard work by the JHeadstart Team to put in the finishing touches, we present you: Oracle JHeadstart 10g for ADF Release 10.1.3.0, with support for JSF and ADF Faces.

Customers that hold a supplement option license can download jhs1013-install.zip from the Consulting Supplement Option
portal.  A limited trial version will be available for evaluation
purposes on OTN later. If you want to acquire a subscription to the
JHeadstart Supplement Option, you can contact your local Oracle
Consulting representative. If you don't have a local Oracle Consulting
representative, please send an e-mail with your name and location to
idevcoe_nl "at" oracle.com.

Fact Sheet, FAQ, online demos, and the new updated JHeadstart 10.1.3 Developer's Guide (with extra chapters compared to the draft version) can be found in the JHeadstart Product Center.

What's New in JHeadstart 10.1.3

  • Generation of JSF ADF Faces pages. Instead of generating UIX pages, we generate ADF Faces pages (in .jspx format).
  • Generation of Faces-config.
    JSF is used as the Controller instead of Struts. As a result, managed
    bean definitions and navigation rules are generated in the
    faces-config, instead of the old struts-config generation.
  • Velocity Generator Templates. The JHeadstart Application Generator is driven by generator templates. These templates now use the Velocity Template Language.
    The content of the generated pages is now 100% driven by these velocity
    generator templates. Everything that is generated on a page can be
    customized by creating a custom template.
  • Pluggable Generator Archictecture.
    The JHeadstart Application Generator engine has been completely
    rewritten and is now java-only. XSLT Stylesheets are no longerused. All
    important generator classes are instantiated using the Spring Bean
    Factory. This allows you to plug in your own custom generator classes
    to extendthe JHeadstart Metadata Model used by the generator templates.
  • Item-level Templates.
    In 10.1.2, one single generator token represented all items in a form
    or table layout. This limited the flexibility in generating
    non-standard layouts. Item level templates allow for much finer-grained
    customizations of the layout generation. You can even define the exact
    position of each item, by using index-based or named-based item tokens.
  • Items included in Application Definition Editor (previously known as Application Structure Editor).
    The separate ADF BC attributes editor no longer exists.Instead, the
    group items (attributes) are defined inside the application definition.
    A "Synchronize" option is provided to automatically load the attributes
    from the Data Control Collection (the View Object Usage in case of ADF
    BC) that is associated with the group.
  • Support for Unbound Items.
    In addition to items that are bound to an underlying model attribute,
    unbound items are supported. The existing display types will be
    supported for these items. Unbound items can be made "Action items" by
    using a custom template that generates a hyperlink, button or clickable
    image.
  • New Table Overflow Styles. In addition to Detail
    Disclosure (now renamed to "Inline Overflow"), we support "Overflow
    Right" and "Overflow Below" where additional items of the current row,
    not shown in the table itself, are displayed at the right side of the
    table, or below the table.
  • Tabbed Regions and Tabbed Child Groups.
    Item Regions and detail groups can now be grouped together in a
    so-called Region Container. A Region Container can have a layout style
    of "horizontal", "vertical" or "stacked". With layout style "stacked"
    you will get tabbed regions. With layout style "horizontal" you will
    get side-by-side regions.
  • New Group Properties. New group properties include stack detail groups, Show New Rows At Top and Table Overflow Style (see above).
  • New Item properties.
    New item properties include: Bound to Model Attribute, Value, Java
    Type, Display in Table Overflow Area, Prompt in Table Layout, Column
    Alignment, Column Sortable, Column Wrap, Depends on Item, Validator
    Binding, Regular Expression, Regular Expression Error Message, Include
    in Quick Search, Include in AdvancedSearch, Prompt in Search Region,
    Rendered, and Disabled.
  • Enhanced List of Values. List of
    values can now be reused accross pages, and can return as many values
    as you like. Since List of Values are now modeled using the group
    element, you also have full control over the items that are displayed
    in the LOV.
  • Drag and drop in Application Definition Editor (ADE).
    You can now use drag and drop in the ADE. For example, you can drag and
    drop an item into a region. To copy an element, you can use a
    right-click option or press the CTRL-key while dragging and dropping.
  • Domain Definitions Integrated in Application Definition Editor. There is no longer a separate DomainDefinitions.xml. Domains are now maintained in the ADE.
  • Deep Linking.
    There is now declarative support to call a page using deep linking
    which allows you to query a specific row and show this row on the page.

August 15, 2006

New version of JHeadstart 10.1.3 Developer's Guide

We've uploaded a new version of the JHeadstart Developer's Guide,
which now includes a section titled 'Security' in chapter 5, JHeadstart
Extensions to ADF Runtime. This new section describes how you can use
either Java EE security (JAAS) or your own custom security mechanism in
your JHeadstart generated application.



The developer's guide has become rather large (6 MB), so to improve download speed we have moved it to download.oracle.com.

September 1, 2006

JHeadstart Tip: Which Previously Generated Pages Can Be Deleted?

If you change the Group Layout properties in your Application Definition, JHeadstart might not generate certain JSF files anymore. It is good practice to clean up files that are not used anymore.

For example, if you change the Layout Style from "table-form" to "form", the table page is not generated anymore. If you had already generated that table page in an earlier run, that JSPX file is still in your project, but not part of your application page flow anymore.

If you want to get rid of these superfluous JSF pages, you can do the following:

  • Run the JHeadstart 10.1.3 Application Generator
  • Don't save all files yet
  • Go to the Navigator of JDeveloper 10.1.3, to the folder where the pages are generated
  • Check which page names are not italic
Modified JSPX Files: Here you can see that the files that are generated by JHeadstart Application Generator in this run have their names shown in italic font. The files that are in plain font are apparently not touched, and are possibly superfluous.<br>
In the picture above you can see an example: Departments2Table.jspx is not generated anymore because the detail
group Departments2 now has Same Page = "true" (so its contents appear
on Employees.jspx), and EmployeesTable.jspx is not generated anymore because the Layout Style of the Employees group changed from "table-form" to "form". So, unless these pages are used elsewhere, you can now delete them.

A similar trick can be applied to the Page Definition files, and the Faces-Config files.

If you have multiple JHeadstart Application Definitions, we recommend that you generate the files for each of the Application Definitions into separate folders (you can specify this at the Service level), so that you can easily see to which Application Definition a file belongs. That way you can still apply the above technique. Using such a folder structure also helps when defining Working Sets in JDeveloper 10.1.3 (for viewing a subset of the files in a certain JDeveloper project).

September 29, 2006

JHeadstart 10.1.3 Service Update 1 Available

Licensed JHeadstart users can now download JHeadstart 10.1.3 Service Update 1 (build 10.1.3.0.97) from the Consulting Supplement Option.
Apart from a number of bug fixes (see the release notes for a list),
this service update contains some functional enhancements:


  • File Upload in Table Layout. It is now possible to generate file upload items in a table layout.

  • File
    Download/Images in Table Layout
    . It is now possible to generate file
    download links or images in a table layout. 

  • Checkboxes based on String attributes in Table Layout. It is now
    possible to generate checkboxes that are directly based on String
    attributes with a two-value domain (matching the true/false state of
    the checkbox). It is no longer necessary to create transient attributes
    of type Boolean in your ViewObject to be able to generate checkboxes in table layout.

  • When
    Access Denied Go To Next Group
    . When the user navigates to a
    group he is not allowed to access, JHeadstart can automatically
    redirect the user to the start page of the next group for which the
    user is authorized.
  • Show Template Names in Source.
    There is a new service-level checkbox property "Show Template Names in
    Source". When checked (the default) the generated sources contain
    comments indicating which Velocity template was used to generate each
    page snippet.



Service Update 1 also contains some changes which makes JHeadstart
10.1.3 compatible with JDeveloper 10.1.3.1 which is expected to be
released soon. (JHeadstart can NOT be used with the JDeveloper 10.1.3.1
Preview Version.)



If you do not have a license yet but are interested in trying out
JHeadstart 10.1.3, you will have to be patient for a couple of more
days. Next week, we will publish a free downloadable evaluation version
on OTN. This evaluation version has all of the same functionality as
the production version (including Service Update 1). The only
limitation is that your workspace cannot contain more than 10 View
Objects.



JHeadstart release 10.1.3.1 is currently planned for November. New features scheduled for this release include:


  • Multi-Select List of Values

  • Client-side checking of required items in Table Layout


  • Tree-style List of Values

  • Search through Tree nodes
  • Generating of graphs


Also planned for November is the JHeadstart Demo Application, which
showcases all main JHeadstart features, including fine-grained
role-based security.




October 10, 2006

JHeadstart 10.1.3 Evaluation Version Available!

Many customers asked for it over the past months, and as of today it is available: the free-downloadable evaluation version of JHeadstart 10.1.3 for ADF. The evaluation version is fully-functional: it contains the same set of features and functionality as the production version (including Service Update 1). The only limitation in this evaluation version is the number of ADF Business Components you can have in your workspace which is limited to 10 View Objects.

With this evaluation version, you will be able to generate sophisticated JSF applications that fully leverage ADF Faces, Oracle's comprehensive library of JSF UI Components, which is also available in the open source space under the name Trinidad.

Features that can be generated include wizards, shuttles, trees, list of values, multi-row insert/update/delete, advanced and quick search capabilities, deep-linking, multi-level tabs and stacked regions, table overflow regions, conditionally dependent items, file upload and file download, dynamic breadcrumbs, role-based security and more. And last but not least, all of the generator outputs are fully customizable by using powerful Velocity Generator Templates.

This evaluation version is certified against JDeveloper 10.1.3.0 as well as 10.1.3.1 which is expected to be released soon.

We believe that the combination of ADF and JHeadstart 10.1.3 provides you with a productivity and flexibility that is second to none as it comes to developing standards-based J2EE web applications. Do you think this is a bold statement? Well, then we invite you to try out this evaluation version. The easiest way to get started is by going to the excellent JHeadstart 10.1.3 Tutorial written by Steve Muench. This tutorial provides you with detailed step-by-step instructions on how to generate the aforementioned features, starting with the (simple) steps required to install the JHeadstart 10.1.3 Evaluation Version.

Additional material about this release, including viewlets, a FAQ, the Developers Guide, can be found at the JHeadstart Product Center.

Have fun!

November 1, 2006

JHeadstart on Oracle Open World and in the News

I visited Oracle Open World last week. It was a great event with a lot of news, good sessions and great parties! JHeadstart was present through 2 presentations from partners and they were both very positive about the new JHeadstart release. Always good to hear from others what they think of Oracle JHeadstart.

The first presentation was of my former colleague and Oracle Ace Lucas Jellema of Oracle Partner Amis. You may know him from his excellent and very productive blog on Oracle technology. His presentation was on JSF and ADF Faces. He showed the differences between standard JSF (reference implementation) and the richness of ADF Faces and finished with a demonstration on how JHeadstart generates ADF Faces applications. Lucas was very positive on JHeadstart: "JHeadstart 10.1.3 offers quick prototyping, consistent look & feel, easy intro for non-Java developers, high productivity". You can download his presentation from the Oracle OpenWorld content catalog site. (session id= S281846)

The second presentation was from Peter Koletzke (Quovera): Oracle JDeveloper 10g with ADF Faces and JHeadstart: Is it Oracle Forms Yet?
As the title indicates the presentation was directed to the Oracle Forms Developers community. The room was packed with about 200 attendees of whom most were Forms developers and only a few had started with Java and Oracle JDeveloper. Peter gave away the answer to his own question at the beginning. First on whether JDeveloper is comparable to Forms: "Nooooooo! but is a close second". Later on JHeadstart, "JDeveloper with JHeadstart way ahead of Forms!"  You can download his presentation from the Quovera website or the Oracle Open World content catalog site. (session id= S281920)

Peter, together with Duncan Mills, has written a book: Oracle JDeveloper 10g for Forms & PL/SQL Developers: A Guide to Web Development with Oracle ADF which is a good start to get more acquainted with ADF, chapter 16 is on JHeadstart.


In addition to these presentations Oracle Ace Steve Muench has written a nice article on Oracle JHeadstart that is published in Oracle Magazine. The title of the article is Jump-Start J2EE Development and is published in the November-December 2006 edition of Oracle Magazine. You can also read his article online.

 

I'm glad to see so much attention on the new release of Oracle JHeadstart. All the feedback from customers and partners has been very positive over the last couple of months. If you have a great story on what you or your organization did with Oracle JHeadstart please share it with us.

December 20, 2006

JHeadstart at JavaPolis Rad Race 2006

Last week Jaco Verheul and myself stepped in last minute for Duncan Mills and Steve Muench to represent Oracle at the JavaPolis' annual Rad Race. Duncan and Steve won the 2005 edition, so the expectations were pretty high.

The case was about creating
a dynamic web site where an administrator can define forms, pages within the form and items for each page
with various display types and allowable values, and then the users of the web
site can select such a form and fill it in with a wizard style layout, based on
the number of pages and items defined by the admin.

 

Other parts of the
assigment included:

- loading the MS Access
data, which was only 1 table this time

- sending an e-mail or
creating PDF when user finishes a form wich includes the answers filled in by the user.

- providing metrics on
filled in / abandoned forms, with date range search

- supporting  multiple languages

- data auditing and
journalling

- role-based security for
accessing admin screens and accessing forms

- logical delete instead of
physical

- some more reporting

Unlike last year, the size and complexity of the assignment was reasonable. No Web Services, no complex business logic, no complex screens, except for the dynamic metadata-driven form of course.

How did we do? I think we did reasonably well. We had prepared a start application which included ready-to-go role-based security and XML Publisher integration for the reporting. We used JHeadstart to generate the simple admin screens, and with the help of custom templates we also generated the dynamic form with wizard-style layout.

Was it enough to win the Rad Race?  No, our congratulations go to two  joint winners, LogicaCMG and Getronics PinkRoccade. Great job guys! LogicaCMG also used JDeveloper and ADF with a home-made toolkit, Oracle2Go on top. Getronics PinkRoccade used a custom framework called Briqs.

Why didn't we win? Good question! The Oracle tools remain the best, as proved by LogicaCMG. During the day you make a
number of decision on how to implement things, some decisions worked out well,
some we would have done differently (read faster) if we could do it again. May be we lack a bit the "quick and dirty" mentality that is absolutely required for a race like this. Being focussed all our professional life on building things in a reusable, structured, maintainable way, it is hard to switch to a true "hackers" mentality for one day :-).

But hey, the good news is that the dynamic forms stuff we built for the race, is so generic that we plan to ship it with the next JHeadstart release, as part of the JHeadstart Demo application. It can be used both for "stand-alone" dynamic forms as in the Rad Race, but also to provide user extensibility / flex fields linked to structured application data.
So, hopefully, the wider ADF-JHeadstart community can benefit from our efforts!

January 30, 2007

JHeadstart and JDeveloper 10.1.3.2

JHeadstart 10.1.3 SU1 (build 97) and the JHeadstart 10.1.3 Evaluation
Version (build 95) are NOT compatible with JDeveloper 10.1.3.2
Production.

The
reason JHeadstart does not work in JDeveloper 10.1.3.2 is an
uncompatibility with the JAXB libraries that are installed as part of
the new WebCenter extension in JDeveloper 10.1.3.2. This library conflict causes problems when using the JHeadstart design-time tools like the New Application Definition Wizard and the Application Definition Editor. There are no problems at runtime, JHeadstart-generated applications run fine with the JDeveloper 10.1.3.2 ADF runtime libraries.

The next
JHeadstart release 10.1.3.1, planned for february 2007 will solve this
issue and will be compatible with JDeveloper 10.1.3.2.

There is
a work around though: you can copy the JAXB libraries in the JHeadstart
extensions directory
JDEV_HOME/jdev/extensions/oracle.jheadstart.10.1.3/designtime/lib
to the WebCenter extensions directory JDEV_HOME/jdev/extensions/oracle.portlets.10.1.3/lib

Make sure you backup the original WebCenter JAXB libraries first!

Note
that when you copy the JHeadstart JAXB libraries, the Portlet Producer
Wizard will no longer work as expected! In other words, you cannot use
JHeadstart and Webcenter within the same JDeveloper session. You will
have to copy back and forth the JAXB libraries and restart JDeveloper
when you want to switch between JHeadstart and WebCenter applications.
Alternatively, you can create two JDeveloper installations, one for
WebCenter development, and one for JHeadstart development.

March 4, 2007

Oracle JHeadstart 10.1.3.1 Now Available!

Oracle JHeadstart 10.1.3.1 is now available for download. All customers that hold a supplement option license can download jhs10.1.3.1.26-install.zip from the Consulting Supplement Option
portal. 

For a point release, JHeadstart 10.1.3.1 includes an impressive list of new features: 

  • Generation of Graphs. There is a new item display type 'graph' which allows you to generate BI graphs. The graph type and appearance can be set using the generated BI Graph xml file.
  •  
  • Multi-Select List of Values. The multi-select LOV behavior that was already present in JHeadstart 10.1.2 has been re-added.
  •  
  • Conditional Requery. There is a new group-level property that allows you to specify when an ADFm iterator binding should be requeried. Predefined values are "Always", "When Entering the Page" and "After Commit". You can also define a boolean JSF EL expression that will force a requery when it evaluates to true.
  •  
  • Advanced Search on Detail Tables. You can link an unbound advanced or quick search item to a bind variable by naming the bind variable after the item name, prefixed with the group name. You can use the bind variable in the SQL Query of the underlying ViewObject anyway you want, for example in the where clause of a sub select on a detail table.
  •  
  • Add Row Button. You now have the ability to generate an "Add Row" button in a table. This allows you to create new rows in a table with overflow right or below.
  •  
  • Duplicate Row Button. You have the ability to generate an "Duplicate Row" button in a table. When pressing this button, all values of the currently selected row are copied to a new table row, except for the primary key value(s).
  •  
  • Summary Types in Table. A new item-level checkbox property "Display Summary Type in Table" has been added. You can set the value to"sum", "average" or "count". When set an additional total row is displayed at the bottom of the table, showing the computed summary type of the item for all rows in the data collection.
  •  
  • Row-Specific Dropdown Lists in Table. There is a new domain property "Data Collection Changes By Row" which allows you to generate drop down lists with a different content in each table row. One use case for this is the implementation of cascading dropdown lists, for examplethe managers drop down list only showing managers working in the department of the employee.
  •  
  • Support for multiple "depends on" items. The "Depends on Item(s)" property is now editable, in addition to choosing an itemfrom the dropdown list, you can type in a comma-delimited string of "depends on" item names.
  •  
  • Regions can be made dependent of one or more items. The "Depends on Item(s)" property has been added to Item region, Groupregion and Region Container. This allows you to conditionally render a region based on the value of another item in the group.
  •  
  • Mobile Support. Service-level View Type property is now configurable by the user. For each view type a set of templates and generator resource bundles can be defined in jag-config.xml. A MobilePDA View Type is predefined with dedicated templates and a resource bundle with short labels.
  •  
  • Enhanced NLS Support. The GeneratorText resource bundles used by the Jheadstart Application Generator to generate static texts, basedon the language set in the Application Definition, are now added to the project in the /templates/nls directory. This makes it much easier to changegenerator text entries and to add support for additional languages.
  •  
  • Relative path for templates directory. In the JHeadstart Application Definition Editor, you can specify the template directory relative to the ViewController project root directory.
  •  
  • Item only updateable when not new. A new allowable value of while_not_new has been added to the item updateable property.
  •  
  • Hot-reloading of resource bundles. It is possible to reload changed resource bundles without shutting down your J2EE Application Server (feature provided by Lucas Jellema, Amis).
This release can be used with JDeveloper 10.1.3.2 and 10.1.3.1. It can NOT be used with JDeveloper 10.1.3.0

Within the next few weeks, we will make the folowing additional deliverables available:
  • A JHeadstart 10.1.3.1 evaluation version with the same functionality as the production release. The only limitation in the evaluation version is that your workspace cannot contain more than 10 View Objects.
  • The JHeadstart 10.1.3.1 Developers Guide
  • The JHeadstart 10.1.3.1 Demo Application, which will showcase all main JHeadstart features, including user authentication and authorization.

April 18, 2007

JHeadstart 10.1.3.1 Evaluation Version Available

The evaluation version of JHeadstart 10.1.3.1 is now available for customers. This version can be used with JDeveloper 10.1.3.1 or 10.1.3.2. It can be installed through the JDeveloper Check for Updates facility, by choosing the Open Source and Partner Extensions Update Center.
The evaluation version contains the same functionality as the production version, with one limitation: the workspace cannot contain more than 10 View Objects.
Click here for a list of new features in the 10.1.3.1 release.

The JHeadstart Tutorial written by Steve Muench has been updated to reflect the new 10.1.3.1 features. Additional steps have been added to generate a graph and table summary information.

On the JHeadstart Product Center, a new customer case study is available as well. This customer has been very succesfull in rebuilding one of their mission critical Oracle Forms systems, with ADF and JHeadstart.

July 2, 2007

JHeadstart - JDeveloper Support Matrix

New on the JHeadstart Product Center: the JHeadstart - JDeveloper Support Matrix. We have this type of information in the Release Notes when we publish a new JHeadstart release, but of course that only includes the information known at that time, and for the JDeveloper releases that were published at that time.

When new JDeveloper releases were published, or when we discovered new information about the compatibility between a certain JHeadstart and JDeveloper version, we used to put an announcement in the JHeadstart Discussion Forum, but the list of compatibility announcements become so long that we decided to create a Support Matrix similar to the JDeveloper - Application Server Support Matrix.

So now we have replaced all those compatibility forum announcements with a single announcement of the JHeadstart - JDeveloper Support Matrix. When a new JDeveloper or JHeadstart 10.1.3 version is published, or if we have a change in the compatibility notes, we will update that matrix!

July 4, 2007

JHeadstart 10.1.3.2: Taking J2EE Developer Productivity to the Next Level!

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.
Update (October 2007): JHeadstart 10.1.3.2 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 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
incredible"
.

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.

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.

October 17, 2007

JHeadstart 10.1.3.2 now available, also in evaluation version!

Oracle JHeadstart 10.1.3.2 is now available for download. For compatibility with JDeveloper 10.1.3.x versions, check the JHeadstart - JDeveloper Support Matrix.

All customers
that hold a supplement option license
can download
jhs10.1.3.2.52-install.zip from the Consulting Supplement Option
portal.

The evaluation version of JHeadstart 10.1.3.2 is available to everyone: jhs10.1.3.2.50-install.zip can be installed through the JDeveloper Check for Updates
facility, by choosing the Open Source and Partners Extensions Update
Center. The evaluation version contains the same functionality as
the production version, with one limitation: the workspace cannot
contain more than 10 View Objects.

Click here for a list of new features in the 10.1.3.2 release. This earlier blog post has now been updated to describe some additional new features compared to the original plans.

There is one thing that is not described in the new features list, but will bring the usability of JHeadstart to an even higher level: the completely revised JHeadstart Developer's Guide 10.1.3.2 which now includes:

  • An end-to-end roadmap for developing ADF applications using JHeadstart.
  • Description of the new features.
  • Answers to many frequently asked questions that have been posted on the JHeadstart Forum.
  • More customization examples.
  • An extensive Security chapter that covers all aspects of ADF application security.
  • A Team-Based Development chapter, including suggested project standards and guidelines.
  • Large chapters have been split up into smaller ones, to allow for easier scanning for the right topic.
  • Numbered sections, so if you ask a question on the forum that is answered in the developer's guide, you will just get a reply with a section number :-)
  • ... and much more changes that will hopefully make things clearer for you.
A must read for every JHeadstart developer, including experienced ones!

November 3, 2007

JHeadstart at Oracle Open World

Next week, I will be presenting JHeadstart at Oracle Open World, under the title Oracle JHeadstart: Unprecedented Productivity in Developing Ajax-Enabled Oracle ADF Applications.

With thousands of sessions being scheduled, I decided to go for a teaser abstract:

In maybe the coolest demo of this conference, the speaker uses Oracle
JHeadstart to build a complete enterprise-class application from
scratch in one hour. Features include trees, shuttles, lists of values,
advanced search, tabbed regions, wizards, conditionally dependent
items, deep linking, flex fields, role-based security, dynamic menus,
and more. This presentation is a MUST-SEE for developers with a
Forms/4GL background who are considering moving to J2EE.


So, expectations are set I would say :-). And the best part is not even in the abstract. At the end of the session, I will use an alfa release of JHeadstart R11 to migrate the application in 1 minute to ADF 11, leveraging new features like page templates, tasks flows, and all the new ultra-rich user interface components.

Seeing is believing, if you are coming to OOW, the first session to attend on thursday november 15 (8:30 AM - 9:30) is in Moscone South 308!

December 19, 2007

The Added Value of JHeadstart

We just published the JHeadstart Feature List on the JHeadstart Product Center on OTN.
It includes an impressively long list of all the runtime features that can be generated, and also discusses the features and benefits for the developer. In contacts with customers and partners, we sometimes feel that the benefits of an agile development approach enabled by using JHeadstart are underestimated.  The feature list document attempts to summarize these benefits.

Some people question the added value of JHeadstart when JDeveloper release 11 will be available. From a feature perspective, this can be answered as follows: three main JHeadstart features, advanced search, (cascading) single-select List of Values, and wizard style pages will be much easier to build with JDeveloper 11.
Building these features without JHeadstart in JDeveloper 10.1.3.2 is very complex and time-consuming. So, yes, the amount of time saved by using JHeadstart to build these features is less, so you could say JHeadstart adds less value there. But that's not the whole story.
For a start, we take it as a compliment that major JHeadstart features have been recognized as being useful and powerful enough to get better declarative support in ADF. This confirms our message that JHeadstart is founded on ADF best practices collected on a daily basis by Oracle Consulting and other JHeadstart users worldwide.
Secondly, the easier a feature can be built manually, the easier we can generate it, and the easier you as a developer can modify it. For example, the JHeadstart runtime code that implements the sophisticated List of Values functionality in 10.1.3.2, is pretty complex. With release 11 we hope we can dramatically simplify that code. Less and simpler code is better for everybody: less bugs and easier to maintain, extend and override.
Thirdly, with 15 years of experience in building application generation technology, we know that the more powerful the underlying framework (either Designer/Forms or ADF) is, the more advanced features we can generate. New JDeveloper 11 features like page templating, page fragments, regions, new rich UI components, and ADF task flows open a range of new opportunities for JHeadstart 11. We have not finalized the list of new features yet, agile as we are :-), but here are some ideas we have:

  • Leverage the new UI components by adding numerous group layout styles, and item display types.
  • Add generator switches that allow you to generate one group or a
    collection of groups as an ADF region with bounded task flow. You can
    then assemble the final pages of your composite web 2.0 application by dragging
    and dropping WebCenter components, as well as JHeadstart-generated
    regions onto the same page. In other words, you can use JHeadstart to
    generate a library of reusable UI components. 
  • Support for data controls based on other technologies than ADF Business Components.
  • Tree and Tree-Table Layouts in List of Values
  • Report launch form for BI Publisher
  • Add persistable drag and drop support. Drag and drop in web pages is one thing, but you typically need to write some code to persist the drag and drop action to the database. JHeadstart can provide this code for you, just like we do today with the shuttle functionality.
  • Integrate JHeadstart permission-based security with ADF Model security. In release 11 the ADF Model security becomes "pluggable", which means we should be able to use JHeadstart permissions to authorize access to ADF model bindings.
Do you have additional ideas?  Let us know!

To summarize, we think the added value of JHeadstart will only increase with release 11!

Finally, as explained in the feature list and demoed at Oracle Open World, migrating to JDeveloper 11 is easiest when you start using JHeadstart today!

February 22, 2008

The Usefulness of JHeadstart and UI Generation in general

There is an interesting blog discussion going on about when JHeadstart is useful, or more generic, if a user interface generation tool is useful at all. See Lucas Jellema's post Should we use JHeadstart for our ADF Project? It is NOT a black or white decision! with its comments, and Lonneke Dikmans' post User experience can�t be generated with its comments.

August 26, 2008

JHeadstart R11 at Oracle Open World 2008

JHeadstart will be present at Oracle Open World 2008 in San Francisco.
With the upcoming JDeveloper release 11, and the progress we have made in the last months with JHeadstart release 11, we recently decided to make this a release-11 only presentation.
Unfortunately, we could not change the title and abstract anymore in the official OOW content catalog to reflect this. This would have been the updated version:

Oracle JHeadstart R11: Unprecedented Productivity in Developing Best-Practice Fusion Web Applications

JDeveloper and ADF release 11 contain many new features for fusion web development. This session explains how Oracle JHeadstart release 11 can help you in building sophisticated enterprise-class fusion web applications that leverage powerful new ADF features like model-based List of Values, bounded taskflows, XML-driven menus, and all the new rich user interface elements. Learn how JHeadstart can save you months of development time by automating time-consuming ADF development tasks through powerful utilities and generators using many ADF best practices. Finally, if your organization has an investment in Oracle Forms, you should come and see how the JHeadstart Forms2ADF Generator can help you with the transition from Forms to ADF.

As you can see, we put more emphasis on best practices. While working on release 11, exploring all the new ADF 11 features, we realized that the JDeveloper tag line "Productivity with Choice" is more true than ever. With all the new features there are many more choices to make. Do I use a bounded or unbounded task flow? Do I use pages or page fragments? When do I use shared application modules? When do I use page templates? When do I use (dynamic) declarative components?
We have put quite some time in studying the comprehensive developer's guides and internal fusion development guidelines, discussions with subject matter experts, and our own expertise to work out and implement ADF 11 best practices in JHeadstart 11. And the web application generator is no longer the only productivity booster. We are adding a set of utilities that automate other ADF development tasks. For example, there is a utility that based on the associations and viewlinks will create model-based List of Values for all View Objects. The LOV's are based on auto-created read-only view objects that are added to a shared application module.

OK, I hope this was teasing enough to attend my presentation at OOW (Oracle Develop), session S298888, on sunday september 21, starting at 13.15, in the Marriot Hotel Salon 5. (And you are welcome to bring me a present, it's my birthday:-)

If you are not able to attend OOW, you can get a sneak preview on the AMIS Dutch OOW Speakers Session, on september 11.

September 22, 2008

JHeadstart R11 Well Received at OOW

Yesterday, I presented the upcoming JHeadstart release 11 at Oracle Open World. The room was packed, and everyone seemed to have a good time, including the presenter :-) The numerous demo's ran fine and seemed to impress the audience. After my demo of the JHeadstart Forms2ADFGenerator, I asked whether they liked what they had seen. I didn't get any reply, just a big round of applause.....
The slides can be downloaded here.

I will be hanging out on the campgrounds around the JDeveloper booth on wednesday september 24 from 11.00-13.30. So, if you are at OOW and missed my presentation, or want to see more, just step by and I am happy to tell and show everything about JHeadstart.

October 8, 2008

Clear search criteria on lov start-up in JHeadstart 10.1.3

A list of values (LOV) is an ADF Faces component that allows the user to select an item from a popup window with a list of items and load the value(s) into the specified field(s). Oracle JHeadstart automatically generates several search features for LOV type fields. It generates the simple and advanced search functionalities, in addition of validating text entered against the list, showing the records that meet the filter or, if there is just one match, loading the values in the fields. The criteria and results of the latest executed search are maintained during the session. This behavior is the same for any search executed on any ViewObject usage.
It can be required for LOV type fields not to save criteria and results from the previous search but instead show the complete list to choose in the lookup. To achieve this behavior it is necessary to clear the search criteria and re-execute the query with no filter values. This represents a performance penalty by having to execute an extra query each time a LOV is opened. The positive side is that it is only necessary to execute this extra query when the previous one was executed with not null criteria values.
The steps to implement this solution in JHeadstart 10.1.3 are described below:

  1. Extend the oracle.jheadstart.controller.jsf.bean.LovItemBean class.
  2. Overwrite the setLovSearchBean method, which is invoked several times during the use of a LOV:
    • Loading a page that contains any LOV type field.
    • Opening the window associated to a list of values.
    • Validating a string against a LOV.
    • Selecting a value from a LOV
    • Closing the window associated to a list of values.

    This method receives an object of type oracle.jheadstart.controller.jsf.bean.JhsSearchBean that contains the objects where the search criteria are kept:
    • SearchText and Criteria when Quick Search is executed.
    • Criteria when Advanced Search is executed.

    To ensure that a full query is executed if the previous search was more restricted, change the overridden method as shown below:
           public void setLovSearchBean (JhsSearchBean lovSearchBean){
             JhsSearchBean lsb = lovSearchBean;
             if(lsb!=null && (lsb.getSearchText()!=null || lsb.getCriteria().size()>0)) {
                lsb.setSearchText(null);
                lsb.getCriteria().clear();
                lsb.quickSearch(); 
             }
             super.setLovSearchBean(lovSearchBean);
           }
    Only when SearchText object is not null or Criteria object is not empty, the search criteria is cleared (lsb.setSearchText(null) lsb.getCriteria().clear()) and the search with no filter values is re-executed (lsb.quickSearch()).
  3. Create a new version of the velocity template misc/facesconfig/lovItemBean.vm which will reference the new class created in the first step:
           <managed-bean>
              <managed-bean-name>${bean.beanName}</managed-bean-name>
              <managed-bean-class>new LovItemBean class created</managed-bean-class>
              <managed-bean-scope>request</managed-bean-scope>
              …
           </managed-bean>
    See section 4.7 of the JHeadstart Developer's Guide for more information about customizing generator templates.
  4. Associate this new template to the LOVs requested to have this behavior.

July 16, 2009

2 members JHeadstart Team in Oracle Innovation Showcase

We are honored that 2 of our JHeadstart Team members are included in the Conversations with Oracle Innovators of the Oracle Innovation Showcase.

Full credit to Steven, who is the driving power behind the JHeadstart innovations!

August 12, 2009

Oracle JHeadstart 11.1.1 Technical Preview 2 Now Available

Oracle JHeadstart 11.1.1 Technical Preview 2 is now available for download (build 11.1.1.0.46).
This release is compatible with JDeveloper 11 release 1 (11.1.1.1.0), as well as with the two JDeveloper Boxer releases (11.1.1.0.1 and 11.1.1.0.2).
Customers who own a JHeadstart supplement option license can download it from the Consulting Supplement Option portal.

An evaluation version of JHeadstart 11.1.1 is not yet available. We plan to make an evaluation version available in the fall of calendar year 2009.

In addition to many small enhancements, the following features have been added to the second technical preview:

  • Support for Stretching Layouts: JHeadstart now fully supports stretching options for ADF Faces Rich Client components. Through a new group-level property Enable Stretching, you can stretch the generate group content to fill the available space. Whether or not stretching will actually occur depends on some additional conditions that must be met. See the help description of this new group property in the application definition editor, and the JHeadstart Developer's guide for more info.
  • New Table Overflow Styles: The Table Overflow Style group property has two new allowable values: 'Right with Splitter' and 'Below with Splitter', which are useful settings when you want to generate multiple panes with stretching layouts that adjust based on the position of the splitter.
  • New Allowable Values for Same Page Display Position: The Same Page Display Position group property has two new allowable values: 'At the Right of Parent Group with Splitter' and 'Below Parent Group with Splitter', which are useful settings when you want to generate multiple panes with stretching group layouts that adjust based on the position of the splitter.
  • New Allowable Values for Region Container Layout: The Layout property of a region container has two new allowable values: 'Horizontal with Splitter'
    and 'Vertical with Splitter', which are useful settings when you want to generate multiple panes with stretching region layouts that adjust
    based on the position of the splitter.
  • Ability to Add Bindings to PageDefinition using Velocity Templates: It is now possible to add bindings and iterators to the page definition using
    custom velocity templates. Here are some examples:

    ${JHS.pageDefGenerator.addBinding($JHS.page,"myBinding","#CUSTOM_BINDING()")}
    ${JHS.pageDefGenerator.addExecutable($JHS.page,"myIterator","#CUSTOM_BINDING()")}
    ${JHS.pageDefGenerator.addParameter($JHS.page,"myParam","#CUSTOM_BINDING()")}


    The custom binding macro simply contains the XML you want to add to the page definition. This macro can be defined within the same
    velocity template.
  • Flex items: The 10.1.3 functionality of Flex Items (items added dynamically at runtime) is now re-implemented for release 11. The region that
    contains the flex items is now a reusable task flow, providing you with more flexibility and re-use of code.

  • File up/download: File upload, file download and display of images is now supported in release 11. It supports Intermedia (ORDSYS) column types, as well
    as BLOB column types

  • XML Reformatting: There is a new application-level property Reformat all XML Files which will reformat all generated XML files (except for the page definitions),
    giving you more readable and consistent files accross your application.

  • Upgrading from 10.1.3: When opening a 10.1.3 application definition file, JHeadstart will migrate this to release 11 upon your approval.

Click here for a list of features added in the first technical preview:

For a complete list of all existing features in JHeadstart 10.1.3, use this link.

About JHeadstart Generic

This page contains an archive of all entries posted to JHeadstart Blog in the JHeadstart Generic category. They are listed from oldest to newest.

JDeveloper IDE is the previous category.

JSF / ADF Faces is the next category.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type and Oracle