Login  Register

issues building from source: javadoc, source encoding, and srcdir

Posted by Carnë Draug on Aug 28, 2017; 1:37pm
URL: http://imagej.273.s1.nabble.com/issues-building-from-source-javadoc-source-encoding-and-srcdir-tp5019285.html

Hi

I have been doing some work on the ImageJ Debian package and came
across a few issues detailed below.  Simple patches are available to
all of them.  Would be nice if they were fixed upstream.

Thank you
Carnë

---

The file ij/process/AutoThresholder.java makes use the character
U+00A0 (NO-BREAK SPACE [NBSP]) on line 652 [1].  This is a just
comment but it's causing an error during the build unless the encoding
is set.  This can be fixed by specifying the encoding on the build.xml
file.  Trivial patch available [2].

Alternatively, I guess it could be replaced with a simple space
character or maybe the escaped unicode.

---

There's some invalid javadoc on the source files.  These are the
warnings:

  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/Roi.java:574: warning -
Tag @see: can't find Iterator() in ij.gui.Roi
  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/Roi.java:2153: warning -
Tag @link: reference not found: Interable
  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/Roi.java:2153: warning -
Tag @link: reference not found: Interable
  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/PointRoi.java:714: warning
- Tag @author cannot be used in method documentation.  It can only be
used in the following types of documentation: overview, package,
class/interface.
  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/Roi.java:2153: warning -
Tag @link: reference not found: Interable
  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/Roi.java:606: warning -
@Returns is an unknown tag.
  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/Roi.java:2153: warning -
Tag @link: reference not found: Interable
  [javadoc] /build/imagej-1.51p+dfsg/ij/gui/Roi.java:2153: warning -
Tag @author cannot be used in method documentation.  It can only be
used in the following types of documentation: overview, package,
class/interface.

There are the Interable->Iterable, Iterator()->iterator(), and
Returns->return typos.  Trivial patch available [3].

The other issue is the use of @author in the method documentation
which I'm unsure about which way ImageJ would prefer to fix.  I guess
they could be moved to the class documentation, turned it into plain
text, or just dropped completely.

---

The build.xml file sets the project root directory as srcdir for the
javac task.  However, only files in "ij/" are actually compiled.

This causes issues in Debian because quilt, the tool used by Debian to
manage patches, creates a backup of the class files within a ".pc"
directory during the build.  These class files are then picked up by
the javac task causing an error due to duplicated classes.

Debian has been solving this by patching build.xml to simply exclude
the ".pc" directory [4].  However, since only the files in "ij/" are
compiled, would be nice if srcdir was set to "ij" only.  This would
also mean that ant wouldn't have to scan the other directories for
java source files, and Debian could drop the patch.

---

[1] https://anonscm.debian.org/cgit/debian-med/imagej.git/tree/ij/process/AutoThresholder.java#n652
[2] https://anonscm.debian.org/cgit/debian-med/imagej.git/tree/debian/patches/specify-javac-encoding.patch
[3] https://anonscm.debian.org/cgit/debian-med/imagej.git/tree/debian/patches/fix-javadocs-syntax.patch
[4] https://anonscm.debian.org/cgit/debian-med/imagej.git/tree/debian/patches/exclude-quilt-from-ant.patch

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html