New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add missing dependencies to Fiji build system #37

Open
ctrueden opened this Issue Oct 21, 2013 · 7 comments

Comments

Projects
None yet
3 participants
@ctrueden
Member

ctrueden commented Oct 21, 2013

Some JAR files are present on the Fiji update site and hence available in the Fiji user distribution, but not copied into the Fiji source build's jars folder because nothing in src-plugins actually depends on them (so MiniMaven has no way of knowing to copy them). Perhaps they were uploaded to the update site manually as libraries available for use within Fiji, or perhaps they were once dependencies of Fiji plugins but no longer. Either way, they are on the update site but not known to the Fiji build system.

The solution is to add them as dependencies with <scope>runtime</scope> to the toplevel fiji component. This clues in Maven and MiniMaven that these JARs are important to Fiji, and should be copied into the jars folder, bringing Fiji-from-source more in line with Fiji-from-updater.

We should be careful to use runtime scope. In particular, dependencies such as slf4j-log4j12 and log4j need to be declared in this fashion, and in the toplevel fiji component. Otherwise, anything depending on said library will drag in the hardcoded log4j SLF4J binding, which is undesirable (this choice should be left to downstream consumers whenever possible).

@ctrueden

This comment has been minimized.

Show comment
Hide comment
@ctrueden

ctrueden Feb 3, 2015

Member

To clarify: anything we want to bundle with Fiji, but do not want to "inflict" on downstream projects that add sc.fiji:fiji as a dependency, should be marked with <optional>true</optional> in the dependency declaration. See e.g. 8c80ec1.

Member

ctrueden commented Feb 3, 2015

To clarify: anything we want to bundle with Fiji, but do not want to "inflict" on downstream projects that add sc.fiji:fiji as a dependency, should be marked with <optional>true</optional> in the dependency declaration. See e.g. 8c80ec1.

@ctrueden

This comment has been minimized.

Show comment
Hide comment
@ctrueden

ctrueden Feb 3, 2015

Member

Here is a diff of the latest Fiji distribution compared to a Fiji whose JAR files are populated from scratch via a fiji.git source checkout using mvn -Dimagej.app.directory=.../Fiji.app:

diff --git a/update-site.txt b/fiji-git.txt
index a720c6d..768a1ac 100644
--- a/update-site.txt
+++ b/fiji-git.txt
@@ -3,22 +3,18 @@
 ./jars/T2-TreelineGraph-1.0.2.jar
 ./jars/VIB-lib-2.0.1.jar
 ./jars/VectorString-1.0.2.jar
-./jars/ant-junit.jar
-./jars/ant-launcher.jar
-./jars/ant-nodeps.jar
-./jars/ant.jar
 ./jars/args4j-2.0.25.jar
 ./jars/asm-4.0.jar
 ./jars/asm-analysis-4.0.jar
 ./jars/asm-commons-4.0.jar
 ./jars/asm-tree-4.0.jar
 ./jars/asm-util-4.0.jar
-./jars/autocomplete.jar
 ./jars/base64-2.3.8.jar
 ./jars/batik-1.8.jar
 ./jars/bcmail-jdk14-138.jar
 ./jars/bcprov-jdk14-138.jar
 ./jars/bigdataviewer-core-1.0.0.jar
+./jars/bio-formats/bio-formats_plugins-5.0.6.jar
 ./jars/bio-formats/formats-api-5.0.6.jar
 ./jars/bio-formats/formats-bsd-5.0.6.jar
 ./jars/bio-formats/formats-common-5.0.6.jar
@@ -36,12 +32,9 @@
 ./jars/commons-lang3-3.1.jar
 ./jars/commons-logging-1.1.1.jar
 ./jars/commons-math3-3.2.jar
-./jars/edu_mines_jtk.jar
 ./jars/eventbus-1.4.jar
-./jars/fake-2.0.0-SNAPSHOT.jar
 ./jars/fiji-compat-2.0.1.jar
 ./jars/fiji-lib-2.1.0.jar
-./jars/fiji-scripting-2.0.0-SNAPSHOT.jar
 ./jars/gentyref-1.1.0.jar
 ./jars/groovy-2.3.6.jar
 ./jars/gson-2.2.4.jar
@@ -49,7 +42,6 @@
 ./jars/ij1-patcher-0.11.1.jar
 ./jars/imagej-2.0.0-rc-23.jar
 ./jars/imagej-common-0.12.1.jar
-./jars/imagej-launcher-3.1.6.jar
 ./jars/imagej-legacy-0.10.2.jar
 ./jars/imagej-ops-0.8.0.jar
 ./jars/imagej-plugins-commands-0.4.1.jar
@@ -66,25 +58,21 @@
 ./jars/imglib2-algorithm-fft-0.1.1.jar
 ./jars/imglib2-algorithm-gpl-0.1.2.jar
 ./jars/imglib2-ij-2.0.0-beta-29.jar
-./jars/imglib2-ops-2.0.0-beta-26.jar
 ./jars/imglib2-realtransform-2.0.0-beta-28.jar
 ./jars/imglib2-roi-0.2.0.jar
 ./jars/imglib2-ui-2.0.0-beta-28.jar
 ./jars/invokebinder-1.2.jar
 ./jars/itext-2.1.5.jar
 ./jars/itextpdf-5.1.1.jar
-./jars/jacl.jar
 ./jars/jai-codec-1.1.3.jar
 ./jars/jai-core-1.1.3.jar
-./jars/jama-1.0.3.jar
+./jars/jama-1.0.2.jar
 ./jars/java-cup-0.11a.jar
 ./jars/javac-1.6.0.24-ubuntu-fiji2.jar
 ./jars/javassist-3.16.1-GA.jar
 ./jars/jcodings-1.0.10.jar
 ./jars/jcommon-1.0.17.jar
 ./jars/jdatepicker-1.3.2.jar
-./jars/jdom-2.0.2.jar
-./jars/jdom-contrib.jar
 ./jars/jdom2-2.0.5.jar
 ./jars/jep-2.4.2.jar
 ./jars/jffi-1.2.7-native.jar
@@ -104,18 +92,16 @@
 ./jars/jnr-posix-3.0.1.jar
 ./jars/jnr-unixsocket-0.3.jar
 ./jars/jnr-x86asm-1.0.2.jar
-./jars/joda-time-2.3.jar
+./jars/joda-time-2.2.jar
 ./jars/joni-2.1.1.jar
 ./jars/jpedalSTD-2.80b11.jar
 ./jars/jruby-core-1.7.12.jar
 ./jars/jruby-stdlib-1.7.12.jar
-./jars/js.jar
 ./jars/jsch-0.1.49.jar
 ./jars/jython-shaded-2.5.3.jar
 ./jars/jzlib-1.1.2.jar
 ./jars/kryo-2.21-shaded.jar
 ./jars/legacy-imglib1-1.0.0-DEPRECATED.jar
-./jars/log4j-1.2.17.jar
 ./jars/logback-classic-1.1.1.jar
 ./jars/logback-core-1.1.1.jar
 ./jars/mapdb-1.0.3.jar
@@ -162,10 +148,8 @@
 ./jars/snakeyaml-1.13.jar
 ./jars/spim_data-1.0.0-beta-3.jar
 ./jars/swing-checkbox-tree-1.0.0.jar
-./jars/tools-1.4.2.jar
 ./jars/udunits-4.3.18.jar
 ./jars/wavelets-2.0.0.jar
-./jars/weave_jy2java-2.0.0-SNAPSHOT.jar
 ./jars/weka-dev-3.7.11.jar
 ./jars/xml-apis-1.3.04.jar
 ./jars/yecht-1.0.jar
@@ -182,7 +166,6 @@
 ./plugins/3D_Blob_Segmentation-2.0.2.jar
 ./plugins/3D_Objects_Counter-2.0.0.jar
 ./plugins/3D_Viewer-3.0.1.jar
-./plugins/Algorithm_Launcher.jar
 ./plugins/AnalyzeSkeleton_-2.0.3.jar
 ./plugins/Analyze_Reader_Writer-2.0.0.jar
 ./plugins/Anisotropic_Diffusion_2D-2.0.0.jar
@@ -190,18 +173,15 @@
 ./plugins/Arrow_-2.0.1.jar
 ./plugins/Auto_Threshold-1.16.0.jar
 ./plugins/BalloonSegmentation_-2.0.0.jar
-./plugins/BeanShell_Interpreter-2.0.0-SNAPSHOT.jar
 ./plugins/Bug_Submitter-2.0.1.jar
-./plugins/CLI_-2.0.0-SNAPSHOT.jar
 ./plugins/CPU_Meter-2.0.0.jar
 ./plugins/Calculator_Plus-2.0.0.jar
-./plugins/Clojure_Interpreter-2.0.0-SNAPSHOT.jar
 ./plugins/Colocalisation_Analysis-2.0.1.jar
 ./plugins/Color_Histogram-2.0.6.jar
 ./plugins/Color_Inspector_3D-2.3.1.jar
 ./plugins/Colour_Deconvolution-2.0.0.jar
 ./plugins/CorrectBleach_-2.0.1.jar
-./plugins/Descriptor_based_registration-2.0.7.jar
+./plugins/Descriptor_based_registration-2.0.0.jar
 ./plugins/Dichromacy_-2.0.0.jar
 ./plugins/Differentials_-2.0.0.jar
 ./plugins/Directionality_-2.0.1.jar
@@ -224,12 +204,7 @@
 ./plugins/Image_Expression_Parser-3.0.0.jar
 ./plugins/Interactive_3D_Surface_Plot-2.31.1.jar
 ./plugins/IsoData_Classifier-2.0.0.jar
-./plugins/JRuby_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/Javascript_-2.0.0-SNAPSHOT.jar
-./plugins/Jython_Interpreter-2.0.0-SNAPSHOT.jar
 ./plugins/Kuwahara_Filter-2.0.0.jar
-./plugins/LSM_Reader.jar
-./plugins/LSM_Toolbox.jar
 ./plugins/Lasso_and_Blow_Tool-2.0.1.jar
 ./plugins/Linear_Kuwahara-2.0.0.jar
 ./plugins/LocalThickness_-3.1.1.jar
@@ -245,9 +220,8 @@
 ./plugins/RATS_-2.0.0.jar
 ./plugins/RandomJ_-1.5.2.jar
 ./plugins/Reconstruct_Reader-2.0.1.jar
-./plugins/Refresh_Javas-2.0.0-SNAPSHOT.jar
 ./plugins/SPIM_Opener-2.0.1.jar
-./plugins/SPIM_Registration-2.0.8.jar
+./plugins/SPIM_Registration-2.0.0.jar
 ./plugins/Samples_-2.0.0.jar
 ./plugins/Series_Labeler-2.0.0.jar
 ./plugins/SheppLogan_-2.0.0.jar
@@ -268,8 +242,8 @@
 ./plugins/Time_Stamper-2.0.0.jar
 ./plugins/ToAST_-25.0.1.jar
 ./plugins/TopoJ_-2.0.0.jar
-./plugins/TrackMate_-2.7.1.jar
-./plugins/Trainable_Segmentation-2.1.8.jar
+./plugins/TrackMate_-2.7.0.jar
+./plugins/Trainable_Segmentation-2.1.6.jar
 ./plugins/TrakEM2_-1.0d.jar
 ./plugins/TrakEM2_Archipelago-2.0.0.jar
 ./plugins/TransformJ_-2.8.2.jar
@@ -283,10 +257,8 @@
 ./plugins/Volume_Calculator-1.0.1.jar
 ./plugins/Volume_Viewer-2.01.1.jar
 ./plugins/bUnwarpJ_-2.6.1.jar
-./plugins/bigdataviewer_fiji-1.0.2.jar
-./plugins/bio-formats_plugins-5.0.6.jar
+./plugins/bigdataviewer_fiji-1.0.0.jar
 ./plugins/blockmatching_-2.0.3.jar
-./plugins/ij-ImageIO_.jar
 ./plugins/level_sets-1.0.1.jar
 ./plugins/mpicbg_-0.6.1.jar
 ./plugins/panorama_-2.0.0.jar
Member

ctrueden commented Feb 3, 2015

Here is a diff of the latest Fiji distribution compared to a Fiji whose JAR files are populated from scratch via a fiji.git source checkout using mvn -Dimagej.app.directory=.../Fiji.app:

diff --git a/update-site.txt b/fiji-git.txt
index a720c6d..768a1ac 100644
--- a/update-site.txt
+++ b/fiji-git.txt
@@ -3,22 +3,18 @@
 ./jars/T2-TreelineGraph-1.0.2.jar
 ./jars/VIB-lib-2.0.1.jar
 ./jars/VectorString-1.0.2.jar
-./jars/ant-junit.jar
-./jars/ant-launcher.jar
-./jars/ant-nodeps.jar
-./jars/ant.jar
 ./jars/args4j-2.0.25.jar
 ./jars/asm-4.0.jar
 ./jars/asm-analysis-4.0.jar
 ./jars/asm-commons-4.0.jar
 ./jars/asm-tree-4.0.jar
 ./jars/asm-util-4.0.jar
-./jars/autocomplete.jar
 ./jars/base64-2.3.8.jar
 ./jars/batik-1.8.jar
 ./jars/bcmail-jdk14-138.jar
 ./jars/bcprov-jdk14-138.jar
 ./jars/bigdataviewer-core-1.0.0.jar
+./jars/bio-formats/bio-formats_plugins-5.0.6.jar
 ./jars/bio-formats/formats-api-5.0.6.jar
 ./jars/bio-formats/formats-bsd-5.0.6.jar
 ./jars/bio-formats/formats-common-5.0.6.jar
@@ -36,12 +32,9 @@
 ./jars/commons-lang3-3.1.jar
 ./jars/commons-logging-1.1.1.jar
 ./jars/commons-math3-3.2.jar
-./jars/edu_mines_jtk.jar
 ./jars/eventbus-1.4.jar
-./jars/fake-2.0.0-SNAPSHOT.jar
 ./jars/fiji-compat-2.0.1.jar
 ./jars/fiji-lib-2.1.0.jar
-./jars/fiji-scripting-2.0.0-SNAPSHOT.jar
 ./jars/gentyref-1.1.0.jar
 ./jars/groovy-2.3.6.jar
 ./jars/gson-2.2.4.jar
@@ -49,7 +42,6 @@
 ./jars/ij1-patcher-0.11.1.jar
 ./jars/imagej-2.0.0-rc-23.jar
 ./jars/imagej-common-0.12.1.jar
-./jars/imagej-launcher-3.1.6.jar
 ./jars/imagej-legacy-0.10.2.jar
 ./jars/imagej-ops-0.8.0.jar
 ./jars/imagej-plugins-commands-0.4.1.jar
@@ -66,25 +58,21 @@
 ./jars/imglib2-algorithm-fft-0.1.1.jar
 ./jars/imglib2-algorithm-gpl-0.1.2.jar
 ./jars/imglib2-ij-2.0.0-beta-29.jar
-./jars/imglib2-ops-2.0.0-beta-26.jar
 ./jars/imglib2-realtransform-2.0.0-beta-28.jar
 ./jars/imglib2-roi-0.2.0.jar
 ./jars/imglib2-ui-2.0.0-beta-28.jar
 ./jars/invokebinder-1.2.jar
 ./jars/itext-2.1.5.jar
 ./jars/itextpdf-5.1.1.jar
-./jars/jacl.jar
 ./jars/jai-codec-1.1.3.jar
 ./jars/jai-core-1.1.3.jar
-./jars/jama-1.0.3.jar
+./jars/jama-1.0.2.jar
 ./jars/java-cup-0.11a.jar
 ./jars/javac-1.6.0.24-ubuntu-fiji2.jar
 ./jars/javassist-3.16.1-GA.jar
 ./jars/jcodings-1.0.10.jar
 ./jars/jcommon-1.0.17.jar
 ./jars/jdatepicker-1.3.2.jar
-./jars/jdom-2.0.2.jar
-./jars/jdom-contrib.jar
 ./jars/jdom2-2.0.5.jar
 ./jars/jep-2.4.2.jar
 ./jars/jffi-1.2.7-native.jar
@@ -104,18 +92,16 @@
 ./jars/jnr-posix-3.0.1.jar
 ./jars/jnr-unixsocket-0.3.jar
 ./jars/jnr-x86asm-1.0.2.jar
-./jars/joda-time-2.3.jar
+./jars/joda-time-2.2.jar
 ./jars/joni-2.1.1.jar
 ./jars/jpedalSTD-2.80b11.jar
 ./jars/jruby-core-1.7.12.jar
 ./jars/jruby-stdlib-1.7.12.jar
-./jars/js.jar
 ./jars/jsch-0.1.49.jar
 ./jars/jython-shaded-2.5.3.jar
 ./jars/jzlib-1.1.2.jar
 ./jars/kryo-2.21-shaded.jar
 ./jars/legacy-imglib1-1.0.0-DEPRECATED.jar
-./jars/log4j-1.2.17.jar
 ./jars/logback-classic-1.1.1.jar
 ./jars/logback-core-1.1.1.jar
 ./jars/mapdb-1.0.3.jar
@@ -162,10 +148,8 @@
 ./jars/snakeyaml-1.13.jar
 ./jars/spim_data-1.0.0-beta-3.jar
 ./jars/swing-checkbox-tree-1.0.0.jar
-./jars/tools-1.4.2.jar
 ./jars/udunits-4.3.18.jar
 ./jars/wavelets-2.0.0.jar
-./jars/weave_jy2java-2.0.0-SNAPSHOT.jar
 ./jars/weka-dev-3.7.11.jar
 ./jars/xml-apis-1.3.04.jar
 ./jars/yecht-1.0.jar
@@ -182,7 +166,6 @@
 ./plugins/3D_Blob_Segmentation-2.0.2.jar
 ./plugins/3D_Objects_Counter-2.0.0.jar
 ./plugins/3D_Viewer-3.0.1.jar
-./plugins/Algorithm_Launcher.jar
 ./plugins/AnalyzeSkeleton_-2.0.3.jar
 ./plugins/Analyze_Reader_Writer-2.0.0.jar
 ./plugins/Anisotropic_Diffusion_2D-2.0.0.jar
@@ -190,18 +173,15 @@
 ./plugins/Arrow_-2.0.1.jar
 ./plugins/Auto_Threshold-1.16.0.jar
 ./plugins/BalloonSegmentation_-2.0.0.jar
-./plugins/BeanShell_Interpreter-2.0.0-SNAPSHOT.jar
 ./plugins/Bug_Submitter-2.0.1.jar
-./plugins/CLI_-2.0.0-SNAPSHOT.jar
 ./plugins/CPU_Meter-2.0.0.jar
 ./plugins/Calculator_Plus-2.0.0.jar
-./plugins/Clojure_Interpreter-2.0.0-SNAPSHOT.jar
 ./plugins/Colocalisation_Analysis-2.0.1.jar
 ./plugins/Color_Histogram-2.0.6.jar
 ./plugins/Color_Inspector_3D-2.3.1.jar
 ./plugins/Colour_Deconvolution-2.0.0.jar
 ./plugins/CorrectBleach_-2.0.1.jar
-./plugins/Descriptor_based_registration-2.0.7.jar
+./plugins/Descriptor_based_registration-2.0.0.jar
 ./plugins/Dichromacy_-2.0.0.jar
 ./plugins/Differentials_-2.0.0.jar
 ./plugins/Directionality_-2.0.1.jar
@@ -224,12 +204,7 @@
 ./plugins/Image_Expression_Parser-3.0.0.jar
 ./plugins/Interactive_3D_Surface_Plot-2.31.1.jar
 ./plugins/IsoData_Classifier-2.0.0.jar
-./plugins/JRuby_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/Javascript_-2.0.0-SNAPSHOT.jar
-./plugins/Jython_Interpreter-2.0.0-SNAPSHOT.jar
 ./plugins/Kuwahara_Filter-2.0.0.jar
-./plugins/LSM_Reader.jar
-./plugins/LSM_Toolbox.jar
 ./plugins/Lasso_and_Blow_Tool-2.0.1.jar
 ./plugins/Linear_Kuwahara-2.0.0.jar
 ./plugins/LocalThickness_-3.1.1.jar
@@ -245,9 +220,8 @@
 ./plugins/RATS_-2.0.0.jar
 ./plugins/RandomJ_-1.5.2.jar
 ./plugins/Reconstruct_Reader-2.0.1.jar
-./plugins/Refresh_Javas-2.0.0-SNAPSHOT.jar
 ./plugins/SPIM_Opener-2.0.1.jar
-./plugins/SPIM_Registration-2.0.8.jar
+./plugins/SPIM_Registration-2.0.0.jar
 ./plugins/Samples_-2.0.0.jar
 ./plugins/Series_Labeler-2.0.0.jar
 ./plugins/SheppLogan_-2.0.0.jar
@@ -268,8 +242,8 @@
 ./plugins/Time_Stamper-2.0.0.jar
 ./plugins/ToAST_-25.0.1.jar
 ./plugins/TopoJ_-2.0.0.jar
-./plugins/TrackMate_-2.7.1.jar
-./plugins/Trainable_Segmentation-2.1.8.jar
+./plugins/TrackMate_-2.7.0.jar
+./plugins/Trainable_Segmentation-2.1.6.jar
 ./plugins/TrakEM2_-1.0d.jar
 ./plugins/TrakEM2_Archipelago-2.0.0.jar
 ./plugins/TransformJ_-2.8.2.jar
@@ -283,10 +257,8 @@
 ./plugins/Volume_Calculator-1.0.1.jar
 ./plugins/Volume_Viewer-2.01.1.jar
 ./plugins/bUnwarpJ_-2.6.1.jar
-./plugins/bigdataviewer_fiji-1.0.2.jar
-./plugins/bio-formats_plugins-5.0.6.jar
+./plugins/bigdataviewer_fiji-1.0.0.jar
 ./plugins/blockmatching_-2.0.3.jar
-./plugins/ij-ImageIO_.jar
 ./plugins/level_sets-1.0.1.jar
 ./plugins/mpicbg_-0.6.1.jar
 ./plugins/panorama_-2.0.0.jar

ctrueden added a commit to fiji/pom-fiji that referenced this issue Feb 3, 2015

Bump components to releases on Fiji update site
The following component versions are present on the update site:
* TrackMate_ 2.7.1
* Trainable_Segmentation 2.1.8

Hence, these should also be the versions declared in pom-fiji.

See: fiji/fiji#37

ctrueden added a commit to bigdataviewer/pom-bigdataviewer that referenced this issue Feb 3, 2015

Bump components to releases on Fiji update site
The following component versions are present on the update site:
* Descriptor_based_registration 2.0.7
* SPIM_Registration 2.0.8

Hence, these should also be the versions declared here.

See: fiji/fiji#37

ctrueden added a commit that referenced this issue Feb 3, 2015

Add optional LSM Toolbox dependency
The LSM Toolbox ships with Fiji, and we want the POM to reflect that.

See: #37
@ctrueden

This comment has been minimized.

Show comment
Hide comment
@ctrueden

ctrueden Feb 3, 2015

Member

The discrepancies fall into the following categories:

  1. Bio-Formats special case:
+./jars/bio-formats/bio-formats_plugins-5.0.6.jar
-./plugins/bio-formats_plugins-5.0.6.jar

The bio-formats_plugins library should be filed into /plugins, not /jars/bio-formats. The cause of the erroneous behavior is special case handling for Bio-Formats in the ImageJ Maven plugin, which we need to fix.
2. The ImageJ launcher:

-./jars/imagej-launcher-3.1.6.jar

This library is missing because it is actually a renamed NAR archive. We need to somehow improve the way that ImageJ and NAR work together.
3. Libraries with duplicate classes:

-./jars/imglib2-ops-2.0.0-beta-26.jar
-./jars/jdom-2.0.2.jar
-./jars/edu_mines_jtk.jar

These JAR files were still hanging around, even though they were at the same time replaced with newer JARs: the imglib2-ops classes moved into imagej-ops; the classes from jdom-2.0.2 are also present in jdom2-2.0.5; and the classes of edu_mines_jtk are exactly the same as those in mines-jtk-20100113. I have now removed the old libraries. (Additionally: mines-jtk-20100113 has an incompatible license, and will be removed from the ImageJ update site in the future; see also imglib/imglib2#38, imglib/imglib2#61, fiji/registration_3d#1, imglib/imglib2-algorithm-fft#3.)
4. Third party libraries with conflicting versions:

-./jars/jama-1.0.3.jar
+./jars/jama-1.0.2.jar
-./jars/joda-time-2.3.jar
+./jars/joda-time-2.2.jar

Somehow, older versions of these libraries are being selected by Maven. Somewhere in the dependency hierarchy are components which depend on the old versions. The solution is to manage the version of these libraries in parent POMs, and use the managed version consistently throughout the entire SciJava software stack.
5. Fiji libraries with out-of-date versions:

-./plugins/Descriptor_based_registration-2.0.7.jar
+./plugins/Descriptor_based_registration-2.0.0.jar
-./plugins/SPIM_Registration-2.0.8.jar
+./plugins/SPIM_Registration-2.0.0.jar
-./plugins/TrackMate_-2.7.1.jar
+./plugins/TrackMate_-2.7.0.jar
-./plugins/Trainable_Segmentation-2.1.8.jar
+./plugins/Trainable_Segmentation-2.1.6.jar
-./plugins/bigdataviewer_fiji-1.0.2.jar
+./plugins/bigdataviewer_fiji-1.0.0.jar

These discrepancies are simply caused by plugin developers uploading new releases of their components without a corresponding bump in the relevant POM parent (i.e., pom-fiji, pom-trakem2 and pom-bigdataviewer). As we migrate toward a fully automated Jenkins-based solution, these issues will disappear since the update site will be fully driven by the versions declared in the parent POMs. For now, I fixed most of these discrepancies by hand: fiji/pom-fiji@820c172, bigdataviewer/pom-bigdataviewer@91606fb.
6. Obsolete components:

-./jars/fake-2.0.0-SNAPSHOT.jar
-./jars/fiji-scripting-2.0.0-SNAPSHOT.jar
-./jars/weave_jy2java-2.0.0-SNAPSHOT.jar
-./plugins/Algorithm_Launcher.jar
-./plugins/BeanShell_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/CLI_-2.0.0-SNAPSHOT.jar
-./plugins/Clojure_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/JRuby_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/Javascript_-2.0.0-SNAPSHOT.jar
-./plugins/Jython_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/Refresh_Javas-2.0.0-SNAPSHOT.jar
-./plugins/ij-ImageIO_.jar

These components are all obsolete and unmaintained, with no further updates planned. In particular, the various scripting interpreter components have been replaced by a unified Script Interpreter component included with the ImageJ2 Swing user interface.
7. Legitimately undeclared third party libraries:

-./jars/ant-junit.jar
-./jars/ant-launcher.jar
-./jars/ant-nodeps.jar
-./jars/ant.jar
-./jars/autocomplete.jar
-./jars/jacl.jar
-./jars/jdom-contrib.jar
-./jars/js.jar
-./jars/log4j-1.2.17.jar

We could either stop shipping these libraries with Fiji altogether, or else declare them as optional runtime dependencies in fiji/fiji.
8. LSM Toolbox plugin:

-./plugins/LSM_Reader.jar
-./plugins/LSM_Toolbox.jar

Fiji has shipped the LSM Toolbox since basically the beginning, and we even Mavenized it, but it was not declared in the toplevel fiji component for some reason. I have now done that: ddafd6f
9. Java tools library:

-./jars/tools-1.4.2.jar

We need to stop shipping this. It is actually a licensing violation to redistribute it. The scripting-java component uses it to compile Java code, but we can likely get away with using the Java 6 javax.tools.JavaCompiler API instead. Further research needed; for details see imagej/imagej#105.

Member

ctrueden commented Feb 3, 2015

The discrepancies fall into the following categories:

  1. Bio-Formats special case:
+./jars/bio-formats/bio-formats_plugins-5.0.6.jar
-./plugins/bio-formats_plugins-5.0.6.jar

The bio-formats_plugins library should be filed into /plugins, not /jars/bio-formats. The cause of the erroneous behavior is special case handling for Bio-Formats in the ImageJ Maven plugin, which we need to fix.
2. The ImageJ launcher:

-./jars/imagej-launcher-3.1.6.jar

This library is missing because it is actually a renamed NAR archive. We need to somehow improve the way that ImageJ and NAR work together.
3. Libraries with duplicate classes:

-./jars/imglib2-ops-2.0.0-beta-26.jar
-./jars/jdom-2.0.2.jar
-./jars/edu_mines_jtk.jar

These JAR files were still hanging around, even though they were at the same time replaced with newer JARs: the imglib2-ops classes moved into imagej-ops; the classes from jdom-2.0.2 are also present in jdom2-2.0.5; and the classes of edu_mines_jtk are exactly the same as those in mines-jtk-20100113. I have now removed the old libraries. (Additionally: mines-jtk-20100113 has an incompatible license, and will be removed from the ImageJ update site in the future; see also imglib/imglib2#38, imglib/imglib2#61, fiji/registration_3d#1, imglib/imglib2-algorithm-fft#3.)
4. Third party libraries with conflicting versions:

-./jars/jama-1.0.3.jar
+./jars/jama-1.0.2.jar
-./jars/joda-time-2.3.jar
+./jars/joda-time-2.2.jar

Somehow, older versions of these libraries are being selected by Maven. Somewhere in the dependency hierarchy are components which depend on the old versions. The solution is to manage the version of these libraries in parent POMs, and use the managed version consistently throughout the entire SciJava software stack.
5. Fiji libraries with out-of-date versions:

-./plugins/Descriptor_based_registration-2.0.7.jar
+./plugins/Descriptor_based_registration-2.0.0.jar
-./plugins/SPIM_Registration-2.0.8.jar
+./plugins/SPIM_Registration-2.0.0.jar
-./plugins/TrackMate_-2.7.1.jar
+./plugins/TrackMate_-2.7.0.jar
-./plugins/Trainable_Segmentation-2.1.8.jar
+./plugins/Trainable_Segmentation-2.1.6.jar
-./plugins/bigdataviewer_fiji-1.0.2.jar
+./plugins/bigdataviewer_fiji-1.0.0.jar

These discrepancies are simply caused by plugin developers uploading new releases of their components without a corresponding bump in the relevant POM parent (i.e., pom-fiji, pom-trakem2 and pom-bigdataviewer). As we migrate toward a fully automated Jenkins-based solution, these issues will disappear since the update site will be fully driven by the versions declared in the parent POMs. For now, I fixed most of these discrepancies by hand: fiji/pom-fiji@820c172, bigdataviewer/pom-bigdataviewer@91606fb.
6. Obsolete components:

-./jars/fake-2.0.0-SNAPSHOT.jar
-./jars/fiji-scripting-2.0.0-SNAPSHOT.jar
-./jars/weave_jy2java-2.0.0-SNAPSHOT.jar
-./plugins/Algorithm_Launcher.jar
-./plugins/BeanShell_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/CLI_-2.0.0-SNAPSHOT.jar
-./plugins/Clojure_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/JRuby_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/Javascript_-2.0.0-SNAPSHOT.jar
-./plugins/Jython_Interpreter-2.0.0-SNAPSHOT.jar
-./plugins/Refresh_Javas-2.0.0-SNAPSHOT.jar
-./plugins/ij-ImageIO_.jar

These components are all obsolete and unmaintained, with no further updates planned. In particular, the various scripting interpreter components have been replaced by a unified Script Interpreter component included with the ImageJ2 Swing user interface.
7. Legitimately undeclared third party libraries:

-./jars/ant-junit.jar
-./jars/ant-launcher.jar
-./jars/ant-nodeps.jar
-./jars/ant.jar
-./jars/autocomplete.jar
-./jars/jacl.jar
-./jars/jdom-contrib.jar
-./jars/js.jar
-./jars/log4j-1.2.17.jar

We could either stop shipping these libraries with Fiji altogether, or else declare them as optional runtime dependencies in fiji/fiji.
8. LSM Toolbox plugin:

-./plugins/LSM_Reader.jar
-./plugins/LSM_Toolbox.jar

Fiji has shipped the LSM Toolbox since basically the beginning, and we even Mavenized it, but it was not declared in the toplevel fiji component for some reason. I have now done that: ddafd6f
9. Java tools library:

-./jars/tools-1.4.2.jar

We need to stop shipping this. It is actually a licensing violation to redistribute it. The scripting-java component uses it to compile Java code, but we can likely get away with using the Java 6 javax.tools.JavaCompiler API instead. Further research needed; for details see imagej/imagej#105.

@ctrueden

This comment has been minimized.

Show comment
Hide comment
@ctrueden

ctrueden Feb 4, 2015

Member

Somehow my analysis above missed the components which are part of fiji.git but not currently present on the Fiji update site, such as Fiji_Archipelago. @larrylindsey: Are you interested in those components becoming part of core Fiji? Or would you rather keep them on a separate update site?

Also, for checking what has changed in a Fiji installation, the following invocation is really useful:

Contents/MacOS/ImageJ-macosx --update upload-complete-site --simulate Fiji
Member

ctrueden commented Feb 4, 2015

Somehow my analysis above missed the components which are part of fiji.git but not currently present on the Fiji update site, such as Fiji_Archipelago. @larrylindsey: Are you interested in those components becoming part of core Fiji? Or would you rather keep them on a separate update site?

Also, for checking what has changed in a Fiji installation, the following invocation is really useful:

Contents/MacOS/ImageJ-macosx --update upload-complete-site --simulate Fiji
@larrylindsey

This comment has been minimized.

Show comment
Hide comment
@larrylindsey

larrylindsey Feb 27, 2015

Contributor

Sorry, this got lost in the noise that is my inbox.

Yeah, I think it'd be awesome to have that be part of core Fiji.

On Wed, Feb 4, 2015 at 2:51 PM, Curtis Rueden notifications@github.com
wrote:

Somehow my analysis above missed the components which are part of fiji.git
but not currently present on the Fiji update site, such as
Fiji_Archipelago. @larrylindsey https://github.com/larrylindsey: Are
you interested in those components becoming part of core Fiji? Or would you
rather keep them on a separate update site?

Also, for checking what has changed in a Fiji installation, the following
invocation is really useful:

Contents/MacOS/ImageJ-macosx --update upload-complete-site --simulate Fiji


Reply to this email directly or view it on GitHub
#37 (comment).

Contributor

larrylindsey commented Feb 27, 2015

Sorry, this got lost in the noise that is my inbox.

Yeah, I think it'd be awesome to have that be part of core Fiji.

On Wed, Feb 4, 2015 at 2:51 PM, Curtis Rueden notifications@github.com
wrote:

Somehow my analysis above missed the components which are part of fiji.git
but not currently present on the Fiji update site, such as
Fiji_Archipelago. @larrylindsey https://github.com/larrylindsey: Are
you interested in those components becoming part of core Fiji? Or would you
rather keep them on a separate update site?

Also, for checking what has changed in a Fiji installation, the following
invocation is really useful:

Contents/MacOS/ImageJ-macosx --update upload-complete-site --simulate Fiji


Reply to this email directly or view it on GitHub
#37 (comment).

@ctrueden

This comment has been minimized.

Show comment
Hide comment
@ctrueden

ctrueden Mar 2, 2015

Member

@larrylindsey Cool, thanks for the reply. I uploaded the following plugins to the core Fiji update site:

  • Archipelago_Plugins
  • FS_Align_TrakEM2
  • Fiji_Archipelago
  • TrakEM2_Archipelago
Member

ctrueden commented Mar 2, 2015

@larrylindsey Cool, thanks for the reply. I uploaded the following plugins to the core Fiji update site:

  • Archipelago_Plugins
  • FS_Align_TrakEM2
  • Fiji_Archipelago
  • TrakEM2_Archipelago

ctrueden referenced this issue Apr 20, 2015

Add a mechanism to autorun JavaScript files
JS files are placed in plugins/Scripts/Plugins/AutoRun/, thus showing up in an
entry called "AutoRun" in the "Plugins" menu.
@ctrueden

This comment has been minimized.

Show comment
Hide comment
@ctrueden

ctrueden Aug 28, 2015

Member

It seems I never actually removed jdom and jdom-contrib from Fiji—they were still hanging around, and finally caused some mischief. So I marked them obsolete today, after verifying that nothing needs them. (Everything in Fiji now uses jdom2.)

Member

ctrueden commented Aug 28, 2015

It seems I never actually removed jdom and jdom-contrib from Fiji—they were still hanging around, and finally caused some mischief. So I marked them obsolete today, after verifying that nothing needs them. (Everything in Fiji now uses jdom2.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment