bazaarvoice/jolt — pull request #42 by milosimpson (2013-08-02 00:10:47+00:00)
Title: fixes #39 Refactor Chainr to allow for a Guice Transform Loading

Three distinct top level things were done in this change.

1) The processing of the Chainr Spec file was pulled out of Chainr and into
a ChainrBuilder. Existing code can be easily updated by using new
static method on Chainr.fromSpec() which encapsulates usage of the
ChainrBuilder.
2) The code that instantiates Transform instances was extracted so that Jolt
clients can use Guice to load their Custom Java Transforms.
Additionally,
3) The Transform interface given a new parent interface, JoltTransform.
The Transform interface gets a sibling interface ContextualTransform that takes an
additional / optional "context".
Chainr makes its list of ContextualTransforms available for examination.
New testing paradigm for validating ContextualTransforms.

Minor Changes
- Change Chainr transform range to have exclusive "to".
- Got rid of crufty "java" / "classname" notion.
- New ChainrSpec/Entry "pojoy" objects used by new ChainrBuilder.
- Included and annotated "stock" SpecTransforms with standard javax @Inject
- Removed crufty delegatr stuff from ChainrTest.