Hi Damjan,

I reviewed the API, here are my observations:

- Would that make sense to move the LZM implementation to commons-compress?

- What is the purpose of CachingInputStream and CachingOutputStream,
there is no Javadoc on these classes. Could they be merged into commons-io?

- Why is ZLibUtils in org.apache.commons.imaging.common instead of
org.apache.commons.imaging.util ?

- FastByteArrayOutputStream is only used by PackBits in the same
package, it could be made package private.

- BitArrayOutputStream in org.apache.commons.imaging.common is only used
by classes in org.apache.commons.imaging.common.itu_t4. It could be
moved into this package and made package private.

- There are several unused public methods in BinaryInputStream

- org.apache.commons.imaging.common.Compression is never used

- RgbBufferedImageFactory is only used in RoundtripTest, should this be
moved with the test sources?

- SimpleBufferedImageFactory is only used by ImageParser and could be
made package private.

- What about replacing org.apache.commons.imaging.common.ByteOrder with
java.nio.ByteOrder?

- Several methods in BinaryFunctions have an unused 'name' parameter.

- UnicodeUtils is only used by PngWriter and could be made package
private. Considering that any byte sequence is a valid ISO-8859-1 string
this class could also be removed.

- Why does RationalNumberUtilities extend Number? And shouldn't this
class be named RationalNumberUtils for consistency with the other *Utils
classes? I think the class could simply be merged into RationalNumber.

- There are several unused methods in ColorTools, I don't know if they
are actually useful and are just missing a unit test.

- ZigZag is only used in JpegDecoder and could be made package private

- The public permissive field in JpegImageParser is never used

- The public Attribute_Tag field in TiffField is never used

- Some public static final constants don't have an uppercased name, I
fixed them on the trunk

- The PixelParser classes in
org.apache.commons.imaging.formats.bmp.pixelparsers seems to be used
only internally by BmpImageParser. They can't be made package private
but could at least be excluded from the Javadoc.

- Same comment for org.apache.commons.imaging.formats.bmp.writers

- The Dct, JpegInputStream and YCbCrConverter classes in
org.apache.commons.imaging.formats.jpeg.decoder are only used internally
by JpegDecoder and could be made package private.

- What about moving the methods in ColorConversions into the respective
Color classes? For example, ColorConversions.convertCIELuvtoXYZ() could
become ColorCieLuv.toXYZ(). Another idea would be to use a fluent
interface to perform the conversions. Something like
ColorConverter.fromRGB(r, g, b).toHSL().


I haven't reviewed everything yet, but I have the feeling the public API
could be better polished to remove unused or internal stuff that are
probably not useful for the end users.

Emmanuel Bourg



Le 24/11/2013 17:54, Damjan Jovanovic a écrit :
> Please vote on releasing commons-imaging 1.0 from RC7.
> 
> Last failed vote was for RC5, RC6 had a bust POM. Many improvements
> were made since:
> * PMD configured better and all PMD warnings fixed, the ones remaining
> now are bugs in PMD itself.
> * Test coverage greatly improved in many areas, only a few packages
> now have < 50% coverage, and that's due to obscure TIFF photometric
> interpreters and PSD data parsers that require special images to test
> which Imaging can't itself generate, a massive barely used
> semi-obsolete Debug class that drags down coverage for
> org.apache.commons.imaging.util, and areas of code I don't understand
> and so can't easily test (ICC, PSD). While improving test coverage, I
> also found and fixed 2 bugs.
> * Added package-level Javadoc for image formats.
> * RAT exclusions for text-based images, and made a single info.txt
> with image formation for all images and added a license header to it.
> * Fixed Jacoco configuration in the POM and started using it instead
> of that 40+ minute Cobertura nonsense.
> * Fixed website broken links.
> * Also started assembling a list of why making releases is such a
> pain, email coming later :).
> 
> Imaging 1.0 RC7 is available here:
> https://dist.apache.org/repos/dist/dev/commons/imaging/ (SVN revision 3671)
> 
> Maven artifacts:
> https://repository.apache.org/content/repositories/staging/org/apache/commons/commons-imaging/
> 
> Change log(s):
> https://dist.apache.org/repos/dist/dev/commons/imaging/RELEASE-NOTES.txt
> http://people.apache.org/~damjan/imaging-1.0-RC7/changes-report.html
> http://people.apache.org/~damjan/imaging-1.0-RC7/jira-report.html
> 
> Tag:
> https://svn.apache.org/repos/asf/commons/proper/imaging/tags/IMAGING_1_0_RC7
> (SVN revision 1544953)
> 
> Site:
> http://people.apache.org/~damjan/imaging-1.0-RC7/
> 
> KEYS:
> http://www.apache.org/dist/commons/KEYS
> 
> I have tested it with OpenJDK 6 on FreeBSD 9.1.
> 
> Please review and vote. This vote will close no sooner than 72 hours
> from now, on Wednesday 27 November 2013 at 19:00 GMT.
> 
> [ ] +1 Release these artifacts
> [ ] +0 OK, but...
> [ ] -0 OK, but really should fix...
> [ ] -1 I oppose this release because...
> 
> Thank you!
> 
> Damjan Jovanovic
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to