cloudera/crunch — pull request #41 by robotoer (2012-06-13 07:03:46+00:00)
Title: Refactored Pipeline class to not be generic.

The pipeline class contains no fields or methods with the generic parameter. Its only used during construction. This change makes it so that pipelines can be created with:

Pipeline.mapReduce(/* ... */)
// or
Pipeline.mapReduce[T: ClassManifest](/* ... */)
// or
Pipeline.inMemory
// or
new Pipeline.MapReducePipeline(/* ... */)
etc...

I also left in the ability to construct Pipelines directly from its companion object as a deprecated method. I was unfortunately unable to preserve the original construction syntax of Pipeline, but did provide something simliar with the deprecated method:

object Pipeline {
// ...
def apply[T: ClassManifest](/* ... */)
// ...
}

Since this patch changes the API I understand entirely if you decide not to accept it.