|Tools / Patterns
The diagram below, explains the Jaffa approach to Rapid Application Development (RAD).
It involves translating existing database definitions into Domain Objects to be used
by a Jaffa application. The Jaffa RAD also provides easy creation of different component
types from XML-based component descriptors.
|Tools / Patterns / Execution||org.jaffa.tools.patternengine
The Code Generator requires the following 2 configuration files.
- PatternGenerator.properties - specifies the location for the code generated files,
the location for the temporary files and the location for the log files. This file
should be placed in the ‘patterns’ package
- WebMacro.properties - specifies the WebMacro configuration. This file should be
placed in the ‘patterns’ package
These files are part of the ‘jaffa-tools.jar’ distributable and can be found under
the ‘patterns’ package. To customize any setting, modify a copy of the file(s) and
ensure that the modified files(s) appear before jaffa-tools.jar on the classpath.
The input to the Code Generator is a component descriptor file. This component
descriptor file specifies the Pattern to be applied and information (like application
name, module name, component name, etc. etc.) required for the generation of a
|The command line invocation of the Code Generator
java org.jaffa.tools.patternengine.PatternGenerator component-descriptor
The component-descriptor file should be relative to the classpath,
and you must ensure that the classpath contains all the Jaffa and related JARs.
This process can be invoked using an ANT script. Look as the sample application for
a set of
execute scripts that apply each pattern type.
|Tools / Patterns / Pattern Library||patterns.library
At the heart of the Jaffa RAD is a library of the different component patterns.
Each component pattern comprises of
- An XML-based pattern descriptor. This file declares the various files (java,
jsp, etc. etc.) to be generated by the Code Generator. The ‘Override’ element for
each generated file determines if subsequent invocations of the Code Generator
would merge, override or leave-as-is the existing file
- A set of template files (*.wm) used for code generation. These template files
are based on WebMacro. The Code Generator uses the WebMacro engine to generate
meaningful code from the templates
- A DTD for the component descriptor. The DTD is used for validating component
descriptors. The component descriptor helps the Code Generator to determine the
The Pattern Library is part of the ‘jaffa-tools.jar’ distributable and can be found
under the ‘patterns’ package. To customize any pattern, modify a copy of the pattern
file(s) and ensure that the modified files(s) appear before jaffa-tools.jar on the classpath
|Tools / Patterns / Pattern Library||org.jaffa.patterns.library
This set of packages contain a set of JAXB generated classes that match the XML Schemas for the patterns. These are
availabe for use by any too that wants to read in or write out pattern meta data. Right now we have these defined
for domain objects, for tools that create domain objects definitions from other tools, and also we have the four main
component patterns that are used by the CRUD application builder.