openmicroscopy/bioformats — pull request #91 by hinerm (2012-07-05 15:53:11+00:00)
Title: Common refactor

This branch is a necessary first step towards integrating the scifio-refactor branch with develop.

The goal here was to fully establish the bio-formats-legacy component, using the loci-common component as our first use case.

To this end, the loci-common component has been removed. It's classes have been split into various ome.scifio packages within the SCIFIO component.

The bio-formats-legacy component was created to preserve backwards compatibility with code that references packages that no longer exist because of their migration to SCIFIO. In this branch, that would be the loci.common packages. This also lays the groundwork to migrate and preserve loci.formats packages as SCIFIO readers are developed.

To accomplish this preservation we introduced delegator classes that replicate the old loci.common structure and package hierarchy. Each class either passes control to or extends its paired ome.scifio class.

Note that private classes and methods were not preserved in bio-formats-legacy, but a utility class to access protected methods was introduced.

An emphasis was placed on preserving commit history - so the bio-formats-legacy delegators should show the same commit history as their ome.scifio partners. However, they are distinct classes now and their histories will be their own from this point on.

Note that this branch also includes multiple merge commits with develop, as our ultimate goal is to maintain integration with develop, to allow a smooth transition to SCIFIO readers.

To test this branch:
Try the ant (e.g. "jar-bflegacy") and maven ("mvn" from the bio-formats and/or bio-formats-legacy toplevel) targets.
Verify the bio-formats-legacy jar is created as part of the ant tools target
Verify there are no more "loci common" dependencies or build targets
Build/run ome-notes: as ome-notes is a legacy component, it was updated to use the bio-formats-legacy delegators instead of shifting to the scifio classes. So it serves as a sort of demo for bflegacy.
Use "git --follow --name-status" on various loci common classes within both bio-formats-legacy (loci.common) and scifio (ome.scifio.io, ome.scifio.xml, ome.scifio.common, ome.scifio.services, ome.scifio.enumeration) components and ensure the histories are the same at this point.