-
Notifications
You must be signed in to change notification settings - Fork 55
Release Notes
okram edited this page Sep 17, 2014
·
45 revisions
Pipes: A Lazy Data Flow Framework
http://pipes.tinkerpop.com

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>2.6.0</version>
</dependency><dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>2.5.0</version>
</dependency>-
GroupByPipeandGroupByReducePipenow take aCollectioninstead of aListfor theMapvalue that stores results. - Updated to support
LinkedHashSetinDuplicateFilterPipe - Updated to support
LinkedHashSetinCyclicPathFilterPipe
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>2.4.0</version>
</dependency>- Added
Pipeline.castto allow pipeline end type to be reset - Added a dependency to Blueprints and now Pipes can reference graph constructs
- Added all the graph-related pipes in Gremlin to Pipes
-
FilterPipe.Filterno longer exists as nowCompareshould be used - Full support for
Predicatefrom Blueprints - Added
ToStringPipeto support streaming results out as asObject.toString() - Added branch factor support to all
VerticesVerticesPipeandVerticesEdgesPipeclasses -
IntervalFilterPipenow requires twoComparablesnot just genericObject
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>2.3.0</version>
</dependency>- Breaking API change with
GroupByReducePipe—Iterator<V>is nowList<V> - Fixed a bug in
GroupByReducePipewhenLoopPipeis used in conjunction - Minor speed improvement to path calculations
- Moved
IdentityPipeto root package as it is not aTransformPipe - Added
<S,E>typing toTransformPipeinterface and updated respective pipe implementations -
ExceptFilterPipeandRetainFilterPipesupportString[]of named steps to reference as collection - Added sub-interfaces of
LazySideEffectPipeandGreedySideEffectPipeto specify when sideeffect is ready - Made
Row.getColumnNames()public - Better support for indexing
AsPipeswithin aMetaPipeinFluentUtility - Added
TransformPipe.Orderenums for ordering specifications inOrderPipeandOrderMapPipe - Added
OrderMapPipeto sort a map given aPipeFunctionand then emit map keys - Added
ShufflePipeto gather up all objects then randomize their output
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>2.2.0</version>
</dependency>- Fixed a comparator bug in
OrderPipe - Garbage collector optimized
CycliePathFilterPipeto avoid newing a set each iteration - Added
TransformPipeinterface to denote a transform operation so path joins are ignored
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>2.1.0</version>
</dependency>- Added Travis continuous integration support
- Added getters for getting the high and low end ranges of a
RangeFilterPipe - Made exception handling faster with
FastNoSuchElementException
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>2.0.0</version>
</dependency>-
GatherPipeno longer locks on looping and is semantically sound for depth-first traversing - Added
GatherFunctionPipefor user provided function to transform the gathered list - Added
Pipe.enablePath(boolean)method to support the turning on/off of path calculations (efficiency reasons) - Renamed
Pipe.getPath()toPipe.getCurrentPath() -
SideEffectCapPipemoved to thetransformpackage as it was wrongly organized in thesideeffectpackage - Fixed an indexing issue in
ExhaustMergePipethat made itself apparent when two split/merges happened in the same pipeline - Added
TreeandTreePipeto return a tree representation of a traversal - Merged
PathPipeandPathFunctionPipeinto one class calledPathPipe - Added
AbstractMetaPipeto encapsulate reused behavior in allMetaPipeimplementations - The
CopySplitPipe,FairMergePipe, andExhaustMergePipeall have functioning path calculations - Removed unused extra methods for merging in
PipesFluentPipelineinterface (and updated respective implementations) - Added
OrderPipeto do inline sorting of objects in a stream - Added numerous help methods to the
Tabledata structure

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>1.0</version>
</dependency>- Added
SelectPipeto select the objects of named steps from a pipeline - Separated
RowfromTableso it can be reused by other pipes (e.g.SelectPipe) - Heavily reworked
PipesFluentPipelineJavaDoc to make it a single point of reference - Updated
LoopPipesemantics such that if there is an emit function, then the final object in a while isn’t returned - Updated
GroupCountFunctionPipesemantics such that the value-function gets aPaircontaining incoming object and last value for that object - Reorganized the
com.tinkerpop.pipes.utilpackage - Removed the
objectFilterstep fromPipeFluentPipelineasretainandexceptcan be used instead -
EmptyIteratoris now a singleton -
ScatterPipenow scattersMapobjects intoMap.Entrystreams - Added
GroupByPipewhich groups values under a provided key - Added
GroupByReducePipewhich groups reduced values under a provided key

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.9</version>
</dependency>- Removed all Blueprints graph related dependencies
- Renamed
UniquePathFilterPipetoCyclicPathFilterPipe - Renamed and removed numerous methods in
FluentPipelineto make DSL construction more concise - Updated
LoopPipeto support emit functionality viaPipeFunction - Added
StorePipeto lazily save objects to provided collection - Added function support to
DeduplicateFilterPipe

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.8</version>
</dependency>-
SideEffectPipenow has signature of<S,T>instead of<S,E,T> -
GroupCountFunctionPipehas signature of<S,K>to denote the key of itsMap<K,Number>side-effect - Removed
ComparisonFilterPipeas it is confusing and nowPipeHelperhas comparison support - Added
PipeHelper.makePipeString()to have a single point where all pipetoString()s are created - Optimized
PipeHelper.counter()andPipeHelper.fillCollection()by respecting architecture ofAbstractPipe - Added
PipeHelper.iterate()to complete drain an iterator - Added
FluentPipelineas a utility class for fluently constructing a pipeline - Added
RetainFilterPipe, addedExceptFilterPipe, and abstractedCollectionFilterPipe - Added
EdgesPipe, addedVerticesPipe, and abstractedGraphElementPipe - Renamed
AggregatorPipetoAggregatePipe -
AndFilterPipeandOrFilterPipewill automatically wrap provided pipes in aHasNextPipe - Generalized
GroupCountPipeto have a value ofMap<Object,Number>instead ofLong - Migrated
TablePipeandTablefrom Gremlin - Simplified the semantics of
HasNextPipe(usePipe.hasNext()to accomplish previous behavior) - Added
MemoizePipeto memoize the mapping of a particular pipe - Simplified
PipeClosureto be purely functional and now namedPipeFunction- Renamed
XXXClosurePipetoXXXFunctionPipe
- Renamed
- Fixed performance issue in
RangeFilterPipeand providedlongranges

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.7</version>
</dependency>- Added support for
Vertex.getOutEdges(String...)andVertex.getInEdges(String...) - Updated
AggregatorPipeto be fullySideEffectPipecompliant and to respectgetPath() - Added
PipeClosureto support function-based pipes - Migrated all the Gremlin specific pipes to Pipes
- Refactored package names to align with pipe semantics
- Flipped the meaning of
Filter, wheretruemeans pass, andfalsemeans filter - Added
AggregatorPipePipeClosureto process object prior to insertion into the aggregate collection - Added temporary fix for
AggregatorPipe/LoopPipephenomena -
IfThenElsePipenow requires anelseFunction

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.6</version>
</dependency>-
RangeFilterPipemax value is now inclusive - Added
OptionalPipewhich is likeBackFilterPipe, but non-filtering. - Updated
AggregatorPipeto support multiplesetStarts()

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.5</version>
</dependency>- Added
OutPipe,InPipe, andBothPipeto allow for vertex-vertex hoping - Removed
VertexEdgeLabelFilterPipeas it is now covered by more efficient pipes - Added the
MetaPipeinterface to allow pipes to acknowledge pipe wrapping - Added
CopySplitPipe,ExhaustMergePipe, andFairMergePipe - Optimized
PropertyPipeandUniquePathFilterPipe - Added support for Pipe.reset() and thus, pipe reuse

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.4</version>
</dependency>- Added
StartPipeto aid in creating anObject-to-Pipeconverter - Removed
VertexEdgeandEdgeVertexpipes for more low-level/faster pipes. - Supports new Blueprints packaging scheme.

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.3.1</version>
</dependency>- Added
VertexEdgeLabelFilterPipeto reflect BlueprintsVertexAPI update - Added
UniquePathFilterPipeto filter paths that have visited the same object twice
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.3</version>
</dependency>- Added a general
toString()model to articulate pipe construction - Redesigned path-model to where
enablePaths()no longer required- Added
HistoryIteratorto replace theenablePath()model
- Added
- Renamed
CountCombinetoGroupCount - Added
ExpandableIteratorto support pipe looping - Removed many unused pipes for the sake of clarity and simplicity
- Added
GatherPipeas a composite ofSideEffectCapPipeandAggregatorPipe - Removed
EndSupportPipeas that is whatScatterPipenow accomplishes

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.2</version>
</dependency>- Added path functionality to get the path pipe traversed
- Added
PathSequencepath utility - Added
PathPipeto support using paths in a computation
- Added
- Numerous test cases added

<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.1.1</version>
</dependency>- Fixed ‘reset pipe’ issue in
FutureFilterPipe
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>pipes</artifactId>
<version>0.1</version>
</dependency>- Initial release as the core engine for Gremlin 0.5