# ImageJA

 Name ImageJA Software ImageJA Author Maintainer Travis CI File Newer versions [on Maven Central](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22net.imagej%22%20AND%20a%3A%22ij%22) Older versions [in ImageJ Maven repository](http://maven.imagej.net/content/repositories/releases/net/imagej/ij/) Source Git repository Status auto-maintained

ImageJA is a project that provides a clean Git history of the ImageJ 1.x project, with a proper ‘pom.xml’ file so that it can be used with Maven without hassles.

## Why ImageJA?

The ImageJ1 project, developed by Rasband , lives in the imagej/imagej1 repository on GitHub. The imagej1 repository uses the Ant build system. Changes are pushed (at most) once per day, with a corresponding datestamp. This scheme has some drawbacks:

• ImageJ1 artifacts cannot be published easily to public repositories for use as a dependency downstream.
• The imagej1 repository’s source code does not precisely correspond to ImageJ 1.x’s actual releases. Hence, that repository does not have any Git release tags.
• Developing ImageJ1 in an IDE would be more convenient if it were structured as a Maven project.

The ImageJA project is an adjusted version of ImageJ1 which addresses the above limitations.

## How it works

The ij1-builds job on Travis CI polls the ImageJ1 release notes page for updates. When something has changed, the job performs the following actions:

1. Downloads the latest ImageJ1 source archive from the ImageJ 1.x website.
2. Extracts the archive.
3. Restructures the source code into a Maven project.
• Sources are placed in src/main/java.
• A pom.xml is added.
4. Commits and pushes the result to the master branch of the imagej/ImageJA repository on GitHub.

The push triggers the followup job, which builds and deploys the ImageJA project to the Maven Central repository (via OSS Sonatype).

## Historical note

ImageJA was originally launched in 2005 as a fork of ImageJ1; i.e., it was synchronized closely with ImageJ with a few changes on top:

• When run as an applet, ImageJA is embedded.
• The internal structure of ImageJA’s recorder allows command listeners to get much more fine-grained information.
• When launching a text editor, in many cases ImageJA will now choose Fiji’s Script Editor, if available, instead of the old AWT based ImageJ editor.
• ImageJA has an easy Plugin installer via Plugins › Install PlugIn… (ImageJ only has that drag-n-drop thingie).
• The instance listener is RMI-based with ImageJA, so there is no security issue with it.
• ImageJA’s Command Launcher has fuzzy matching, too.
• A couple of bug fixes:
• JavaScript in ImageJA can find plugin classes, too.
• ImageJA also put back some not-yet-deprecated methods as deprecated.
• A simple bug fix in PolygonRoi drawing (it moves to the first point, but then draws a line to the same first point rather than the second).
• A little bug fix in StackWindow: if you have a 2D time lapse, ImageJ will still use the zSelector (rather than the tSelector).
• ImageJA can handle https:// URLs, too.

However, these days, needed changes to ImageJ 1.x are instead patched at runtime; see the Compatibility page for details.