Apache Ant site Apache Ant logo

the Apache Ant site
Home
Projects
 

External Tools and Tasks

External Tools and Tasks

This page lists external resources for Apache Ant: Tasks, Compiler Implementations, IDE integration tools, Source Control Systems, loggers, you name it. If you've written something that should be included, please post all relevant information to one of the mailing lists. For details, see the FAQ.

Nothing listed here is directly supported by the Ant developers (therefore 'external tools and tasks'), if you encounter any problems with them, please use the contact information.

Tasks

AJC

AspectJ is an aspect-oriented extension to Java. This task compiles a source tree using the AspectJ compiler -- AJC.

Compatibility: Ant 1.3
URL: http://www.eclipse.org/aspectj/
Contact: project mailing lists
License: Apache Software License

Anakia

Actually, Anakia is more than just an Ant task, it is a an XML transformation tool based on JDOM, Velocity and Ant.

Compatibility: Ant 1.2 and later
URL: http://jakarta.apache.org/velocity/anakia.html
Contact: Velocity mailing lists
License: Apache Software License

Andariel

Andariel is a set of tasks designed to help the generation of HTML (and other markup languages) pages from Ant. Includes a XPath processor, an image information retriever, and others.

Compatibility: Ant 1.5.4 and newer
URL: http://andariel.uworks.net/
Contact: josep DOT rio AT uworks DOT net
License: Apache Software License 1.1

Ant2Svg

Ant2Svg creates a graphical representation of an Ant build file. The graphical representation is in the form of a Scalable Vector Graphics (SVG) file that can be displayed in a web browser. This simplified SVG depiction helps the developer understand build file structure and identify extraneous or missing dependencies.

Compatibility: Ant 1.6.1 and higher
URL: http://www.spiritedsw.com/ant2svg/
Contact: loney <at> spiritedsw <dot> com
License: The Apache Software License 2.0

ant4eclipse

ant4eclipse provides a set of Ant tasks to make several configurations from the Eclipse IDE available in Ant buildscripts. The tasks are aimed to avoid redundancy between Eclipse and Ant configurations in order to build small but powerful build systems for the continuous integration process

Compatibility: Ant 1.6.1 and higher
URL: http://ant4eclipse.sf.net
Contact: ant4eclipse user mailing list
License: Sun Public License

Antcount

Antcount is a set of filters that can be used to gather statistics from files or resources. It is mainly used for log files analysis. It allows to:

Antcount also includes some useful filters to:

Compatibility: Ant 1.6.2 and higher
URL: http://antcount.sourceforge.net/
Contact: Patrick Martin
License: LGPL

AntDoc

AntDoc is a tool that generates HTML documentation from Ant buildfiles; the generated HTML is inspired from what javadoc yields. AntDocGUI offers a simple Ant target launcher named AntDoc GUI. Ant targets may be launched from the generated AntDoc HTML pages. Integration to various IDEs is in progress.

AntDoc can be run via an Ant task, AntDoc GUI can be run via an Ant task, or via a JVM launch.

Compatibility: Ant 1.4.1 and higher
URL: http://antdoc.free.fr/
Contact: Edouard Mercier
License: The Apache Software License

AntDoclet

AntDoclet is a tool to automatically generate documentation out of your Ant Tasks' source code.

It is implemented as a Javadoc doclet, and generates reference documentation and other deliverables from the source code of your custom Ant Tasks/Types.

Compatibility: Ant 1.6+ (not tested on earlier versions)
URL: http://antdoclet.neuroning.com/
Contact: Fernando Dobladez
License: GPL

Anteater

Anteater is a set of Ant tasks for the functional testing of websites and web services (functional testing being; hit a URL and ensure the response meets certain criteria). Can test HTTP params, response codes, XPath, regexp and Relax NG expressions. Includes HTML reporting (based on junitreport) and a hierarchical grouping system for quickly configuring large test scripts.

Compatibility: Ant 1.5 and later
URL: http://aft.sourceforge.net/
Contact: developer mailing list
License: Apache Software License

AntForm

Provides a java/swing form-based input scheme for configuring ant properties and launching ant targets.

Compatibility: Ant 1.6.2.
URL: http://antforms.sourceforge.net/
Contact: René Ghosh
License: GNU General Public License

Antmerge

Provides simple inheritance between ant files

Compatibility: Tested with 1.5. Should work with all versions.
URL: http://www.russet.org.uk/antmerge.html
Contact: Phillip Lord
License: GNU Lesser General Public License

AntPrettyBuild

Ant Pretty Build is a tool to easily show and run Ant buildfiles directly from within a browser window. It consists of a single XSL file that will generate, on the fly, in the browser, from the .xml buildfile, a pretty interface showing project name, description, properties and targets, etc. sorted or unsorted, allowing to load/modify/add properties, run the whole project, or run selected set of targets in a specific order, with the ability to modify logger/logfile, mode and add more libs or command line arguments.

Compatibility: All Ant versions
URL: Ant Pretty Build Homepage
Contact: Charbel BITAR
License: Apache License V2.0

AntSpaces

AntSpaces provides Ant integration with JavaSpaces. This allows you to coordinate Ant tasks via JavaSpaces, pull out work units from a JavaSpace for distributed Ant tasks to work on, and so forth.

Compatibility: Ant 1.5 and later
URL: http://www.oopsconsultancy.com/software/antspaces/
Contact: antspaces at oopsconsultancy.com
License: Apache Software License

AntTimerTask

Timer is task for measuring the time elapsed to complete other tasks

Compatibility: Ant 1.6
URL: http://www.jeckle.de/freeStuff/AntTimerTask/index.html
Contact: mario@jeckle.de
License: Lesser GNU Public License

Ant Web Start Task

Ant Web Start Task is an Ant task allowing developers to package a desktop application as a WAR (Web Application Archive) to be distributed over the net via Java Web Start

Compatibility: Ant 1.5 and above
URL: http://ant-jnlp-war.sourceforge.net/
License: Apache Software License 2.0

AntXtras

A collection of powerful Ant extensions components organized into five categories: fixture-control, execution-rules, flow-control, feedback, and helpers.

Compatibility: Ant 1.6.5
URL: AntXtras Home
Contact: SSMC
License: GNU Lesser General Public License (LGPL 2.1)

Build Number

Build Number is a tool to track software artifacts such as files and automatically assign proper version/build numbers to them. It ensures that two different artifacts will have different version/build numbers, but identical artifacts/builds will be assigned the same number. It doesn't take version management away from you and doesn't replace your build process, but rather plugs into the process and introduces version/build number governance by defining who is in charge of which part of version number. With Build Number you are still in charge of the head of the version number. E.g. you may decide to have 4 numbers in your version (major, minor, interface, implementation) and you want to manage the two first numbers (major and minor). Build Number will take care of the tedium of managing the last two numbers (interface and implementation).

Compatibility: Tested with Ant 1.5.4 and 1.6.5
URL: http://www.hammurapi.biz/products/buildnumber
Contact: Project Contact Page
License: Commercial

Checkstyle

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. Its purpose is to automate the process of checking Java code, and to spare humans of this boring (but important) task.

Checkstyle can be run via an Ant task or a command line utility.

Compatibility: Ant 1.4.1 and later
URL: http://checkstyle.sourceforge.net/
Contact: Oliver Burn
License: Starting with release 2.0 the license is the GNU Lesser General Public License. Prior releases were under the GNU General Public License.

ChownTask

ChownTask is an Ant task to change ownership of files on Unix.

Compatibility: Ant 1.3 and up
URL: http://sourceforge.net/projects/chowntask/
Contact: Wilfred Springer
License: GNU General Public License

CleanImports

Removes unneeded imports. Formats your import sections. Flags ambiguous imports.

Compatibility: Ant 1.3 and up
URL: http://www.cleanimports.tombrus.nl
Contact: Tom Brus
License: Apache Software License

Clover

Clover is an Ant-based Code Coverage tool. It can be used seamlessly with Ant-based projects. It provides method, statement, and branch coverage analysis, and has rich reporting in XML, HTML or via a Swing GUI.

Compatibility: Ant 1.4.1 or greater
URL: http://www.cenqua.com/clover/
Contact: clover-support@cenqua.com
License: Commercial, free licenses available for open source projects.

CMSDeploy

CMSDeploy is an Apache Ant Task to submit files and templates to Vignette CMS.

Compatibility: Ant 1.5.1 and later
URL: http://cmsdeploy.sourceforge.net
Contact: masogato@users.sourceforge.net
License: GNU Lesser General Public License

Cocoon Task

This task allows the generation of static web pages and sites using Apache Cocoon in off-line mode.

It allows the configuration information for Cocoon to be included within the Ant build file, and is thus able to take advantage of Ant properties.

The task shares its code with the Cocoon Command Line, which means that this task will instantly take advantage of any new functionality added there.

Compatibility: Ant 1.5.3 and above
URL: http://cocoon.apache.org/2.1/
Documentation: http://cocoon.apache.org/2.1/userdocs/offline/ant.html
Contact: users at cocoon.apache.org
License: Apache Software License

Configure

Recursive build support (call ant on every package level, and only build files in that package or in that package and everything below) with seperation of source and output.

The task generates build files in any subdirectory (except for CVS-directories) for you. Only place one build.xml file in the top and call target 'setup' or 'rescan'.

Compatibility: Ant 1.2 and 1.3
URL: http://www.dsdelft.nl/~lemval/ant/
Contact: M.J.P. van Leeuwen
License: License derived from Apache Software License

CVSGrab

A little CVS client that can be useful when people are behind corporate firewall that blocks any cvs communications. It uses the ViewCVS web interface to access the CVS repository via standard http, and downloads all the files present in it.

It works from the command line or as an Ant task.

Compatibility: Ant 1.3 or higher
URL: http://cvsgrab.sourceforge.net/
Contact: CVSGrab user mailing list
License: LGPL

Dependencies

The dependencies task manages a set of external dependencies which may be downloaded from a remote repository, such as ibiblio.org. Uses a local cache to avoid repeated downloads.

Compatibility: Tested with 1.5.1, should work with 1.4+.
URL: http://www.httpunit.org/doc/dependencies.html
Contact: Russell Gold
License: MIT License

Dependency Finder

Dependency Finder extracts dependencies and OO metrics from Java class files produced by most Java compilers. It can compute API differences between versions; no sources needed. It includes Ant tasks, web, Swing, and command-line interfaces, with XSL stylesheets for formatting output.

You can use it to extract dependencies between packages, classes, or even methods, or any combination thereof. You can use Perl regular expressions to filter the information and pinpoint only what you need. There is even a Web Application version (WAR file) so a whole group of developers can share a common view.

Compatibility: Tested with 1.5.3, should work with 1.4+.
URL: http://depfind.sourceforge.net/
Contact: Jean Tessier
License: BSD-like License

Doxygen task

There are two Ant tasks for running the Doxygen documentation system.

Compatibility: Ant 1.1 and later
URL: http://www.bgw.org/projects/java/ant/
Contact: Kyle R. Burton
License: Apache Software Foundation License

and

Compatibility: Ant 1.5 and later
URL: http://ant-doxygen.sourceforge.net/
Contact: Karthik A Kumar
License: Apache Software Foundation License

DTDDoc

DTDDoc is here to help you to document your DTD's efficiently. It is a straightforward extension of the javadoc concept to the DTD file format.

Compatibility: Ant 1.4 and later
URL: http://dtddoc.sourceforge.net/
Contact: Project Mailing List
License: X11 (Open Source)

EMMA

EMMA is an open-source toolkit for measuring and reporting Java code coverage. EMMA distinguishes itself from other tools by going after a unique feature combination: support large-scale enterprise software development while keeping individual developers work fast and iterative at the same time.

Compatibility: Ant 1.4 and later
URL: http://emma.sourceforge.net/
Contact: Mailinglist
License: Common Public License 1.0

FMPP

FMPP is a general-purpose text file preprocessor tool that uses FreeMarker templates. It is particularly designed for HTML preprocessor, for the generation of complete (static) homepages: directory structure that contains HTML-s, image files, etc. But of course it can be used to generate source code or whatever text files. FMPP is extendable with Java classes to pull data from any data sources (XML file, database, etc.) and embed the data into the generated files.

Compatibility: Ant 1.5.1
URL: http://fmpp.sourceforge.net/
License: BSD License

GenJar

Builds a JAR file based on class dependencies rather than simply the contents of a directory

Compatibility: Ant 1.4 alpha (built after 2001/08/04) and later
URL: http://genjar.sourceforge.net/
Contact: Jesse Stockall
License: Apache Software Foundation License

Grand

Grand is a set of tools to create a visual representation of Ant target dependencies. It works by taking an Ant build file and creating a "dot" file. It differs from the existing tools by relying on the Ant API rather than XML parsing to get the dependencies. It includes many advanced features such as filtering or rendering depending on the target's nature. Also features a SWT based GUI.

Compatibility: Ant 1.6 and later
URL: http://www.ggtools.net/grand/
Contact: Christophe Labouisse
License: BSD License

Greebo

Greebo is an Ant-task for downloading dependency files (currently only jars) from a network to a specified directory, much like Maven. It supports multiple local and remote repositories with either flat or maven-like structures. It can read the dependency list from a Maven project file, a maven-like dependency file, or directly from the build.xml file.

Compatibility: Ant 1.5
URL: http://greebo.sourceforge.net/
Contact: project mailing lists
License: Apache Software License

GroboUtils CodeCoverage

The CodeCoverage sub-project of GroboUtils provides a 100% pure Java code coverage tool. It uses pre-execution class file recompilation, and generates XML files containing the coverage statistics. It does not require any advanced VM setup to generate coverage numbers.

Compatibility: Ant 1.5.1
URL: http://groboutils.sourceforge.net/codecoverage/
Contact: project mailing lists
License: MIT License

Hammurapi

Java code review tool. Performs automated code review. Contains 111 inspectors which check different aspects of code quality including coding standards, EJB, threading, ...

Compatibility: Tested with Ant 1.5.x and 1.6.5
URL: http://www.hammurapi.biz/products/hammurapi
Contact: Project Contact Page
License: GNU General Public License (GPL)

HelpStudioAnt

This task allows for HelpStudio projects to be created via Ant.

Compatibility: Ant 1.6.0 and later
URL: http://helpstudioant.sourceforge.net
License: GNU General Public License

IDLDepend

idldepend is a task that (re)generates Java sources to be created from CORBA/IDL files.

It parses the IDL file and determines the Java files that must be generated, taking in account the modifications that can happen due to command line parameters. If any of the Java files are missing or older than the source IDL specification, it launches the specified compiler. The compilers of Orbacus, Jacorb, OpenORB, Orbix2k and Sun'JDK distributions are supported.

To speed up the process and avoid unnecesary re-parsing, it keeps the dependencies in intermediate files. This task does not launch the javac compiler as well, that is, its output are Java files and not the final bytecode.

Compatibility: Ant 1.4 or later
URL: http://grasia.fdi.ucm.es/~luismi/idldepend/
Contact: luismpena@gmx.net
License: free source, no license restrictions

Image

Image task generates and transforms images. It exposes the imaging capability available in Java2D, Java Advanced Imaging, ImageIO, etc., as set of nested elements.

Image transformations such as "resize" (scale),"overlay" (one image on another), "border" (add a border), "text" (text on image), "crop" (a sub-image of a bigger image), "rotate", "grayscale" (change a color image to shades of gray).
Now it supports transparency (making images translucent), a bestfit option for Resize, simple support for images within a security-constraint, a preliminary support (if pjatools.jar is available) for saving files as GIF and some other fixes.

IMPORTANT: You will need the PMIW (Poor Man's Imaging Wrapper) jar for all the operations and the pjatools jar for GIF encoding/ saving support.

Compatibility: Ant 1.4
URL: http://www.mullassery.com/software/ANT/
pmiw jar http://www.mullassery.com/software/PMIW/ (Poor Man's Imaging Wrapper)
pjatools jar http://www.eteks.com/pja/en/ (pjatools for GIF encoding support)
Contact: Abey Mullassery
License: Apache Software License

Importscrubber

Removes unnecessary import statements from a Java source code file.

Compatibility: Ant 1.3
URL: http://importscrubber.sourceforge.net/
Contact: Tom Copeland
License: LGPL

ImTask

ImTask is a task to allow one to send an Instant Message. Currently supports yahoo!, AIM, and Jabber

Compatibility: Ant 1.5 or higher
URL: http://imtask.sourceforge.net
Contact: Jon Madison
License: GNU LGPL

Incanto

Ant tasks to provide support for Oracle database tools (such as SQL*Plus, Import, Export)

Compatibility: Ant 1.6
URL: http://incanto.sourceforge.net/
Contact: Alexander Karnstedt
License: Apache License, Version 2.0

IsDirValidator

Checks whether a given directory structure conforms to certain rules that are defined via nested elements of the task.

Compatibility: Ant 1.4
URL: http://isvalidator.sourceforge.net/en/isDirValidator.htm
Contact: Iñigo Serrano
License: GNU General Public License

Ivy

Ivy is a simple yet powerful dependency manager featuring continuous integration, dependencies of dependencies management, multiple repositories including ibiblio and high performance (use of a local cache).

Compatibility: 1.5.1 or superior
URL: http://ivy.jayasoft.org/
Contact: contact at jayasoft dot org
License: BSD License

J2ME Ant Tasks

There are different sets of tasks to help build Java 2 Platform, Micro Edition (J2ME) applications.

*** Antenna ***

Antenna provides a set of Ant tasks suitable for developing wireless Java applications targeted at the Mobile Information Device Profile (MIDP). With Antenna, you can compile, preverify, package, obfuscate, and run your MIDP applications (aka MIDlets), manipulate Java Application Descriptor (JAD) files, as well as convert JAR files to PRC files designed to run on MIDP for Palm OS. Deployment is supported via a deployment task and a corresponding HTTP servlet for Over-the-Air (OTA) provisioning. A small preprocessor allows to generate different variants of a MIDlet from a single source.

Compatibility: Ant 1.4.1 or later
URL: http://antenna.sourceforge.net/
Contact: Jörg Pleumann
License: GNU Lesser General Public License
*** Antic ***

Antic is a freely available task for packaging J2ME applications. It produces both the Jar and Jad files in a single step. This allows *all* entries to be correclty set in the jad file, including the size of the jar file that is produced. This task has been used and tested extensively with Sun's Wireless Toolkit and also the Nokia SDK and emulators.

Compatibility: Ant 1.5
URL: http://www.smartkey.co.uk/tools/antic/antic.html
Contact: smartkey.co.uk
License: GNU General Public License
*** Dave's J2ME Tasks ***

This set supports CLDC and the K Virtual Machine (KVM):

Compatibility: Ant 1.3
URL: http://www.dribin.org/dave/j2me_ant/
Contact: Dave Dribin
License: Apache Software License
*** J2ME Polish ***

J2ME Polish is an Ant-based tool for the creation of MIDP applications. It covers the whole circle of preprocessing, compiling, obfuscation, preverifying, packaging and JAD-creation. J2ME Polish is ideal for creating device optimized applications with its powerful preprocessing capabilities and the integrated device database. With J2ME Polish no hardcoded values are needed and the portability of an application is not sacrificed, even though highly optimized applications are created from a single source.
It contains a logging framework and an optional MIDP-compatible GUI which can be designed using the web-standard CSS. With the J2ME Polish GUI you can even use MIDP/2.0 features on MIDP/1.0 phones.

Compatibility: Ant 1.4.1 or later
URL: http://www.j2mepolish.org/
Contact: Enough Software
License: GNU General Public License; commercial licenses available
*** Stampysoft's J2ME Tasks ***

And this set works with the J2ME Wireless Toolkit and MIDP for PalmOS:

Compatibility: Ant 1.3
URL: http://www.stampysoft.com/ant/
Contact: Josh Eckels
License: MIT License

Jacson

Jacson is a configurable and plugable tool (much like Ant itself) to create filters for text (line based) files without programming.

Compatibility: Jacson has been used and tested with 1.5.1, should work with 1.4+
URL: http://jacson.sourceforge.net/
Contact: jacson-user@lists.sourceforge.de
License: GNU Library or Lesser General Public License

Jalopy

An Ant Plug-in for the Java Source Code Formatter Jalopy.

Compatibility: Ant 1.4 (or higher)
URL: http://jalopy.sourceforge.net/
Contact: http://jalopy.sf.net/contact.html
License: Starting with release 1.0 Beta 6 the license is the BSD License. Prior releases were under the GNU General Public License.

JarBundler

JarBundler is a task that generates Mac OS X native Java Application Bundles. It is fully configurable and can be used to generate Mac OS X application bundles from any supported Java platform, making it ideal for targeting multiple platforms with one build.

Compatibility: Ant 1.4 and later
URL: http://www.loomcom.com/jarbundler/
Contact: Seth Morabito
License: GNU General Public License

JarPatch

JarPatch is a task that generates a zip file resulting of the diff between the content of 2 jar files.

The resulting diff file can be use as a patch for a previous installation (just ensure that the generated patch.zip file is located on the CLASSPATH before the patched oldJar jar file)

Compatibility: Ant 1.5 and later
URL: http://perso.club-internet.fr/sjobic/ant/
Contact: Norbert Barbosa
License: LGPL License

Java+ Precompile Task

Java+ is an open source Java preprocessor that adds these features to any Java compiler:

Compatibility: Ant 1.5.1
URL: http://virtualschool.edu/java+/
Contact: Brad Cox
License: BSD-like License

Java2Html

There are two different tools both named Java2HTML that process Java source code and generate syntax highlighted documentation from it. Both include Ant tasks to run them.

Java2Html library for converting java source files or snipplets to syntax highlighted html, rtf, tex and others.

Compatibility: Ant 1.5 and later
URL: http://www.java2html.de/
Contact: java2html@jave.de
License: GNU General Public License

Java2HTML is a simple-to-use tool which converts a bunch of Java Source Code into a colourized and browsable HTML representation.

Compatibility: 1.5.1 onwards
URL: http://www.java2html.com/java2html_ant_task.html
Contact: support@java2html.com
License: FreeWare

Javamake

A task to compile Java sources and manage class file dependencies. Functionality is equivalent to that of standard Javac and Depend tasks combined, with improved dependency checking.

Compatibility: Ant 1.4.1
URL: http://www.experimentalstuff.com/Technologies/JavaMake/index.html
Contact: Mikhail Dmitriev
License: BSD-like License

javarec

Ant tasks that generate record classes for VisualAge for Java from Cobol copy books.

Compatibility: Ant 1.4
URL: http://glezen.org/javarec/
Contact: Paul Glezen
License: Apache Software License

JCSC

JCSC is a Java Coding Standard Checker which also features the generation of some code metrics. It is a command line tool with an Ant task to scan whole package trees. The result can viewed in an JavaDoc style web page.

Compatibility: Ant >= 1.5
URL: http://jcsc.sourceforge.net/
Contact: Ralph Jocham
License: GNU General Public License

Jdiff

A task that generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.

Compatibility: Ant 1.6
URL: http://javadiff.sourceforge.net/
Task Documentation: (in CVS)
License: LGPL

JFlex

JFlex is a lexical analyzer generator (also known as scanner generator) for Java, written in Java.

Compatibility: Ant 1.5
URL: http://jflex.de/
Contact: jflex-users mailing list
License: GNU General Public License (GPL)

JindentTask

JindentTask is a very straightforward wrapping of the Jindent tool, a vendor code beautifier. It enables to use Jindent natively from Ant.

Compatibility: Ant 1.4.1 and higher
URL: http://the.edouard.mercier.free.fr/Jindent_content.php
Contact: Edouard Mercier

Jing Task

Validates XML files against the RELAX NG alternative to XML Schema. The Jing task for Ant allows you to efficiently validate multiple files against multiple RELAX NG patterns and integrate RELAX NG validation with other XML processing.

Compatibility: Ant 1.4 and later
URL: http://www.thaiopensource.com/relaxng/jing-ant.html
License: BSD-like

jMetra

jMetra is a tool for collecting code metrics across a project lifecycle and compiling the results into JavaDoc-styled documentation to analyze project metrics over time. jMetra is best utilized by integrating it with your project's scheduled build process.

It works from the command line or using several provided Ant tasks.

Compatibility: Ant 1.4 and higher
URL: http://www.jmetra.com/
Contact: R Todd Newton
License: Commercial, free licenses for open source projects and evaluations.

JMX4Ant

JMX4Ant provides tasks for integration with JMX (Java Management Extensions). It provides tasks for getting and setting attributes of MBeans, invoking their methods and much more.

Compatibility: Ant 1.4 and higher
URL: http://jmx4ant.sourceforge.net/
Contact: Brian Dueck
License: Apache Software License 1.1

JNI

JNI is a free toolkit that makes easy work of integrating Java and C through the Java Native Interface (JNI). It includes a code generator that generates both Java "proxy" classes to access C "peer" classes, and C "proxy" classes to access Java "peer" classes or interfaces. It also includes a core library with a simplified JVM interface as well as "helper" classes to ease working with the JNI data types. The code generation is driven by a