[ImageJ-devel] Imglib project organization & Bio-Formats support

Curtis Rueden ctrueden at wisc.edu
Mon Sep 27 12:27:27 CDT 2010


Hi everyone,

I have created a new branch on imglib.git called maven, which does two
things:

1) It reorganizes imglib as a Maven project.

2) To achieve cleaner dependencies, it splits imglib into several
subprojects:
  * imglib – core imglib infrastructure [dependencies: mpicbg]
  * imglib-algorithms – algorithm implementations [dependencies: imglib,
mpicbg, mines-jtk]
  * imglib-imagej – ImageJ-specific display logic [dependencies: imglib,
imglib-algorithms, imagej, mpicbg]
  * imglib-io – S&S's Bio-Formats support for imglib [dependencies: imglib,
imglib-imagej, bio-formats]

One major reason to do this is to avoid a circular dependency between imglib
and ij, since we want ij-2.0 to depend on imglib core.

Also, I have implemented a new imglib Bio-Formats reader at:
  http://dev.imagejdev.org/svn/imagej/trunk/bf-imglib

Unlike imglib-io, it fully supports N-dimensional data in imglib, and
without any dependency on ImageJ. However, I am still polishing it a bit—it
needs to do everything that imglib-io did, including setting physical XYZ
calibration. Once it is ready, if you all agree, I could replace the old
imglib-io implementation.

Regarding Maven: I think it makes development in Eclipse much better (using
the m2eclipse & m2eclipse Extras plugins). Project dependencies in Eclipse
with Maven are extremely smart. For example: let's say I have bf-imglib open
alone. For the dependencies (ij.jar and imglib.jar), Eclipse uses the ij.jar
and imglib.jar present in the local Maven repository. But let's say I want
to fix a bug in ImageJ that affects bf-imglib. I just open the ij Maven
project, and the bf-imglib dependency magically becomes an Eclipse project
reference rather than a binary JAR reference.

Maven also solves the Eclipse configuration wars with conflicting .project,
.classpath and .settings files being committed to the repository from
various machines—you simply add these files to .gitignore and the files are
generated locally when you first import the Maven project using m2eclipse.
After that you can tweak your local project settings however you like.

My questions are:

1) Do you like this split project organization for imglib?

2) What do you think of imglib using Maven in this way?

3) Any initial thoughts on the bf-imglib implementation?

If people are happy with these changes, I would like to merge the imglib
maven branch to master, and maybe also move bf-imglib into the imglib git
repository. If people have concerns, let's discuss them to find a better
solution that works for everyone.

Thanks,
Curtis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://imagej.net/pipermail/imagej-devel/attachments/20100927/31ffc534/attachment.html>


More information about the ImageJ-devel mailing list