Jaffa Logo
Home Contact Us FAQs Site Map
Source Forge: Homepage Bugs @ Sourceforge Mailing Lists @ Sourceforge Task Manager @ Sourceforge CVS @ Sourceforge
Jaffa Site
Jaffa Runtime
Jaffa RAD

Application Quick Start / Migration Tools

With the JAFFA pattern generation engine in place, the key for rapidly building an application is to come up with standard component patterns for software components that are used time and time again. As Java is a 3GL, there is a great deal more code to write that in a typical 4GL rapid tool. Also building a n-tier application as opposed to a simple client/server model, requires more software layers and again more code.

With a pattern/template based approach the volume of code that must be written is dramatically reduced. By writing a component once and then abstracting it to a reusable pattern, we can then generate multiple custom versions of that component just by using different XML component descriptors. This greatly increases development time. If your patterns can be regenerated, fixing bugs and regenrating the code can be done in just minutes.

JAFFA does not just provide a fixed set of components, it provides all the tools needed for you to start building your own patterns, that solve other problems in your domain. The hope is that anyone that creates new patterns will release them back into the JAFFA project, so that we can offer a wider range of component patterns and allow different project based on JAFFA to share, exchange and collaboratively develop new patterns.


The diagram below is an illustration of the vision we have for the tools and pattern engine inside the JAFFA project. It covers building domain objects, a tool for infering inquiry and maintenance components based on the domain objects and there relationships, and other tools that could be used to extract information from other legacy systems and generate component descriptors from them.

Quick Start

The basic process you should follow for building an application is...

  • Read and follow our recommendations for the project package structure and naming conventions. Use this information to set up the project, or check out the sample app and remove its code, that would probably be quicker!

  • The next big step is to move the domain model into JAFFA, see below for options on this.

  • Code generate the basic components for which we have already created patterns (The App Builder has been designed specifically to do this step)

  • Tailor the domain objects by adding an business rules. It is best to put the rules in the domain objects where possible, as this achieves the highest level of re-use

  • Tailor the pre-generated components. Typically the JSP's look and feel

  • Tailor the main CSS as this controls much of the 'look' of the generated JSP's

  • Add any additional logic to the Form Beans, Action, Component and Transaction Controller classes. You have two choices here. If you place your code inside the un-guarded sections in the generated classes, it will be possible to re-generate those classes again, preserving the custom code you added. Option two, is that the generation was done as a one-off, and in that case you can edit all the code (you may want to use a basic text editor to remove the guards, else Forte won't let you customize all the code)

  • For new components that don't match the basic templates, we recommend once you have designed and modelled your new components you use the 'component skeleton' pattern to initially generate the component and screens. This is faster then creating all the required classes by hand. The skeleton pattern is not intended to be repeatable, it is intended to be a one time generation pattern.

  • At this point it is up to you to build in any other functionality...Good luck

Migrating The Domain Model

We have looked at three possible starting points for creating the domain model

  • An existing development tool. In this case we have built a utility to extract the data dictionary from the Uniface (v7.2.x) tool.

  • An existing domain object model, modelled as a simple set of related Java beans with various relationships between them. This tool is not yet available.

  • An existing data base schema. This tool will need to read the meta data of the tables in the database.

  • Existing ER Tools. We have been looking at some ER modeling tools for viable domain object model extraction. ERWin being the primary candidate for this

Note: Both the Java bean model and the data base schema, don't have all the semantic data about the fields that is supported by the JAFFA FieldMetaData objects, where as a Tool like Uniface allows this level of data to be extracted.

File: index.html, Last Modified: Tue Jul 15 2003 at 4:47:44pm. This site has been built using PPWIZARD