Skip to content

Commit

Permalink
Retire ImageJA
Browse files Browse the repository at this point in the history
Relevant functionality of the ImageJA project has been rolled into the
core ImageJ repository, which has been renamed from imagej1 to ImageJ,
so ImageJA is no longer necessary.

See: imagej/ImageJ#142
  • Loading branch information
ctrueden committed Jan 20, 2022
1 parent 079c0f7 commit 0084c55
Show file tree
Hide file tree
Showing 14 changed files with 68 additions and 100 deletions.
1 change: 0 additions & 1 deletion _includes/layout/menu
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@
<li><a href="/libs/imagej-ops">ImageJ Ops</a></li>
<li><a href="/libs/imagej-common">ImageJ Common</a></li>
<li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li>
<li><a href="/libs/imageja">ImageJA</a></li>
<li><a href="/libs/scijava">SciJava</a></li>
<li><a href="/libs/scifio">SCIFIO</a></li>

Expand Down
2 changes: 1 addition & 1 deletion _pages/contribute/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Changes to the original [ImageJ](/software/imagej) are made by {% include person

Methods of getting the patch to Wayne include:

- Submit a pull request on GitHub against {% include github org='imagej' repo='imagej1' label='the ImageJ repository' %}. Be aware that PRs will be reviewed and integrated by hand, not merged via the standard Git/GitHub workflow.
- Submit a pull request on GitHub against {% include github org='imagej' repo='ImageJ' label='the ImageJ repository' %}. Be aware that PRs will be reviewed and integrated by hand, not merged via the standard Git/GitHub workflow.
- Send the modified code in a [private mail to Wayne](mailto:rasband@gmail.com).

The important part is that Wayne receive the code/patch, since he is the only one with the authority to merge it.
Expand Down
8 changes: 4 additions & 4 deletions _pages/develop/ij1-plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ The source of the various Fiji-related projects is spread over several source co

## The class *IJ*

The class {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/IJ.java' label='ij.IJ' %} is a convenience class with many static functions. Two of them are particularly useful for debugging:
The class {% include github org='imagej' repo='ImageJ' branch='master' path='ij/IJ.java' label='ij.IJ' %} is a convenience class with many static functions. Two of them are particularly useful for debugging:

```java
// output into the Log window
Expand All @@ -127,7 +127,7 @@ IJ.showMessage("Hello, World!");

## The class *ImageJ*

The class {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/ImageJ.java' label='ij.ImageJ' %} implements the main window of ImageJ / Fiji, and you can access it via *ij.IJ*'s static method *getInstance()*:
The class {% include github org='imagej' repo='ImageJ' branch='master' path='ij/ImageJ.java' label='ij.ImageJ' %} implements the main window of ImageJ / Fiji, and you can access it via *ij.IJ*'s static method *getInstance()*:

```java
// check if ImageJ is used interactively
Expand All @@ -139,7 +139,7 @@ Typically, all you do with that instance is to test whether ImageJ is used as a

## The class *WindowManager*

Use the class {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/WindowManager.java' label='ij.WindowManager' %} to access the ImageJ windows / images:
Use the class {% include github org='imagej' repo='ImageJ' branch='master' path='ij/WindowManager.java' label='ij.WindowManager' %} to access the ImageJ windows / images:

```java
// how many windows / images are active?
Expand All @@ -155,7 +155,7 @@ When implementing a filter plugin, you usually do not need to access *WindowMana

## The hierarchy of the classes representing an image

All images are represented as instances of {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/ImagePlus.java' label='ij.ImagePlus' %}. This class wraps an {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/ImageStack.java' label='ij.ImageStack' %} of slices. Slices are data-type dependent instances of {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/process/ImageProcessor.java' label='ij.process.ImageProcessor' %}: {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/process/ByteProcessor.java' label='ij.process.ByteProcessor' %}, {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/process/ShortProcessor.java' label='ij.process.ShortProcessor' %}, {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/process/FloatProcessor.java' label='ij.process.FloatProcessor' %}, and {% include github org='imagej' repo='ImageJA' branch='master' path='src/main/java/ij/process/ColorProcessor.java' label='ij.process.ColorProcessor' %}. Or graphically:
All images are represented as instances of {% include github org='imagej' repo='ImageJ' branch='master' path='ij/ImagePlus.java' label='ij.ImagePlus' %}. This class wraps an {% include github org='imagej' repo='ImageJ' branch='master' path='ij/ImageStack.java' label='ij.ImageStack' %} of slices. Slices are data-type dependent instances of {% include github org='imagej' repo='ImageJ' branch='master' path='ij/process/ImageProcessor.java' label='ij.process.ImageProcessor' %}: {% include github org='imagej' repo='ImageJ' branch='master' path='ij/process/ByteProcessor.java' label='ij.process.ByteProcessor' %}, {% include github org='imagej' repo='ImageJ' branch='master' path='ij/process/ShortProcessor.java' label='ij.process.ShortProcessor' %}, {% include github org='imagej' repo='ImageJ' branch='master' path='ij/process/FloatProcessor.java' label='ij.process.FloatProcessor' %}, and {% include github org='imagej' repo='ImageJ' branch='master' path='ij/process/ColorProcessor.java' label='ij.process.ColorProcessor' %}. Or graphically:

<figure><img src="/media/image-class-hierarchy.png" title="Image_Class_Hierarchy.png" width="600" alt="Image_Class_Hierarchy.png" /><figcaption aria-hidden="true">Image_Class_Hierarchy.png</figcaption></figure>

Expand Down
27 changes: 6 additions & 21 deletions _pages/develop/ij1-unit-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,19 @@ title: Unit tests for ImageJ
project: /software/imagej
---

There are a [substantial number of unit tests](/news/2011-10-07-unit-tests-for-imagej-1-45) to exercise [ImageJ](/software/imagej) functionality. You can find them in the {% include github org='imagej' repo='ij1-tests' label='ij1-tests repository' %}:

```shell
git clone git://github.com/imagej/ij1-tests
```

There is a [Travis](/develop/travis) job [here](https://travis-ci.com/imagej/ij1-tests) that automatically runs the tests with each new version of ImageJ.
There are a [substantial number of unit tests](/news/2011-10-07-unit-tests-for-imagej-1-45) to exercise [ImageJ](/software/imagej) functionality. You can find them in the {% include github org='imagej' repo='ImageJ' label='ImageJ repository' %} in the `tests` directory.

### Running the tests

If you wish to run the unit tests manually, you can do so from the command line:

```shell
cd ij1-tests
mvn clean test
git clone https://github.com/imagej/ImageJ
cd ImageJ
mvn test
```

Or from Eclipse:

1. Import the `ij1-tests` project using {% include bc path='File | Import Existing Maven Projects'%} and choosing the `ij1-tests/pom.xml` file.
2. Right-click the `ij1-tests` project, {% include bc path='Run As | JUnit Test'%}.

### Using a different version of ImageJ

You can change which version of ImageJ is tested by overriding the `imagej1.version` property:

```shell
mvn -Dimagej1.version=1.48a clean test
```

Or whichever version you wish to use (of [those listed here](https://maven.scijava.org/content/groups/public/net/imagej/ij/)). The unit tests were created circa 1.44, and do not compile correctly with earlier versions of ImageJ.
1. Import the `ImageJ` project using {% include bc path='File | Import Existing Maven Projects' %} and choosing the `ImageJ/pom.xml` file.
2. Right-click the `ImageJ` project, {% include bc path='Run As | JUnit Test' %}.
4 changes: 2 additions & 2 deletions _pages/develop/maven.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ section: Extend:Development:Tools
{% endcapture %}
{% include img src='icons/maven' align='right' width=150 caption=maven-caption %}

[ImageJ2](/software/imagej2), [Fiji](/software/fiji) and other [SciJava](/libs/scijava) projects use [Maven](https://maven.apache.org/) for their project infrastructure.
[ImageJ](/software/imagej), [ImageJ2](/software/imagej2), [Fiji](/software/fiji), and other [SciJava](/libs/scijava)-based projects use [Maven](https://maven.apache.org/) for their project infrastructure.

Maven artifacts are published to the [SciJava Maven repository](/develop/project-management#maven).
Maven artifacts are published to [Maven Central](https://search.maven.org/) or to the [SciJava Maven repository](/develop/project-management#maven).

# Why do we use Maven?

Expand Down
12 changes: 2 additions & 10 deletions _pages/develop/source.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,7 @@ section: Extend:Development

The source code of the original [ImageJ](/software/imagej) is available at:

{% include link-banner url='https://github.com/imagej/imagej1' %}

And there is a version with clean [Git](/develop/git) history and release tags, with a [Maven](/develop/maven)-based build system, available at:

{% include link-banner url='https://github.com/imagej/ImageJA' %}

## ImageJ unit tests

There are a substantial number of [unit tests to exercise ImageJ functionality](/develop/ij1-unit-tests).
{% include link-banner url='https://github.com/imagej/ImageJ' %}

# ImageJ2

Expand All @@ -37,7 +29,7 @@ All source code is on [GitHub](/develop/github).
| ![](/media/icons/imagej2.png){:width="28"} | [ImageJ2](https://github.com/imagej) | A general-purpose image processing application |
| ![](/media/icons/imglib2.png){:width="28"} | [ImgLib2](https://github.com/imglib) | Generic multi-dimensional data processing |
| ![](/media/icons/scifio.png){:width="28"} | [SCIFIO](https://github.com/scifio) | Extensible image file I/O |
| ![](/media/icons/fiji.png){:width="28"} | [Fiji](https://github.com/fiji) | A "batteries-included" distribution of ImageJ |
| ![](/media/icons/fiji.png){:width="28"} | [Fiji](https://github.com/fiji) | A "batteries-included" distribution of ImageJ and ImageJ2 |

See the [Architecture](/develop/architecture) page for more information about the relationship between these projects.

Expand Down
4 changes: 2 additions & 2 deletions _pages/learn/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,10 +302,10 @@ Here are several ways to do so:
- Using the search bar, locate your command, taking note of the Class column's value.
- E.g., if we type "make binary" we see that the class is `ij.plugin.Thresholder`.
- Open the relevant project in GitHub:
- E.g., for "ij." classes, go to: https://github.com/imagej/ImageJA
- E.g., for "ij." classes, go to: https://github.com/imagej/ImageJ
- Press the {% include key key='T' %} key, and type the name of the file you are looking for.
- In the example above, this is Thresholder.java.
- You should end up with a hit like: https://github.com/imagej/ImageJA/blob/master/src/main/java/ij/plugin/Thresholder.java.
- You should end up with a hit like: https://github.com/imagej/ImageJ/blob/master/ij/plugin/Thresholder.java.
- This method requires that you know in which repository the code lives. However, you can combine it with **search.imagej.net** method above to figure out which repository, then load the code on GitHub, if desired.
4. **Using the "Open Source for Menu Item" command:**
- Run {% include bc path='Plugins | Scripting | Open Source for Menu Item' %}.
Expand Down
34 changes: 19 additions & 15 deletions _pages/learn/flavors.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ There are a many different derivatives of ImageJ with very similar names, and so
</tr>
<tr>
<td><img src="/media/icons/imagej.png" width="64"/></td>
<td><a href="/software/imagej">ImageJ</a></td>
<td>{% include person id='rasband' %}</td>
<td>The original version of ImageJ which has been in development since 1997.
It has a strong, established user base, with thousands of plugins and
macros for performing a wide variety of tasks. Sometimes referred to as
Expand Down Expand Up @@ -67,23 +65,17 @@ There are a many different derivatives of ImageJ with very similar names, and so
<td><a href="/people/dscho#a-short-story-about-fiji">Dec. 2007</a></td>
<td>Active</td>
</tr>
<tr>
<td><img src="/media/icons/imagej.png" width="64"/></td>
<td><a href="/libs/imageja">ImageJA</a></td>
<td><a href="/people">{% include person id='rasband' %} (author); ImageJ2 team (maintainers)</a></td>
<td>ImageJA is a project that provides a clean <a href="/develop/git">Git</a>
history of the original ImageJ, with a proper 'pom.xml' file so that it
can be used with Maven without hassles.<br><br>It is what ImageJ2's
legacy support uses at its core.</td>
<td>Jul. 2005</td>
<td>Active</td>
</tr>
<tr>
<td><img src="https://ij.imjoy.io/assets/icons/chrome/chrome-installprocess-128-128.png" width="64"/></td>
<td><a href="/software/imagej-js">ImageJ.JS</a></td>
<td>{% include person id='oeway' %}</td>
<td>ImageJ.JS is a web version of <a href="/libs/imageja">ImageJA</a> that runs in the browser without installation,
compiled from Java to JavaScript using the <a href="https://leaningtech.com/cheerpj/">Cheerpj compiler</a> and integrated with the <a href="/software/imjoy">ImJoy</a> plugin system. It's accessible from <a href="https://ij.imjoy.io">https://ij.imjoy.io</a> and also support mobile devices and tablets.
<td>ImageJ.JS is a web version of ImageJ that runs in the browser without
installation, compiled from Java to JavaScript using the
<a href="https://leaningtech.com/cheerpj/">Cheerpj compiler</a> and
integrated with the <a href="/software/imjoy">ImJoy</a> plugin system.
It's accessible from
<a href="https://ij.imjoy.io">https://ij.imjoy.io</a>
and also supports mobile devices and tablets.
</td>
<td>2020</td>
<td>Active</td>
Expand Down Expand Up @@ -158,6 +150,18 @@ There are a many different derivatives of ImageJ with very similar names, and so
<td>2005</td>
<td>Defunct<br>(Last update:<br>Dec. 2009)</td>
</tr>
<tr>
<td><img src="/media/icons/imagej.png" width="64"/></td>
<td><a href="/libs/imageja">ImageJA</a></td>
<td><a href="/people">{% include person id='rasband' %} (author); ImageJ2 team (maintainers)</a></td>
<td>ImageJA was a project that provided a clean <a href="/develop/git">Git</a>
history of the original ImageJ, with a proper <code>pom.xml</code> file
so that it could be used with Maven without hassles. The ImageJ project
has since been updated to deploy releases to Maven Central directly,
without the need for the ImageJA project as an intermediate.</td>
<td>Jul. 2005</td>
<td>Superseded by ImageJ</td>
</tr>
<tr>
<td></td>
<td><a href="/software/imagejx">ImageJX</a></td>
Expand Down
2 changes: 1 addition & 1 deletion _pages/learn/launcher.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ The launcher can do all kinds of things, like:
- Control the [Updater](/plugins/updater) from the command line
- Open images: `./ImageJ-<platform> example.jpg`
- Call Jython scripts: `./ImageJ-<platform> example.py` (also works for JRuby scripts when they have an `.rb` extension, for Beanshell scripts with `.bsh` extension, `.clj` for Clojure and `.js` for Javascript)
- Call the Jython interpreter: `./ImageJ-<platform> --jython` (the classpath will be the same as when calling ImageJA), and likewise `--jruby`, `--bsh` and `--js` for the respective language's command-line interpreters
- Call the Jython interpreter: `./ImageJ-<platform> --jython` (the classpath will be the same as when calling ImageJ), and likewise `--jruby`, `--bsh` and `--js` for the respective language's command-line interpreters
- Run ImageJ with the system Java instead of its own one: `./ImageJ-<platform> --system`. But beware: this might fail since some plugins need at least Java 1.5, and the 3D viewer needs Java3D.
- Show the java command line instead of running ImageJ: `./ImageJ-<platform> --dry-run`
- Compile a Java class: `./ImageJ-<platform> --javac example.java`
Expand Down
Loading

0 comments on commit 0084c55

Please sign in to comment.