Skip to main content
jCoderZ.org / Java tooling collective
  1. Home
  2. fawkeZ
  3. Wiki
  4. Wiki start page

fawkeZ wiki / last edited 13 December 2006

Wiki start page

The original entry point into the fawkeZ project, recorded in 2006 and updated when the 2.0.0 release work began.

Welcome to fawkeZ

fawkeZ is a set of Java classes, tools and utilities, together with a set of principles and guidelines for agile software development. It is released under the BSD license.

News

Release work Work started on fawkeZ 2.0.0, which gets rid of old and unused features and converts the project from an Ant based build into multiple Maven projects. Read the release notes.

What is fawkeZ?

The fawkeZ project provides a set of Java classes, tools and utilities that are freely available under a BSD license. More fundamentally, fawkeZ incorporates a set of principles and guidelines for agile software development. Of course the Java components, tools and utilities can be used without strictly following those principles, but they reveal their real power only when used in combination.

fawkeZ has been developed over many years in software development. In the past, the combination of tools, components and principles supported the team in writing high quality Java software. The project is released as an open source library so those benefits are freely available to everyone.

What components does fawkeZ consist of?

Code analysis

Tools like PMD, Checkstyle, FindBugs and Cobertura deliver high quality code analysis features. What was missing was a combined representation of the various findings. The jCoderZ report tool reads the XML output of the analysis tools and creates a single report which combines all findings in one XML report file and a set of easy to browse HTML files.

Another feature of the jCoderZ report tool is a summary report generator. The report tool creates separate reports, but there is no linking between the reports and no statistical overview of how the number of findings evolves over time. The jCoderZ summary report tool tracks the number of findings from the XML files and stores them into four categories: error, warning, info and filtered. The final output is an HTML page that shows the trend in the number of findings.

A JcReport findings page with severity counts and a source listing
The findings report produced by JcReport for the fawkeZ build.

Documentation

The project provides tools and guideline documents from the area of software lifecycle documentation:

  • Software Requirements Specification generator. The SRS generator uses an XML file as input, where the requirements are defined in a formal structure. The input can be rendered as PDF or HTML.
  • Software Architecture Document generator. The SAD generator uses XML fragments and Javadoc input to generate DocBook XML, which can also be rendered as PDF or HTML.
  • Java coding guideline document. The Java coding guidelines can easily be used as a template for your own document.
  • SQL coding guideline document. The SQL coding guidelines follow the same pattern.

All of the documentation tools use DocBook as a backing technology. More on documentation.

Utility classes

Many useful utility classes for Java development are included in the project, for example a null assertion class, a date class and a base64 encoder and decoder.

Code generators

A set of XSLT based code generators turns structured XML input into Java code. Some generators create exceptions and log messages supporting the JSR47 based logging concept. Others generate strong types, including enums for JDK 1.4 and earlier. There is also a generator for composite objects, better known as POJOs or Java beans.

The generators are built to run with every compile, as opposed to one shot code generators. You only store the XML input and generate the Java code with every compile. This supports the DRY principle.

Misc

There is more material in the project. The other modules page lists the J2EE service framework, the logging concept, database helpers, the chart library and archive instrumentation.

Getting fawkeZ

If you want to use any of the features above, read the page on how to get fawkeZ. It gives an overview of the different ways to obtain the distribution archives.

Contributing to fawkeZ

The fawkeZ project is an open source project which lives from the contributions of the community. We appreciate any help you can offer. To make sure your contribution is recognised effectively, please read the page on how to contribute to fawkeZ first.

FAQ

The answers to the most frequently asked questions can be found in the FAQ.

References