├── .gitignore ├── CHANGES.txt ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── apl.txt ├── build.gradle ├── cascading-core ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ ├── CascadingException.java │ │ ├── cascade │ │ ├── BaseCascade.java │ │ ├── Cascade.java │ │ ├── CascadeConnector.java │ │ ├── CascadeDef.java │ │ ├── CascadeException.java │ │ ├── CascadeListener.java │ │ ├── CascadeProps.java │ │ ├── Cascades.java │ │ └── planner │ │ │ ├── FlowGraph.java │ │ │ ├── IdentifierGraph.java │ │ │ ├── TapGraph.java │ │ │ └── TopologyGraph.java │ │ ├── flow │ │ ├── AssemblyPlanner.java │ │ ├── BaseFlow.java │ │ ├── Flow.java │ │ ├── FlowConnector.java │ │ ├── FlowConnectorProps.java │ │ ├── FlowDef.java │ │ ├── FlowDescriptors.java │ │ ├── FlowElement.java │ │ ├── FlowElements.java │ │ ├── FlowException.java │ │ ├── FlowListener.java │ │ ├── FlowNode.java │ │ ├── FlowNodeDescriptors.java │ │ ├── FlowProcess.java │ │ ├── FlowProcessWrapper.java │ │ ├── FlowProps.java │ │ ├── FlowRuntimeProps.java │ │ ├── FlowSession.java │ │ ├── FlowSkipIfSinkExists.java │ │ ├── FlowSkipIfSinkNotStale.java │ │ ├── FlowSkipStrategy.java │ │ ├── FlowStep.java │ │ ├── FlowStepDescriptors.java │ │ ├── FlowStepListener.java │ │ ├── FlowStepStrategy.java │ │ ├── FlowTapException.java │ │ ├── Flows.java │ │ ├── SliceCounters.java │ │ ├── StepCounters.java │ │ ├── planner │ │ │ ├── AssemblyPlannerContext.java │ │ │ ├── BaseFlowNode.java │ │ │ ├── BaseFlowNodeFactory.java │ │ │ ├── BaseFlowStep.java │ │ │ ├── BaseFlowStepFactory.java │ │ │ ├── DeclaresResults.java │ │ │ ├── ElementGraphException.java │ │ │ ├── FlowPlanner.java │ │ │ ├── FlowStepJob.java │ │ │ ├── PlannerContext.java │ │ │ ├── PlannerException.java │ │ │ ├── PlannerInfo.java │ │ │ ├── PlatformInfo.java │ │ │ ├── Scope.java │ │ │ ├── ScopedElement.java │ │ │ ├── graph │ │ │ │ ├── AnnotatedDecoratedElementGraph.java │ │ │ │ ├── AnnotatedGraph.java │ │ │ │ ├── BaseAnnotatedElementGraph.java │ │ │ │ ├── BaseElementGraph.java │ │ │ │ ├── BoundedElementMultiGraph.java │ │ │ │ ├── DecoratedElementGraph.java │ │ │ │ ├── ElementDirectedGraph.java │ │ │ │ ├── ElementGraph.java │ │ │ │ ├── ElementGraphs.java │ │ │ │ ├── ElementMaskSubGraph.java │ │ │ │ ├── ElementMultiGraph.java │ │ │ │ ├── ElementSubGraph.java │ │ │ │ ├── Extent.java │ │ │ │ ├── FlowElementGraph.java │ │ │ │ ├── IgnoreAnnotationsHashSet.java │ │ │ │ └── IgnoresAnnotationsElementGraph.java │ │ │ ├── iso │ │ │ │ ├── ElementAnnotation.java │ │ │ │ ├── GraphResult.java │ │ │ │ ├── assertion │ │ │ │ │ ├── Asserted.java │ │ │ │ │ └── GraphAssert.java │ │ │ │ ├── expression │ │ │ │ │ ├── AndElementExpression.java │ │ │ │ │ ├── AnnotationExpression.java │ │ │ │ │ ├── ElementCapture.java │ │ │ │ │ ├── ElementExpression.java │ │ │ │ │ ├── Expression.java │ │ │ │ │ ├── ExpressionGraph.java │ │ │ │ │ ├── FlowElementExpression.java │ │ │ │ │ ├── JoinEdgesSameSourceScopeExpression.java │ │ │ │ │ ├── NonSafeOperationExpression.java │ │ │ │ │ ├── NotElementExpression.java │ │ │ │ │ ├── OperationExpression.java │ │ │ │ │ ├── OrElementExpression.java │ │ │ │ │ ├── OrdinalScopeExpression.java │ │ │ │ │ ├── PathScopeExpression.java │ │ │ │ │ ├── PlannerLevelElementExpression.java │ │ │ │ │ ├── PlannerLevelPipeExpressionGraph.java │ │ │ │ │ ├── ScopeExpression.java │ │ │ │ │ └── TypeExpression.java │ │ │ │ ├── finder │ │ │ │ │ ├── FinderContext.java │ │ │ │ │ ├── GraphFinder.java │ │ │ │ │ ├── GraphFinderException.java │ │ │ │ │ ├── IndexedElementGraph.java │ │ │ │ │ ├── IndexedGraph.java │ │ │ │ │ ├── IndexedMatchGraph.java │ │ │ │ │ ├── Match.java │ │ │ │ │ ├── SearchOrder.java │ │ │ │ │ └── State.java │ │ │ │ ├── subgraph │ │ │ │ │ ├── GraphPartitioner.java │ │ │ │ │ ├── Partitions.java │ │ │ │ │ ├── SubGraphIterator.java │ │ │ │ │ ├── iterator │ │ │ │ │ │ ├── ExpressionSubGraphIterator.java │ │ │ │ │ │ ├── IncludeRemainderSubGraphIterator.java │ │ │ │ │ │ └── UniquePathSubGraphIterator.java │ │ │ │ │ └── partitioner │ │ │ │ │ │ ├── ExpressionGraphPartitioner.java │ │ │ │ │ │ ├── UniquePathGraphPartitioner.java │ │ │ │ │ │ └── WholeGraphPartitioner.java │ │ │ │ └── transformer │ │ │ │ │ ├── AnnotateGraphTransformer.java │ │ │ │ │ ├── ContractedGraphTransformer.java │ │ │ │ │ ├── ContractedTransformer.java │ │ │ │ │ ├── ElementFactory.java │ │ │ │ │ ├── GraphTransformer.java │ │ │ │ │ ├── InsertionGraphTransformer.java │ │ │ │ │ ├── MutateGraphTransformer.java │ │ │ │ │ ├── RecursiveGraphTransformer.java │ │ │ │ │ ├── RemoveBranchGraphTransformer.java │ │ │ │ │ ├── ReplaceGraphFactoryBasedTransformer.java │ │ │ │ │ ├── ReplaceGraphTransformer.java │ │ │ │ │ ├── SubGraphTransformer.java │ │ │ │ │ └── Transformed.java │ │ │ ├── process │ │ │ │ ├── BaseProcessGraph.java │ │ │ │ ├── FlowNodeFactory.java │ │ │ │ ├── FlowNodeGraph.java │ │ │ │ ├── FlowStepFactory.java │ │ │ │ ├── FlowStepGraph.java │ │ │ │ ├── ProcessEdge.java │ │ │ │ ├── ProcessGraph.java │ │ │ │ ├── ProcessGraphs.java │ │ │ │ ├── ProcessModel.java │ │ │ │ └── ProcessModels.java │ │ │ └── rule │ │ │ │ ├── ExecAction.java │ │ │ │ ├── PlanPhase.java │ │ │ │ ├── ProcessLevel.java │ │ │ │ ├── Rule.java │ │ │ │ ├── RuleAssert.java │ │ │ │ ├── RuleExec.java │ │ │ │ ├── RuleExpression.java │ │ │ │ ├── RuleMode.java │ │ │ │ ├── RulePartitioner.java │ │ │ │ ├── RuleRegistry.java │ │ │ │ ├── RuleRegistrySet.java │ │ │ │ ├── RuleResult.java │ │ │ │ ├── RuleSetExec.java │ │ │ │ ├── RuleTransformer.java │ │ │ │ ├── ScopeResolver.java │ │ │ │ ├── TransformException.java │ │ │ │ ├── UnsupportedPlanException.java │ │ │ │ ├── annotator │ │ │ │ ├── BlockingHashJoinAnnotator.java │ │ │ │ ├── HashJoinBlockingHashJoinAnnotator.java │ │ │ │ └── LogicalMergeAnnotator.java │ │ │ │ ├── assertion │ │ │ │ ├── BufferAfterEveryAssert.java │ │ │ │ ├── EveryAfterBufferAssert.java │ │ │ │ ├── LoneGroupAssert.java │ │ │ │ ├── MissingGroupAssert.java │ │ │ │ └── SplitBeforeEveryAssert.java │ │ │ │ ├── elementexpression │ │ │ │ ├── BoundariesElementExpression.java │ │ │ │ ├── GroupOrMergeElementExpression.java │ │ │ │ └── TapOrBoundaryElementExpression.java │ │ │ │ ├── expression │ │ │ │ ├── BufferAfterEveryExpression.java │ │ │ │ ├── EveryAfterBufferExpression.java │ │ │ │ ├── LogicalMergeAnnotatorExpression.java │ │ │ │ ├── LoneGroupExpression.java │ │ │ │ ├── MissingGroupExpression.java │ │ │ │ ├── NoOpPipeExpression.java │ │ │ │ ├── NoOpPipeMultiGraphExpression.java │ │ │ │ ├── NonBlockedBlockedJoinAnnotatorExpression.java │ │ │ │ ├── NonBlockedBlockedJoinJoinAnnotatorExpression.java │ │ │ │ ├── PlannerLevelExpression.java │ │ │ │ └── SplitBeforeEveryExpression.java │ │ │ │ ├── expressiongraph │ │ │ │ ├── ConsecutiveNoOpPipesExpressionGraph.java │ │ │ │ ├── ConsecutiveTapsExpressionGraph.java │ │ │ │ ├── DualStreamedAccumulatedExpressionGraph.java │ │ │ │ ├── GroupTapExpressionGraph.java │ │ │ │ ├── LogicalMergeExpressionGraph.java │ │ │ │ ├── MultiTapGroupExpressionGraph.java │ │ │ │ ├── NoCoGroupJoinTapExpressionGraph.java │ │ │ │ ├── NoGroupJoinMergeBoundaryTapExpressionGraph.java │ │ │ │ ├── NoGroupJoinTapExpressionGraph.java │ │ │ │ ├── NoGroupMergeTapExpressionGraph.java │ │ │ │ ├── NoGroupTapExpressionGraph.java │ │ │ │ ├── NoMergeTapExpressionGraph.java │ │ │ │ ├── NoOpPipeExpressionGraph.java │ │ │ │ ├── NonBlockedBlockedJoinExpressionGraph.java │ │ │ │ ├── NonBlockedBlockedJoinJoinExpressionGraph.java │ │ │ │ ├── NonSafeAndSplitAndSyncPipeExpressionGraph.java │ │ │ │ ├── OnlyPipeExpressionGraph.java │ │ │ │ ├── SplicePipeExpressionGraph.java │ │ │ │ ├── SyncPipeExpressionGraph.java │ │ │ │ └── TapGroupTapExpressionGraph.java │ │ │ │ ├── partitioner │ │ │ │ ├── ExpressionRulePartitioner.java │ │ │ │ ├── UniquePathRulePartitioner.java │ │ │ │ ├── WholeGraphNodePartitioner.java │ │ │ │ ├── WholeGraphRulePartitioner.java │ │ │ │ └── WholeGraphStepPartitioner.java │ │ │ │ ├── transformer │ │ │ │ ├── ApplyAssertionLevelTransformer.java │ │ │ │ ├── ApplyDebugLevelTransformer.java │ │ │ │ ├── BoundaryElementFactory.java │ │ │ │ ├── IntermediatePipeElementFactory.java │ │ │ │ ├── IntermediateTapElementFactory.java │ │ │ │ ├── NoOpPipeMultiGraphTransformer.java │ │ │ │ ├── RemoveNoOpPipeTransformer.java │ │ │ │ ├── RuleAnnotationTransformer.java │ │ │ │ ├── RuleContractedTransformer.java │ │ │ │ ├── RuleInsertionTransformer.java │ │ │ │ ├── RuleRemoveBranchTransformer.java │ │ │ │ ├── RuleReplaceFactoryBasedTransformer.java │ │ │ │ └── RuleReplaceTransformer.java │ │ │ │ └── util │ │ │ │ ├── LogLevel.java │ │ │ │ ├── ResultTree.java │ │ │ │ ├── RuleLogUtil.java │ │ │ │ └── TraceWriter.java │ │ ├── process │ │ │ ├── ProcessFlow.java │ │ │ └── ProcessFlowStep.java │ │ └── stream │ │ │ ├── TrapException.java │ │ │ ├── annotations │ │ │ ├── BlockingMode.java │ │ │ ├── RoleMode.java │ │ │ └── StreamMode.java │ │ │ ├── duct │ │ │ ├── CloseReducingDuct.java │ │ │ ├── CloseWindow.java │ │ │ ├── Collapsing.java │ │ │ ├── Duct.java │ │ │ ├── DuctException.java │ │ │ ├── DuctGraph.java │ │ │ ├── Fork.java │ │ │ ├── Gate.java │ │ │ ├── Grouping.java │ │ │ ├── OpenDuct.java │ │ │ ├── OpenReducingDuct.java │ │ │ ├── OpenWindow.java │ │ │ ├── OrdinalDuct.java │ │ │ ├── Reducing.java │ │ │ ├── Stage.java │ │ │ └── Window.java │ │ │ ├── element │ │ │ ├── AggregatorEveryStage.java │ │ │ ├── BoundaryStage.java │ │ │ ├── BufferEveryWindow.java │ │ │ ├── EachStage.java │ │ │ ├── ElementDuct.java │ │ │ ├── ElementFlowProcess.java │ │ │ ├── ElementStage.java │ │ │ ├── EveryStage.java │ │ │ ├── FilterEachStage.java │ │ │ ├── FunctionEachStage.java │ │ │ ├── GroupAssertionEveryStage.java │ │ │ ├── GroupingSpliceGate.java │ │ │ ├── InputSource.java │ │ │ ├── MemoryCoGroupClosure.java │ │ │ ├── MemoryCoGroupGate.java │ │ │ ├── MemoryHashJoinGate.java │ │ │ ├── MemorySpliceGate.java │ │ │ ├── MergeStage.java │ │ │ ├── OperatorStage.java │ │ │ ├── SinkStage.java │ │ │ ├── SourceStage.java │ │ │ ├── SpliceGate.java │ │ │ ├── TrapHandler.java │ │ │ └── ValueAssertionEachStage.java │ │ │ ├── graph │ │ │ ├── IORole.java │ │ │ ├── NodeStreamGraph.java │ │ │ └── StreamGraph.java │ │ │ └── util │ │ │ └── SparseTupleComparator.java │ │ ├── management │ │ ├── CascadingServices.java │ │ ├── DocumentService.java │ │ ├── DocumentServiceException.java │ │ ├── MetricsService.java │ │ ├── UnitOfWork.java │ │ ├── UnitOfWorkExecutorStrategy.java │ │ ├── UnitOfWorkSpawnStrategy.java │ │ ├── annotation │ │ │ ├── Order.java │ │ │ ├── Property.java │ │ │ ├── PropertyConfigured.java │ │ │ ├── PropertyDescription.java │ │ │ ├── PropertyOrder.java │ │ │ ├── PropertyRegexSanitizer.java │ │ │ ├── PropertySanitizer.java │ │ │ ├── Sanitizer.java │ │ │ ├── URISanitizer.java │ │ │ └── Visibility.java │ │ └── state │ │ │ ├── BaseState.java │ │ │ └── ClientState.java │ │ ├── operation │ │ ├── Aggregator.java │ │ ├── AggregatorCall.java │ │ ├── Assertion.java │ │ ├── AssertionException.java │ │ ├── AssertionLevel.java │ │ ├── BaseOperation.java │ │ ├── Buffer.java │ │ ├── BufferCall.java │ │ ├── ConcreteCall.java │ │ ├── Debug.java │ │ ├── DebugLevel.java │ │ ├── Filter.java │ │ ├── FilterCall.java │ │ ├── Function.java │ │ ├── FunctionCall.java │ │ ├── GroupAssertion.java │ │ ├── GroupAssertionCall.java │ │ ├── Identity.java │ │ ├── Insert.java │ │ ├── NoOp.java │ │ ├── Operation.java │ │ ├── OperationCall.java │ │ ├── OperationException.java │ │ ├── PlannedOperation.java │ │ ├── PlannerLevel.java │ │ ├── ValueAssertion.java │ │ ├── ValueAssertionCall.java │ │ ├── aggregator │ │ │ ├── Average.java │ │ │ ├── Count.java │ │ │ ├── ExtentBase.java │ │ │ ├── ExtremaValueBase.java │ │ │ ├── First.java │ │ │ ├── Last.java │ │ │ ├── MaxValue.java │ │ │ ├── MinValue.java │ │ │ └── Sum.java │ │ ├── assertion │ │ │ ├── AssertEquals.java │ │ │ ├── AssertEqualsAll.java │ │ │ ├── AssertGroupBase.java │ │ │ ├── AssertGroupSizeEquals.java │ │ │ ├── AssertGroupSizeLessThan.java │ │ │ ├── AssertGroupSizeMoreThan.java │ │ │ ├── AssertMatches.java │ │ │ ├── AssertMatchesAll.java │ │ │ ├── AssertNotEquals.java │ │ │ ├── AssertNotNull.java │ │ │ ├── AssertNull.java │ │ │ ├── AssertSizeEquals.java │ │ │ ├── AssertSizeLessThan.java │ │ │ ├── AssertSizeMoreThan.java │ │ │ └── BaseAssertion.java │ │ ├── buffer │ │ │ └── FirstNBuffer.java │ │ ├── filter │ │ │ ├── And.java │ │ │ ├── FilterNotNull.java │ │ │ ├── FilterNull.java │ │ │ ├── Limit.java │ │ │ ├── Logic.java │ │ │ ├── Not.java │ │ │ ├── Or.java │ │ │ ├── Sample.java │ │ │ └── Xor.java │ │ ├── function │ │ │ ├── SetValue.java │ │ │ └── UnGroup.java │ │ ├── regex │ │ │ ├── RegexFilter.java │ │ │ ├── RegexGenerator.java │ │ │ ├── RegexMatcher.java │ │ │ ├── RegexOperation.java │ │ │ ├── RegexParser.java │ │ │ ├── RegexReplace.java │ │ │ ├── RegexSplitGenerator.java │ │ │ └── RegexSplitter.java │ │ ├── state │ │ │ ├── Counter.java │ │ │ └── Status.java │ │ └── text │ │ │ ├── DateFormatter.java │ │ │ ├── DateOperation.java │ │ │ ├── DateParser.java │ │ │ ├── FieldFormatter.java │ │ │ └── FieldJoiner.java │ │ ├── pipe │ │ ├── Boundary.java │ │ ├── Checkpoint.java │ │ ├── CoGroup.java │ │ ├── Each.java │ │ ├── Every.java │ │ ├── Group.java │ │ ├── GroupBy.java │ │ ├── HashJoin.java │ │ ├── Merge.java │ │ ├── Operator.java │ │ ├── OperatorException.java │ │ ├── Pipe.java │ │ ├── Splice.java │ │ ├── SubAssembly.java │ │ ├── assembly │ │ │ ├── AggregateBy.java │ │ │ ├── AggregateByProps.java │ │ │ ├── AverageBy.java │ │ │ ├── Coerce.java │ │ │ ├── CountBy.java │ │ │ ├── Discard.java │ │ │ ├── FirstBy.java │ │ │ ├── MaxBy.java │ │ │ ├── MinBy.java │ │ │ ├── Rename.java │ │ │ ├── Retain.java │ │ │ ├── SumBy.java │ │ │ ├── Unique.java │ │ │ └── UniqueProps.java │ │ └── joiner │ │ │ ├── BaseJoiner.java │ │ │ ├── BufferJoin.java │ │ │ ├── InnerJoin.java │ │ │ ├── Joiner.java │ │ │ ├── JoinerClosure.java │ │ │ ├── LeftJoin.java │ │ │ ├── MixedJoin.java │ │ │ ├── OuterJoin.java │ │ │ └── RightJoin.java │ │ ├── property │ │ ├── AppProps.java │ │ ├── ConfigDef.java │ │ ├── PropertyUtil.java │ │ ├── Props.java │ │ └── UnitOfWorkDef.java │ │ ├── provider │ │ ├── CascadingFactory.java │ │ ├── CascadingService.java │ │ ├── ChildFirstURLClassLoader.java │ │ ├── FactoryLoader.java │ │ ├── ProviderLoader.java │ │ └── ServiceLoader.java │ │ ├── scheme │ │ ├── ConcreteCall.java │ │ ├── NullScheme.java │ │ ├── Scheme.java │ │ ├── SinkCall.java │ │ ├── SourceCall.java │ │ └── util │ │ │ ├── DelimitedParser.java │ │ │ └── FieldTypeResolver.java │ │ ├── stats │ │ ├── BaseCachedNodeStats.java │ │ ├── BaseCachedStepStats.java │ │ ├── CascadeStats.java │ │ ├── CascadingStats.java │ │ ├── CounterCache.java │ │ ├── FlowNodeStats.java │ │ ├── FlowSliceStats.java │ │ ├── FlowStats.java │ │ ├── FlowStepStats.java │ │ ├── ProvidesCounters.java │ │ ├── StatsListener.java │ │ └── process │ │ │ ├── ProcessFlowStats.java │ │ │ └── ProcessStepStats.java │ │ ├── tap │ │ ├── CompositeTap.java │ │ ├── CompositeTaps.java │ │ ├── DecoratorTap.java │ │ ├── MultiSinkTap.java │ │ ├── MultiSourceTap.java │ │ ├── SinkMode.java │ │ ├── SinkTap.java │ │ ├── SourceTap.java │ │ ├── Tap.java │ │ ├── TapException.java │ │ ├── TrapProps.java │ │ ├── partition │ │ │ ├── BasePartitionTap.java │ │ │ ├── DelimitedPartition.java │ │ │ ├── Partition.java │ │ │ ├── PartitionTapFilter.java │ │ │ ├── PartitionTapProps.java │ │ │ └── PartitionTupleEntryIterator.java │ │ └── type │ │ │ └── FileType.java │ │ ├── tuple │ │ ├── Comparison.java │ │ ├── Fields.java │ │ ├── FieldsResolverException.java │ │ ├── Hasher.java │ │ ├── StreamComparator.java │ │ ├── Tuple.java │ │ ├── TupleChainIterable.java │ │ ├── TupleChainIterator.java │ │ ├── TupleEntry.java │ │ ├── TupleEntryChainIterator.java │ │ ├── TupleEntryCollector.java │ │ ├── TupleEntryIterableChainIterator.java │ │ ├── TupleEntryIterator.java │ │ ├── TupleEntrySchemeCollector.java │ │ ├── TupleEntrySchemeIterator.java │ │ ├── TupleEntrySchemeIteratorProps.java │ │ ├── TupleException.java │ │ ├── Tuples.java │ │ ├── coerce │ │ │ ├── BigDecimalCoerce.java │ │ │ ├── BooleanCoerce.java │ │ │ ├── BooleanObjectCoerce.java │ │ │ ├── CharacterCoerce.java │ │ │ ├── CharacterObjectCoerce.java │ │ │ ├── Coercions.java │ │ │ ├── DoubleCoerce.java │ │ │ ├── DoubleObjectCoerce.java │ │ │ ├── FloatCoerce.java │ │ │ ├── FloatObjectCoerce.java │ │ │ ├── IntegerCoerce.java │ │ │ ├── IntegerObjectCoerce.java │ │ │ ├── LongCoerce.java │ │ │ ├── LongObjectCoerce.java │ │ │ ├── ObjectCoerce.java │ │ │ ├── ShortCoerce.java │ │ │ ├── ShortObjectCoerce.java │ │ │ └── StringCoerce.java │ │ ├── collect │ │ │ ├── Spillable.java │ │ │ ├── SpillableProps.java │ │ │ ├── SpillableTupleList.java │ │ │ ├── SpillableTupleMap.java │ │ │ ├── TupleCollectionFactory.java │ │ │ └── TupleMapFactory.java │ │ ├── io │ │ │ ├── IndexTuple.java │ │ │ ├── KeyIndexTuple.java │ │ │ ├── KeyTuple.java │ │ │ ├── TupleInputStream.java │ │ │ ├── TupleOutputStream.java │ │ │ ├── TuplePair.java │ │ │ ├── ValueIndexTuple.java │ │ │ └── ValueTuple.java │ │ ├── type │ │ │ ├── CoercibleType.java │ │ │ └── DateType.java │ │ └── util │ │ │ ├── CompositeTupleList.java │ │ │ ├── NarrowTupleList.java │ │ │ ├── ObjectArrayList.java │ │ │ ├── OverrideTupleList.java │ │ │ ├── Resettable.java │ │ │ ├── Resettable1.java │ │ │ ├── Resettable2.java │ │ │ ├── TupleBuilder.java │ │ │ ├── TupleHasher.java │ │ │ └── TupleViews.java │ │ └── util │ │ ├── CloseableIterator.java │ │ ├── DOTProcessGraphWriter.java │ │ ├── EnumMultiMap.java │ │ ├── ForeverValueIterator.java │ │ ├── LazyIterable.java │ │ ├── LogUtil.java │ │ ├── MultiMap.java │ │ ├── Murmur3.java │ │ ├── NullNotEquivalentComparator.java │ │ ├── NullSafeReverseComparator.java │ │ ├── Pair.java │ │ ├── ProcessLogger.java │ │ ├── SetMultiMap.java │ │ ├── ShutdownUtil.java │ │ ├── SingleCloseableInputIterator.java │ │ ├── SingleValueCloseableIterator.java │ │ ├── SingleValueIterator.java │ │ ├── SortedListMultiMap.java │ │ ├── TraceUtil.java │ │ ├── Traceable.java │ │ ├── Trie.java │ │ ├── Update.java │ │ ├── Util.java │ │ ├── Version.java │ │ ├── cache │ │ ├── BaseCacheFactory.java │ │ ├── CacheEvictionCallback.java │ │ ├── CascadingCache.java │ │ ├── DirectMappedCache.java │ │ ├── DirectMappedCacheFactory.java │ │ ├── LRUHashMapCache.java │ │ ├── LRUHashMapCacheFactory.java │ │ ├── OrderedHashMapCache.java │ │ └── OrderedHashMapCacheFactory.java │ │ └── jgrapht │ │ ├── ComponentAttributeProvider.java │ │ ├── DOTExporter.java │ │ ├── EdgeNameProvider.java │ │ ├── IntegerNameProvider.java │ │ ├── LICENSE.txt │ │ ├── StringEdgeNameProvider.java │ │ ├── StringNameProvider.java │ │ └── VertexNameProvider.java │ └── test │ ├── java │ └── cascading │ │ ├── CascadingTestCase.java │ │ ├── InnerJoinTestBuffer.java │ │ ├── TestAggregator.java │ │ ├── TestBuffer.java │ │ ├── TestConstants.java │ │ ├── TestFailAggregator.java │ │ ├── TestFunction.java │ │ ├── TestIdentityBuffer.java │ │ ├── TraceTest.java │ │ ├── UtilTest.java │ │ ├── assembly │ │ ├── CrossTab.java │ │ ├── EuclideanDistance.java │ │ ├── PearsonDistance.java │ │ └── SortElements.java │ │ ├── cascade │ │ ├── CascadeListenersTest.java │ │ └── LockingCascadeListener.java │ │ ├── flow │ │ ├── FailingFlowListener.java │ │ ├── FlowListenersTest.java │ │ ├── FlowStepListenersTest.java │ │ ├── LockingFlowListener.java │ │ ├── iso │ │ │ ├── FindSubGraphTest.java │ │ │ ├── GraphFinderTest.java │ │ │ ├── IsomorphismTest.java │ │ │ ├── NonFunction.java │ │ │ ├── NonTap.java │ │ │ ├── expression │ │ │ │ ├── TestBoundarySelJoinCoGroupExpressionGraph.java │ │ │ │ ├── TestCheckpointExpression.java │ │ │ │ ├── TestConsecutiveTapsExpressionGraph.java │ │ │ │ ├── TestGroupGroupExpression.java │ │ │ │ ├── TestHashJoinBlockingHashJoinExpression.java │ │ │ │ ├── TestHashJoinSameSourceExpression.java │ │ │ │ ├── TestMalformedJoinExpressionGraph.java │ │ │ │ ├── TestNoGroupTapExpressionGraph.java │ │ │ │ └── TestNoTapExpressionGraph.java │ │ │ └── graph │ │ │ │ ├── CoGroupAroundCoGroupGraph.java │ │ │ │ ├── HashJoinAroundHashJoinLeftMostGraph.java │ │ │ │ ├── HashJoinMergeIntoHashJoinStreamedStreamedMergeGraph.java │ │ │ │ ├── HashJoinSameSourceGraph.java │ │ │ │ ├── HashJoinsIntoMerge.java │ │ │ │ ├── JoinAroundJoinRightMostGraph.java │ │ │ │ ├── JoinAroundJoinRightMostGraphSwapped.java │ │ │ │ ├── LoneGroupAssertionGraph.java │ │ │ │ ├── MulitStepFlowGraph.java │ │ │ │ ├── SelfCoGroupGraph.java │ │ │ │ └── StandardElementGraph.java │ │ └── stream │ │ │ ├── CountingCollectStage.java │ │ │ ├── CountingItemStage.java │ │ │ ├── StreamTest.java │ │ │ ├── TestGate.java │ │ │ ├── TestSinkStage.java │ │ │ └── TestSourceStage.java │ │ ├── management │ │ └── annotation │ │ │ └── URISanitizerTest.java │ │ ├── operation │ │ ├── aggregator │ │ │ └── AggregatorsTest.java │ │ ├── assertion │ │ │ ├── GroupAssertionsTest.java │ │ │ └── ValueAssertionsTest.java │ │ ├── filter │ │ │ ├── FilterTest.java │ │ │ ├── LimitFilterTest.java │ │ │ └── SampleFilterTest.java │ │ └── regex │ │ │ └── RegexesTest.java │ │ ├── pipe │ │ └── PipeParamTest.java │ │ ├── property │ │ └── AppPropsTest.java │ │ ├── tuple │ │ ├── FieldsComparatorTest.java │ │ ├── FieldsTest.java │ │ ├── TupleEntrySchemeIteratorTest.java │ │ ├── TupleEntryTest.java │ │ ├── TupleFieldsTest.java │ │ ├── TupleListCollector.java │ │ ├── TupleTest.java │ │ └── TupleViewTest.java │ │ └── util │ │ ├── DirectMappedCacheTest.java │ │ └── TrieTest.java │ └── resources │ └── log4j.properties ├── cascading-expression ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── operation │ │ ├── assertion │ │ └── AssertExpression.java │ │ └── expression │ │ ├── ExpressionFilter.java │ │ ├── ExpressionFunction.java │ │ ├── ExpressionOperation.java │ │ ├── ScriptFilter.java │ │ ├── ScriptFunction.java │ │ ├── ScriptOperation.java │ │ └── ScriptTupleFunction.java │ └── test │ └── java │ └── cascading │ └── operation │ └── expression │ ├── ExpressionTest.java │ ├── FilterTest.java │ ├── ScriptTest.java │ ├── ScriptTupleTest.java │ └── ValueAssertionsTest.java ├── cascading-hadoop ├── build.gradle └── src │ ├── main │ ├── java │ │ └── cascading │ │ │ ├── flow │ │ │ └── hadoop │ │ │ │ └── HadoopFlowConnector.java │ │ │ ├── stats │ │ │ └── hadoop │ │ │ │ ├── HadoopNodeCounterCache.java │ │ │ │ ├── HadoopNodeStats.java │ │ │ │ ├── HadoopSliceStats.java │ │ │ │ ├── HadoopStepCounterCache.java │ │ │ │ └── HadoopStepStats.java │ │ │ └── tuple │ │ │ └── hadoop │ │ │ └── util │ │ │ └── TupleComparator.java │ ├── shared-io │ │ └── cascading │ │ │ ├── flow │ │ │ └── hadoop │ │ │ │ ├── MapRed.java │ │ │ │ └── util │ │ │ │ ├── HadoopUtil.java │ │ │ │ ├── JavaObjectSerializer.java │ │ │ │ └── ObjectSerializer.java │ │ │ ├── scheme │ │ │ └── hadoop │ │ │ │ ├── SequenceFile.java │ │ │ │ ├── TextDelimited.java │ │ │ │ ├── TextLine.java │ │ │ │ └── WritableSequenceFile.java │ │ │ ├── tap │ │ │ └── hadoop │ │ │ │ ├── BaseDistCacheTap.java │ │ │ │ ├── Dfs.java │ │ │ │ ├── GlobHfs.java │ │ │ │ ├── Hfs.java │ │ │ │ ├── HfsProps.java │ │ │ │ ├── Lfs.java │ │ │ │ ├── PartitionTap.java │ │ │ │ ├── io │ │ │ │ ├── CombineFileRecordReaderWrapper.java │ │ │ │ ├── CombineInputPartitionTupleEntryIterator.java │ │ │ │ ├── FSDigestInputStream.java │ │ │ │ ├── HadoopTupleEntrySchemeCollector.java │ │ │ │ ├── HadoopTupleEntrySchemeIterator.java │ │ │ │ ├── HttpFileSystem.java │ │ │ │ ├── MultiInputFormat.java │ │ │ │ ├── MultiInputSplit.java │ │ │ │ ├── MultiRecordReaderIterator.java │ │ │ │ ├── RecordReaderIterator.java │ │ │ │ ├── StreamedFileSystem.java │ │ │ │ └── TapOutputCollector.java │ │ │ │ └── util │ │ │ │ ├── Hadoop18TapUtil.java │ │ │ │ ├── MeasuredOutputCollector.java │ │ │ │ ├── MeasuredRecordReader.java │ │ │ │ └── TempHfs.java │ │ │ └── tuple │ │ │ └── hadoop │ │ │ ├── BigDecimalSerialization.java │ │ │ ├── BytesSerialization.java │ │ │ ├── SerializationToken.java │ │ │ ├── TupleSerialization.java │ │ │ ├── TupleSerializationProps.java │ │ │ ├── collect │ │ │ ├── HadoopSpillableTupleList.java │ │ │ ├── HadoopSpillableTupleMap.java │ │ │ ├── HadoopTupleCollectionFactory.java │ │ │ └── HadoopTupleMapFactory.java │ │ │ ├── io │ │ │ ├── BaseDeserializer.java │ │ │ ├── BaseSerializer.java │ │ │ ├── BufferedInputStream.java │ │ │ ├── HadoopTupleInputStream.java │ │ │ ├── HadoopTupleOutputStream.java │ │ │ ├── IndexTupleDeserializer.java │ │ │ ├── IndexTupleSerializer.java │ │ │ ├── KeyIndexTupleDeserializer.java │ │ │ ├── KeyIndexTupleSerializer.java │ │ │ ├── KeyTupleDeserializer.java │ │ │ ├── KeyTupleSerializer.java │ │ │ ├── TupleDeserializer.java │ │ │ ├── TuplePairDeserializer.java │ │ │ ├── TuplePairSerializer.java │ │ │ ├── TupleSerializer.java │ │ │ ├── ValueIndexTupleDeserializer.java │ │ │ ├── ValueIndexTupleSerializer.java │ │ │ ├── ValueTupleDeserializer.java │ │ │ └── ValueTupleSerializer.java │ │ │ └── util │ │ │ └── BytesComparator.java │ ├── shared-mr1 │ │ └── cascading │ │ │ ├── flow │ │ │ └── hadoop │ │ │ │ ├── BaseMapReduceFlow.java │ │ │ │ ├── FlowMapper.java │ │ │ │ ├── FlowReducer.java │ │ │ │ ├── HadoopFlow.java │ │ │ │ ├── HadoopFlowProcess.java │ │ │ │ ├── HadoopFlowStep.java │ │ │ │ ├── MapReduceFlow.java │ │ │ │ ├── MapReduceFlowStep.java │ │ │ │ ├── MultiMapReduceFlow.java │ │ │ │ ├── planner │ │ │ │ ├── HadoopFlowStepJob.java │ │ │ │ ├── HadoopPlanner.java │ │ │ │ ├── MapReduceHadoopRuleRegistry.java │ │ │ │ └── rule │ │ │ │ │ ├── expression │ │ │ │ │ └── AdjacentTempToTapExpression.java │ │ │ │ │ ├── scopeexpression │ │ │ │ │ └── EquivalentTapsScopeExpression.java │ │ │ │ │ └── transformer │ │ │ │ │ └── CombineAdjacentTapTransformer.java │ │ │ │ ├── stream │ │ │ │ ├── element │ │ │ │ │ ├── HadoopCoGroupGate.java │ │ │ │ │ ├── HadoopGroupByGate.java │ │ │ │ │ └── HadoopSinkStage.java │ │ │ │ └── graph │ │ │ │ │ ├── HadoopMapStreamGraph.java │ │ │ │ │ └── HadoopReduceStreamGraph.java │ │ │ │ └── util │ │ │ │ └── HadoopMRUtil.java │ │ │ ├── tap │ │ │ └── hadoop │ │ │ │ └── DistCacheTap.java │ │ │ └── tuple │ │ │ └── hadoop │ │ │ └── util │ │ │ ├── CoGroupingPartitioner.java │ │ │ ├── GroupingPartitioner.java │ │ │ └── GroupingSortingPartitioner.java │ └── shared │ │ └── cascading │ │ ├── flow │ │ └── hadoop │ │ │ ├── ConfigurationSetter.java │ │ │ ├── FailOnMissingSuccessFlowListener.java │ │ │ ├── HadoopCoGroupClosure.java │ │ │ ├── HadoopGroupByClosure.java │ │ │ ├── planner │ │ │ └── rule │ │ │ │ ├── assertion │ │ │ │ └── DualStreamedAccumulatedMergePipelineAssert.java │ │ │ │ ├── expression │ │ │ │ ├── AccumulatedTapOnHashJoinExpression.java │ │ │ │ ├── BalanceCheckpointWithTapExpression.java │ │ │ │ ├── BalanceGroupBlockingHashJoinExpression.java │ │ │ │ ├── BalanceGroupGroupExpression.java │ │ │ │ ├── BalanceGroupMergeGroupExpression.java │ │ │ │ ├── BalanceGroupNonBlockingHashJoinExpression.java │ │ │ │ ├── BalanceGroupSplitExpression.java │ │ │ │ ├── BalanceGroupSplitJoinExpression.java │ │ │ │ ├── BalanceGroupSplitMergeExpression.java │ │ │ │ ├── BalanceGroupSplitMergeGroupExpression.java │ │ │ │ ├── BalanceGroupSplitTriangleExpression.java │ │ │ │ ├── BalanceHashJoinBlockingHashJoinExpression.java │ │ │ │ ├── BalanceHashJoinSameSourceExpression.java │ │ │ │ ├── BalanceHashJoinToHashJoinExpression.java │ │ │ │ ├── BalanceNonSafePipeSplitExpression.java │ │ │ │ ├── BalanceNonSafeSplitExpression.java │ │ │ │ ├── BalanceSameSourceStreamedAccumulatedExpression.java │ │ │ │ ├── ConsecutiveTapsPartitionExpression.java │ │ │ │ ├── DualStreamedAccumulatedExpression.java │ │ │ │ ├── GroupTapPartitionExpression.java │ │ │ │ ├── StreamedAccumulatedTapsExpressionGraph.java │ │ │ │ ├── StreamedAccumulatedTapsHashJoinExpressionGraph.java │ │ │ │ ├── StreamedAccumulatedTapsHashJoinPipelinePartitionExpression.java │ │ │ │ ├── StreamedAccumulatedTapsPipelinePartitionExpression.java │ │ │ │ ├── StreamedOnlySourcesPipelinePartitionExpression.java │ │ │ │ ├── StreamedSelfJoinSourcesPipelinePartitionExpression.java │ │ │ │ └── TapGroupTapPartitionExpression.java │ │ │ │ ├── expressiongraph │ │ │ │ ├── MalformedJoinExpressionGraph.java │ │ │ │ ├── NoGroupTapExpressionGraph.java │ │ │ │ ├── StreamedOnlySourcesExpressionGraph.java │ │ │ │ └── StreamedSelfJoinSourcesExpressionGraph.java │ │ │ │ ├── partitioner │ │ │ │ ├── ConsecutiveTapsNodePartitioner.java │ │ │ │ ├── ConsecutiveTapsStepPartitioner.java │ │ │ │ ├── GroupTapNodePartitioner.java │ │ │ │ ├── MultiTapGroupNodePartitioner.java │ │ │ │ ├── StreamedAccumulatedTapsHashJoinPipelinePartitioner.java │ │ │ │ ├── StreamedAccumulatedTapsPipelinePartitioner.java │ │ │ │ ├── StreamedOnlySourcesPipelinePartitioner.java │ │ │ │ ├── StreamedSelfJoinSourcesPipelinePartitioner.java │ │ │ │ └── TapGroupTapStepPartitioner.java │ │ │ │ └── transformer │ │ │ │ ├── RemoveMalformedHashJoinPipelineTransformer.java │ │ │ │ ├── RemoveStreamedBranchTransformer.java │ │ │ │ ├── ReplaceAccumulateTapWithDistCacheTransformer.java │ │ │ │ ├── TapBalanceCheckpointTransformer.java │ │ │ │ ├── TapBalanceGroupBlockingHashJoinTransformer.java │ │ │ │ ├── TapBalanceGroupGroupTransformer.java │ │ │ │ ├── TapBalanceGroupMergeGroupTransformer.java │ │ │ │ ├── TapBalanceGroupNonBlockingHashJoinTransformer.java │ │ │ │ ├── TapBalanceGroupSplitJoinTransformer.java │ │ │ │ ├── TapBalanceGroupSplitMergeGroupTransformer.java │ │ │ │ ├── TapBalanceGroupSplitMergeTransformer.java │ │ │ │ ├── TapBalanceGroupSplitTransformer.java │ │ │ │ ├── TapBalanceGroupSplitTriangleTransformer.java │ │ │ │ ├── TapBalanceHashJoinBlockingHashJoinTransformer.java │ │ │ │ ├── TapBalanceHashJoinSameSourceTransformer.java │ │ │ │ ├── TapBalanceNonSafePipeSplitTransformer.java │ │ │ │ ├── TapBalanceNonSafeSplitTransformer.java │ │ │ │ └── TapBalanceSameSourceStreamedAccumulatedTransformer.java │ │ │ ├── stream │ │ │ ├── HadoopGroupGate.java │ │ │ └── HadoopMemoryJoinGate.java │ │ │ └── util │ │ │ ├── FalseCollection.java │ │ │ ├── LazyCollection.java │ │ │ ├── LazySpillableTupleCollection.java │ │ │ ├── ResettableCollection.java │ │ │ └── TimedIterator.java │ │ ├── stats │ │ └── hadoop │ │ │ └── HadoopCounterCache.java │ │ └── tuple │ │ └── hadoop │ │ └── util │ │ ├── BaseTupleComparator.java │ │ ├── CoGroupingComparator.java │ │ ├── DelegatingTupleElementComparator.java │ │ ├── DeserializerComparator.java │ │ ├── GroupingComparator.java │ │ ├── GroupingSortingComparator.java │ │ ├── HasherPartitioner.java │ │ ├── IndexTupleCoGroupingComparator.java │ │ ├── ReverseGroupingSortingComparator.java │ │ ├── ReverseTupleComparator.java │ │ ├── TupleElementComparator.java │ │ ├── TupleElementStreamComparator.java │ │ ├── TypedTupleElementComparator.java │ │ └── TypedTupleElementStreamComparator.java │ └── test │ ├── java │ └── cascading │ │ └── platform │ │ └── hadoop │ │ └── HadoopPlatform.java │ ├── resources │ ├── cascading │ │ └── platform │ │ │ └── platform.properties │ └── log4j.properties │ ├── shared-io │ └── cascading │ │ └── tap │ │ └── hadoop │ │ └── PartitionTapTest.java │ ├── shared-mr1 │ └── cascading │ │ ├── flow │ │ └── hadoop │ │ │ ├── BuildJobsHadoopPlatformTest.java │ │ │ ├── MapReduceFlowPlatformTest.java │ │ │ └── MultiMapReduceFlowPlatformTest.java │ │ ├── stats │ │ └── hadoop │ │ │ ├── CascadingStatsLocalHadoopErrorPlatformTest.java │ │ │ └── HadoopStatsPlatformTest.java │ │ ├── tap │ │ └── hadoop │ │ │ └── HadoopMR1TapPlatformTest.java │ │ └── tuple │ │ └── hadoop │ │ └── SpillableTupleHadoopTest.java │ └── shared │ └── cascading │ ├── flow │ └── hadoop │ │ ├── FlowPlatformTest.java │ │ └── UtilHadoopTest.java │ ├── platform │ └── hadoop │ │ ├── BaseHadoopPlatform.java │ │ ├── HadoopConfigDefScheme.java │ │ ├── HadoopFailScheme.java │ │ ├── TestLongComparator.java │ │ └── TestStringComparator.java │ ├── scheme │ └── hadoop │ │ └── WritableSequenceFilePlatformTest.java │ ├── tap │ └── hadoop │ │ ├── DistCacheTapPlatformTest.java │ │ └── HadoopTapPlatformTest.java │ └── tuple │ └── hadoop │ ├── HadoopSerializationPlatformTest.java │ ├── NoTokenTestBytesSerialization.java │ ├── NoTokenTestSerialization.java │ ├── SerializedPipesPlatformTest.java │ ├── TestSerialization.java │ ├── TestText.java │ ├── TestTextComparator.java │ ├── TestWritableComparable.java │ └── TupleTest.java ├── cascading-hadoop2-io ├── build.gradle └── src │ └── main │ └── shared-io ├── cascading-hadoop2-mr1 ├── build.gradle └── src │ ├── main │ ├── java │ │ └── cascading │ │ │ ├── flow │ │ │ └── hadoop2 │ │ │ │ ├── Hadoop2MR1FlowConnector.java │ │ │ │ └── Hadoop2MR1Planner.java │ │ │ ├── stats │ │ │ └── hadoop │ │ │ │ ├── HadoopNodeCounterCache.java │ │ │ │ ├── HadoopNodeStats.java │ │ │ │ ├── HadoopSliceStats.java │ │ │ │ ├── HadoopStepCounterCache.java │ │ │ │ └── HadoopStepStats.java │ │ │ └── tuple │ │ │ └── hadoop │ │ │ └── util │ │ │ └── TupleComparator.java │ ├── shared │ └── shared-mr1 │ └── test │ ├── java │ └── cascading │ │ └── platform │ │ └── hadoop2 │ │ └── Hadoop2MR1Platform.java │ ├── resources │ ├── cascading │ │ └── platform │ │ │ └── platform.properties │ └── log4j.properties │ ├── shared │ └── shared-mr1 ├── cascading-hadoop2-tez-stats ├── build.gradle └── src │ └── main │ └── java │ └── cascading │ └── stats │ └── tez │ ├── TezCounterCache.java │ ├── TezNodeStats.java │ ├── TezSliceStats.java │ ├── TezStepStats.java │ └── util │ ├── TaskStatus.java │ ├── TezStatsUtil.java │ ├── TezTimelineClient.java │ └── TimelineClient.java ├── cascading-hadoop2-tez ├── README.md ├── build.gradle └── src │ ├── main │ ├── java │ │ └── cascading │ │ │ ├── flow │ │ │ └── tez │ │ │ │ ├── FlowProcessor.java │ │ │ │ ├── Hadoop2TezFlow.java │ │ │ │ ├── Hadoop2TezFlowConnector.java │ │ │ │ ├── Hadoop2TezFlowProcess.java │ │ │ │ ├── Hadoop2TezFlowStep.java │ │ │ │ ├── TezCoGroupClosure.java │ │ │ │ ├── TezGroupByClosure.java │ │ │ │ ├── planner │ │ │ │ ├── Hadoop2TezFlowStepJob.java │ │ │ │ ├── Hadoop2TezPlanner.java │ │ │ │ ├── HashJoinHadoop2TezRuleRegistry.java │ │ │ │ ├── NoHashJoinHadoop2TezRuleRegistry.java │ │ │ │ └── rule │ │ │ │ │ ├── annotator │ │ │ │ │ └── AccumulatedPostNodeAnnotator.java │ │ │ │ │ ├── assertion │ │ │ │ │ ├── DualStreamedAccumulatedMergeNodeAssert.java │ │ │ │ │ └── NoHashJoinAssert.java │ │ │ │ │ ├── expression │ │ │ │ │ ├── BalanceCheckpointWithBoundaryExpression.java │ │ │ │ │ ├── BalanceGroupSplitHashJoinExpression.java │ │ │ │ │ ├── BalanceGroupSplitNotTapExpression.java │ │ │ │ │ ├── BalanceGroupSplitSpliceExpression.java │ │ │ │ │ ├── BalanceSplitSplitToStreamedHashJoinExpression.java │ │ │ │ │ └── BalanceSplitToStreamedHashJoinExpression.java │ │ │ │ │ ├── expressiongraph │ │ │ │ │ ├── AccumulatedSourceExpressionGraph.java │ │ │ │ │ ├── BalanceJoinSplitExpression.java │ │ │ │ │ ├── BottomUpConsecutiveBoundariesExpressionGraph.java │ │ │ │ │ ├── BottomUpConsecutiveBoundariesTriangleExpressionGraph.java │ │ │ │ │ ├── BottomUpNoSplitConsecutiveBoundariesExpressionGraph.java │ │ │ │ │ ├── BoundarySelJoinCoGroupExpressionGraph.java │ │ │ │ │ ├── ConsecutiveGroupOrMergeExpressionGraph.java │ │ │ │ │ ├── GroupMergeToTapBoundaryExpressionGraph.java │ │ │ │ │ ├── NoGroupMergeBoundaryTapExpressionGraph.java │ │ │ │ │ ├── NoSpliceTapExpressionGraph.java │ │ │ │ │ ├── StreamedAccumulatedBoundariesExpressionGraph.java │ │ │ │ │ ├── StreamedOnlySourcesExpressionGraph.java │ │ │ │ │ ├── StreamedSelfJoinSourcesExpressionGraph.java │ │ │ │ │ ├── TopDownConsecutiveBoundariesExpressionGraph.java │ │ │ │ │ ├── TopDownSplitBoundariesExpressionGraph.java │ │ │ │ │ └── TopDownSplitJoinBoundariesExpressionGraph.java │ │ │ │ │ ├── partitioner │ │ │ │ │ ├── BottomUpBoundariesNodePartitioner.java │ │ │ │ │ ├── BottomUpJoinedBoundariesNodePartitioner.java │ │ │ │ │ ├── BottomUpJoinedBoundariesTriangleNodePartitioner.java │ │ │ │ │ ├── ConsecutiveGroupOrMergesNodePartitioner.java │ │ │ │ │ ├── SplitJoinBoundariesNodeRePartitioner.java │ │ │ │ │ ├── StreamedAccumulatedBoundariesNodeRePartitioner.java │ │ │ │ │ ├── StreamedOnlySourcesNodeRePartitioner.java │ │ │ │ │ ├── TopDownBoundariesNodePartitioner.java │ │ │ │ │ └── TopDownSplitBoundariesNodePartitioner.java │ │ │ │ │ └── transformer │ │ │ │ │ ├── BoundaryBalanceCheckpointTransformer.java │ │ │ │ │ ├── BoundaryBalanceGroupBlockingHashJoinTransformer.java │ │ │ │ │ ├── BoundaryBalanceGroupSplitHashJoinTransformer.java │ │ │ │ │ ├── BoundaryBalanceGroupSplitSpliceTransformer.java │ │ │ │ │ ├── BoundaryBalanceGroupSplitTransformer.java │ │ │ │ │ ├── BoundaryBalanceHashJoinSameSourceTransformer.java │ │ │ │ │ ├── BoundaryBalanceHashJoinToHashJoinTransformer.java │ │ │ │ │ ├── BoundaryBalanceJoinSplitTransformer.java │ │ │ │ │ ├── BoundaryBalanceSplitSplitToStreamedHashJoinTransformer.java │ │ │ │ │ ├── BoundaryBalanceSplitToStreamedHashJoinTransformer.java │ │ │ │ │ ├── BoundaryElementFactory.java │ │ │ │ │ └── RemoveMalformedHashJoinNodeTransformer.java │ │ │ │ ├── stream │ │ │ │ ├── element │ │ │ │ │ ├── OldOutputCollector.java │ │ │ │ │ ├── TezBoundaryStage.java │ │ │ │ │ ├── TezCoGroupGate.java │ │ │ │ │ ├── TezGroupByGate.java │ │ │ │ │ ├── TezGroupGate.java │ │ │ │ │ ├── TezMergeGate.java │ │ │ │ │ ├── TezSinkStage.java │ │ │ │ │ └── TezSourceStage.java │ │ │ │ └── graph │ │ │ │ │ └── Hadoop2TezStreamGraph.java │ │ │ │ └── util │ │ │ │ ├── SecondarySortKeyValuesReader.java │ │ │ │ └── TezUtil.java │ │ │ ├── tap │ │ │ └── hadoop │ │ │ │ └── DistCacheTap.java │ │ │ └── tuple │ │ │ ├── hadoop │ │ │ └── util │ │ │ │ └── TupleComparator.java │ │ │ └── tez │ │ │ └── util │ │ │ ├── CoGroupingPartitioner.java │ │ │ ├── GroupingSortingPartitioner.java │ │ │ └── TuplePartitioner.java │ └── shared │ └── test │ ├── java │ └── cascading │ │ ├── platform │ │ └── tez │ │ │ └── Hadoop2TezPlatform.java │ │ └── stats │ │ └── tez │ │ └── TezStatsPlatformTest.java │ ├── resources │ ├── cascading │ │ └── platform │ │ │ └── platform.properties │ └── log4j.properties │ └── shared ├── cascading-local ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ ├── flow │ │ └── local │ │ │ ├── LocalFlow.java │ │ │ ├── LocalFlowConnector.java │ │ │ ├── LocalFlowProcess.java │ │ │ ├── LocalFlowStep.java │ │ │ ├── planner │ │ │ ├── LocalFlowStepJob.java │ │ │ ├── LocalPlanner.java │ │ │ ├── LocalRuleRegistry.java │ │ │ └── LocalStepRunner.java │ │ │ └── stream │ │ │ ├── duct │ │ │ └── ParallelFork.java │ │ │ ├── element │ │ │ ├── LocalGroupByGate.java │ │ │ └── SyncMergeStage.java │ │ │ └── graph │ │ │ └── LocalStepStreamGraph.java │ │ ├── scheme │ │ └── local │ │ │ ├── TextDelimited.java │ │ │ └── TextLine.java │ │ ├── stats │ │ └── local │ │ │ └── LocalStepStats.java │ │ └── tap │ │ └── local │ │ ├── FileTap.java │ │ ├── PartitionTap.java │ │ ├── StdErrTap.java │ │ ├── StdInTap.java │ │ ├── StdOutTap.java │ │ └── io │ │ └── TapFileOutputStream.java │ └── test │ ├── java │ └── cascading │ │ ├── platform │ │ └── local │ │ │ ├── LocalConfigDefScheme.java │ │ │ ├── LocalFailScheme.java │ │ │ ├── LocalPlatform.java │ │ │ ├── TestLongComparator.java │ │ │ └── TestStringComparator.java │ │ └── tap │ │ └── local │ │ └── LocalTapPlatformTest.java │ └── resources │ └── cascading │ └── platform │ └── platform.properties ├── cascading-platform ├── build.gradle └── src │ └── test │ ├── java │ ├── cascading │ │ ├── BasicPipesPlatformTest.java │ │ ├── BasicTrapPlatformTest.java │ │ ├── BufferPipesPlatformTest.java │ │ ├── CoGroupFieldedPipesPlatformTest.java │ │ ├── ComparePlatformsTest.java │ │ ├── DistanceUseCasePlatformTest.java │ │ ├── FieldedPipesPlatformTest.java │ │ ├── JoinFieldedPipesPlatformTest.java │ │ ├── MergePipesPlatformTest.java │ │ ├── PlatformTestCase.java │ │ ├── RegressionMiscPlatformTest.java │ │ ├── RegressionPipesPlatformTest.java │ │ ├── SortedValuesPlatformTest.java │ │ ├── TrapPlatformTest.java │ │ ├── TypedFieldedPipesPlatformTest.java │ │ ├── UnmodifiablePipesPlatformTest.java │ │ ├── cascade │ │ │ ├── CascadePlatformTest.java │ │ │ ├── CascadeStalePlatformTest.java │ │ │ ├── ParallelCascadePlatformTest.java │ │ │ └── RiffleCascadePlatformTest.java │ │ ├── detail │ │ │ ├── AssemblyFactory.java │ │ │ ├── EachAssemblyFactory.java │ │ │ ├── EachEachPipeAssemblyPlatformTest.java │ │ │ ├── EachPipeAssemblyPlatformTest.java │ │ │ ├── EveryAssemblyFactory.java │ │ │ ├── EveryEveryPipeAssemblyPlatformTest.java │ │ │ ├── EveryPipeAssemblyPlatformTest.java │ │ │ └── PipeAssemblyTestBase.java │ │ ├── flow │ │ │ ├── AssemblyPlannerPlatformTest.java │ │ │ ├── ClasspathPlatformTest.java │ │ │ ├── CountingFlowListener.java │ │ │ ├── FlowProcessPlatformTest.java │ │ │ ├── FlowStrategiesPlatformTest.java │ │ │ ├── ResolverExceptionsPlatformTest.java │ │ │ ├── SubAssemblyPlatformTest.java │ │ │ └── stream │ │ │ │ └── SparseTupleFieldsComparatorTest.java │ │ ├── function │ │ │ └── FunctionPlatformTest.java │ │ ├── operation │ │ │ ├── assertion │ │ │ │ ├── AppliedAssertionsPlatformTest.java │ │ │ │ └── BuildAssertionsPlatformTest.java │ │ │ └── debug │ │ │ │ └── BuildDebugPlatformTest.java │ │ ├── pipe │ │ │ ├── MergeGroupPlatformTest.java │ │ │ ├── assembly │ │ │ │ └── AssemblyHelpersPlatformTest.java │ │ │ └── checkpoint │ │ │ │ └── CheckpointPlatformTest.java │ │ ├── planner │ │ │ └── LogicalOptimizationsPlatformTest.java │ │ ├── platform │ │ │ ├── PlatformRunner.java │ │ │ ├── PlatformSuite.java │ │ │ └── TestPlatform.java │ │ ├── property │ │ │ └── ConfigDefPlatformTest.java │ │ ├── scheme │ │ │ └── TextDelimitedPlatformTest.java │ │ ├── stats │ │ │ └── CascadingStatsPlatformTest.java │ │ └── tap │ │ │ ├── TapCollectorPlatformTest.java │ │ │ └── TapPlatformTest.java │ └── data │ │ └── InputData.java │ └── resources │ ├── cascading │ └── detail │ │ ├── op.op.properties │ │ └── op.properties │ ├── data │ ├── apache-clean.10.txt │ ├── apache.10.txt │ ├── apache.200.txt │ ├── comments+lower.txt │ ├── critics.txt │ ├── delimited-extra-field.txt │ ├── delimited-header.txt │ ├── delimited-problematic.txt │ ├── delimited-spec-char.txt │ ├── delimited.txt │ ├── extra+lower+upper.txt │ ├── ips.20.txt │ ├── lhs+rhs-cross-nulls.txt │ ├── lhs+rhs-cross-rev.txt │ ├── lhs+rhs-cross-x2-var-len.txt │ ├── lhs+rhs-cross-x2.txt │ ├── lhs+rhs-cross.txt │ ├── lhs-sparse.txt │ ├── lhs.txt │ ├── lower+upper.txt │ ├── lower-offset.txt │ ├── lower.txt │ ├── nums.10.txt │ ├── nums.20.txt │ ├── rhs-sparse.txt │ ├── rhs.txt │ ├── test-classpath.jar │ ├── unexpectedEndOfFile.gz │ └── upper.txt │ └── log4j.properties ├── cascading-xml ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── operation │ │ └── xml │ │ ├── TagSoupParser.java │ │ ├── XPathFilter.java │ │ ├── XPathGenerator.java │ │ ├── XPathOperation.java │ │ └── XPathParser.java │ └── test │ └── java │ └── cascading │ └── operation │ └── xml │ └── XPathTest.java ├── etc ├── hadoop-shared-config.gradle ├── hadoop-shared-io-config.gradle ├── hadoop-shared-mr1-config.gradle ├── properties.gradle ├── s3Upload.gradle ├── synchronizer.properties ├── testing.gradle └── version.gradle ├── settings.gradle └── version.properties /.gitignore: -------------------------------------------------------------------------------- 1 | junitvm*.properties 2 | build.properties 3 | gradle.properties 4 | .DS_Store 5 | lib 6 | build 7 | dist 8 | out 9 | javadoc 10 | *.tmproj 11 | .idea 12 | *.iml 13 | *.ipr 14 | *.iws 15 | .gradle 16 | target 17 | .classpath 18 | .project 19 | .metadata 20 | .settings/ 21 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | License: 3 | 4 | Copyright (c) 2016 Chris K Wensel . All Rights Reserved. 5 | Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 6 | 7 | Project and contact information: http://www.cascading.org/ 8 | 9 | This file is part of the Cascading project. 10 | 11 | Licensed under the Apache License, Version 2.0 (the "License"); 12 | you may not use this file except in compliance with the License. 13 | You may obtain a copy of the License at 14 | 15 | http://www.apache.org/licenses/LICENSE-2.0 16 | 17 | Unless required by applicable law or agreed to in writing, software 18 | distributed under the License is distributed on an "AS IS" BASIS, 19 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | See the License for the specific language governing permissions and 21 | limitations under the License. 22 | 23 | Third-party Licenses: 24 | 25 | All third-party dependencies are listed in the gradle.build files. -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/cascade/planner/IdentifierGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.cascade.planner; 22 | 23 | import cascading.flow.Flow; 24 | import cascading.tap.Tap; 25 | 26 | /** 27 | * 28 | */ 29 | public class IdentifierGraph extends TopologyGraph 30 | { 31 | public IdentifierGraph( Flow... flows ) 32 | { 33 | super( flows ); 34 | } 35 | 36 | protected String getVertex( Flow flow, Tap tap ) 37 | { 38 | return tap.getFullIdentifier( flow.getConfig() ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/cascade/planner/TapGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.cascade.planner; 22 | 23 | import java.util.Collection; 24 | 25 | import cascading.flow.Flow; 26 | import cascading.tap.Tap; 27 | 28 | /** 29 | * 30 | */ 31 | public class TapGraph extends TopologyGraph 32 | { 33 | public TapGraph( Collection flows ) 34 | { 35 | super( flows.toArray( new Flow[ flows.size() ] ) ); 36 | } 37 | 38 | public TapGraph( Flow... flows ) 39 | { 40 | super( flows ); 41 | } 42 | 43 | protected Tap getVertex( Flow flow, Tap tap ) 44 | { 45 | return tap; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/FlowDescriptors.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | /** 24 | * Constants to be used as key in {@link Flow#getFlowDescriptor()}. 25 | *

26 | * See also {@link FlowStepDescriptors}. 27 | */ 28 | public interface FlowDescriptors 29 | { 30 | /** String that can be used as a record separator. */ 31 | String VALUE_SEPARATOR = "\u001E"; 32 | 33 | /** Denotes a collection of statements like SQL or similar. */ 34 | String STATEMENTS = "statements"; 35 | 36 | /** Denotes the type of statement in the current flow. e.g. SQL, Pig Latin etc. */ 37 | String STATEMENT_TYPES = "statement_types"; 38 | 39 | /** Briefly describes the current Flow * */ 40 | String DESCRIPTION = "description"; 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/FlowElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | import java.io.Serializable; 24 | 25 | /** 26 | * Interface FlowElement is a utility interface used internally to simplify DAG management. It is not intended 27 | * for users to interact with these methods directly. 28 | */ 29 | public interface FlowElement extends Serializable 30 | { 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/FlowSkipIfSinkExists.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | import java.io.IOException; 24 | 25 | /** 26 | * Class FlowSkipIfSinkExists is a {@link cascading.flow.FlowSkipStrategy} implementation that returns 27 | * {@code true} if the Flow sink exists, regardless if it is stale or not. 28 | */ 29 | public class FlowSkipIfSinkExists implements FlowSkipStrategy 30 | { 31 | public boolean skipFlow( Flow flow ) throws IOException 32 | { 33 | // if tap is in replace mode, will be treated as not existing 34 | long sinkModified = flow.getSinkModified(); 35 | 36 | if( sinkModified <= 0 ) // do not skip, sinks don't exist 37 | return false; 38 | 39 | return true; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/FlowSkipIfSinkNotStale.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | import java.io.IOException; 24 | 25 | /** 26 | * Class FlowSkipIfSinkNotStale is a {@link cascading.flow.FlowSkipStrategy} implementation that returns 27 | * {@code true} if the Flow sink exists and is not stale in relation to the Flow sources. 28 | *

29 | * This is the default Cascading strategy. 30 | * 31 | * @see cascading.flow.FlowSkipIfSinkExists 32 | */ 33 | public class FlowSkipIfSinkNotStale implements FlowSkipStrategy 34 | { 35 | public boolean skipFlow( Flow flow ) throws IOException 36 | { 37 | long sinkModified = flow.getSinkModified(); 38 | 39 | return sinkModified > 0 && !flow.areSourcesNewer( sinkModified ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/FlowSkipStrategy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | import java.io.IOException; 24 | 25 | /** 26 | * Interface FlowSkipStrategy is used to create new strategies that decide when a {@link Flow} should 27 | * be skipped when executed in a {@link cascading.cascade.Cascade}. The default strategy is 28 | * {@link FlowSkipIfSinkNotStale}. 29 | * 30 | * @see cascading.flow.FlowSkipIfSinkExists 31 | * @see FlowSkipIfSinkNotStale 32 | */ 33 | public interface FlowSkipStrategy 34 | { 35 | boolean skipFlow( Flow flow ) throws IOException; 36 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/SliceCounters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | public enum SliceCounters 24 | { 25 | Tuples_Read, Tuples_Written, Process_Begin_Time, Process_End_Time, Process_Duration, Read_Duration, Write_Duration 26 | } 27 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/StepCounters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | /** Enum StepCounters lists all counters */ 24 | public enum StepCounters 25 | { 26 | Tuples_Read, Tuples_Written, Tuples_Trapped 27 | } 28 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/DeclaresResults.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner; 22 | 23 | import cascading.tuple.Fields; 24 | 25 | /** 26 | * 27 | */ 28 | public interface DeclaresResults 29 | { 30 | public Fields getFieldDeclaration(); 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/graph/AnnotatedGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.graph; 22 | 23 | import cascading.flow.FlowElement; 24 | import cascading.util.EnumMultiMap; 25 | 26 | /** 27 | * 28 | */ 29 | public interface AnnotatedGraph 30 | { 31 | boolean hasAnnotations(); 32 | 33 | EnumMultiMap getAnnotations(); 34 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/graph/Extent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.graph; 22 | 23 | import cascading.flow.FlowElement; 24 | 25 | /** 26 | * Enum Extent provides simple markers for the head and tail of an {@link ElementGraph} {@link FlowElement} graph. 27 | */ 28 | public enum Extent implements FlowElement 29 | { 30 | head, 31 | tail; 32 | 33 | @Override 34 | public String toString() 35 | { 36 | return "[" + name() + "]"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/graph/IgnoresAnnotationsElementGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.graph; 22 | 23 | /** 24 | * 25 | */ 26 | public class IgnoresAnnotationsElementGraph extends DecoratedElementGraph 27 | { 28 | public IgnoresAnnotationsElementGraph( ElementGraph decorated ) 29 | { 30 | super( decorated ); 31 | } 32 | 33 | @Override 34 | public boolean equals( Object obj ) 35 | { 36 | return ElementGraphs.equalsIgnoreAnnotations( this, (ElementGraph) obj ); 37 | } 38 | 39 | @Override 40 | public int hashCode() 41 | { 42 | return ElementGraphs.hashCodeIgnoreAnnotations( this ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/expression/ElementCapture.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.expression; 22 | 23 | /** 24 | * 25 | */ 26 | public enum ElementCapture 27 | { 28 | Include, 29 | 30 | /** 31 | * Becomes the anchor at which a match will rotate during partitioning. 32 | */ 33 | Primary, 34 | 35 | /** 36 | * Will be re-captured during partitioning where the Primary acts as an anchor at which the matching rotates 37 | */ 38 | Secondary 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/expression/ElementExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.expression; 22 | 23 | import cascading.flow.FlowElement; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class ElementExpression implements Expression 29 | { 30 | private ElementCapture capture = ElementCapture.Include; 31 | 32 | protected ElementExpression() 33 | { 34 | } 35 | 36 | protected ElementExpression( ElementCapture capture ) 37 | { 38 | this.capture = capture; 39 | } 40 | 41 | public ElementCapture getCapture() 42 | { 43 | return capture; 44 | } 45 | 46 | @Override 47 | public String toString() 48 | { 49 | return getClass().getSimpleName(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/expression/Expression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.expression; 22 | 23 | import cascading.flow.planner.PlannerContext; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public interface Expression 30 | { 31 | boolean applies( PlannerContext plannerContext, ElementGraph elementGraph, Type type ); 32 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/expression/PlannerLevelPipeExpressionGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.expression; 22 | 23 | import cascading.operation.PlannerLevel; 24 | 25 | /** 26 | * 27 | */ 28 | public class PlannerLevelPipeExpressionGraph extends ExpressionGraph 29 | { 30 | public PlannerLevelPipeExpressionGraph( Class plannerLevelClass ) 31 | { 32 | super( new PlannerLevelElementExpression( ElementCapture.Primary, plannerLevelClass ) ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/subgraph/GraphPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.subgraph; 22 | 23 | import java.util.Collection; 24 | 25 | import cascading.flow.FlowElement; 26 | import cascading.flow.planner.PlannerContext; 27 | import cascading.flow.planner.graph.ElementGraph; 28 | 29 | /** 30 | * 31 | */ 32 | public abstract class GraphPartitioner 33 | { 34 | public Partitions partition( PlannerContext plannerContext, ElementGraph elementGraph ) 35 | { 36 | return partition( plannerContext, elementGraph, null ); 37 | } 38 | 39 | public abstract Partitions partition( PlannerContext plannerContext, ElementGraph elementGraph, Collection excludes ); 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/subgraph/SubGraphIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.subgraph; 22 | 23 | import java.util.Iterator; 24 | 25 | import cascading.flow.planner.graph.ElementGraph; 26 | import cascading.flow.planner.iso.ElementAnnotation; 27 | import cascading.util.EnumMultiMap; 28 | 29 | /** 30 | * 31 | */ 32 | public interface SubGraphIterator extends Iterator 33 | { 34 | ElementGraph getElementGraph(); 35 | 36 | EnumMultiMap getAnnotationMap( ElementAnnotation[] annotations ); 37 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/transformer/ElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.transformer; 22 | 23 | import cascading.flow.FlowElement; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public interface ElementFactory 30 | { 31 | FlowElement create( ElementGraph graph, FlowElement flowElement ); 32 | } 33 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/transformer/GraphTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.transformer; 22 | 23 | import cascading.flow.planner.PlannerContext; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public abstract class GraphTransformer 30 | { 31 | public Transformed transform( In rootGraph ) 32 | { 33 | return transform( new PlannerContext(), rootGraph ); 34 | } 35 | 36 | public abstract Transformed transform( PlannerContext plannerContext, In rootGraph ); 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/process/FlowNodeFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.process; 22 | 23 | import java.util.List; 24 | 25 | import cascading.flow.FlowNode; 26 | import cascading.flow.planner.graph.ElementGraph; 27 | import cascading.flow.planner.graph.FlowElementGraph; 28 | 29 | /** 30 | * 31 | */ 32 | public interface FlowNodeFactory 33 | { 34 | FlowNode createFlowNode( FlowElementGraph flowElementGraph, ElementGraph nodeSubGraph, List pipelineGraphs ); 35 | 36 | String makeFlowNodeName( FlowNode flowNode, int size, int ordinal ); 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/process/FlowStepFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.process; 22 | 23 | import cascading.flow.FlowStep; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public interface FlowStepFactory 30 | { 31 | FlowStep createFlowStep( ElementGraph stepElementGraph, FlowNodeGraph flowNodeGraph ); 32 | 33 | String makeFlowStepName( FlowStep flowStep, int numSteps, int stepNum ); 34 | 35 | FlowNodeFactory getFlowNodeFactory(); 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/process/ProcessGraphs.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.process; 22 | 23 | import java.util.List; 24 | 25 | import org.jgrapht.Graphs; 26 | 27 | /** 28 | * 29 | */ 30 | public class ProcessGraphs 31 | { 32 | public static List predecessorListOf( ProcessGraph processGraph, ProcessModel processModel ) 33 | { 34 | return Graphs.predecessorListOf( ( (BaseProcessGraph) processGraph ).graph, processModel ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/ExecAction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule; 22 | 23 | /** 24 | * 25 | */ 26 | public enum ExecAction 27 | { 28 | Resolve, Rule 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/Rule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule; 22 | 23 | /** 24 | * Rule instances are the unit of work applied by a {@link cascading.flow.planner.rule.RuleExec} instance and managed 25 | * by a {@link cascading.flow.planner.rule.RuleRegistry}. 26 | */ 27 | public interface Rule 28 | { 29 | PlanPhase getRulePhase(); 30 | 31 | String getRuleName(); 32 | } 33 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/RuleMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule; 22 | 23 | /** 24 | * 25 | */ 26 | public enum RuleMode 27 | { 28 | Mutate, 29 | Partition 30 | } 31 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/assertion/MissingGroupAssert.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.assertion; 22 | 23 | import cascading.flow.planner.rule.RuleAssert; 24 | import cascading.flow.planner.rule.expression.MissingGroupExpression; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreBalanceAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class MissingGroupAssert extends RuleAssert 32 | { 33 | public MissingGroupAssert() 34 | { 35 | super( 36 | PreBalanceAssembly, 37 | new MissingGroupExpression(), 38 | "Every may only be preceded by another Every or a Group pipe, found: {Secondary}" 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/assertion/SplitBeforeEveryAssert.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.assertion; 22 | 23 | import cascading.flow.planner.rule.RuleAssert; 24 | import cascading.flow.planner.rule.expression.SplitBeforeEveryExpression; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreBalanceAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class SplitBeforeEveryAssert extends RuleAssert 32 | { 33 | public SplitBeforeEveryAssert() 34 | { 35 | super( 36 | PreBalanceAssembly, 37 | new SplitBeforeEveryExpression(), 38 | "Every instances may not split after a GroupBy or CoGroup pipe, found: {Primary} before: {Secondary}" 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/LogicalMergeAnnotatorExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Chris K Wensel . All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.LogicalMergeExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoGroupJoinMergeBoundaryTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class LogicalMergeAnnotatorExpression extends RuleExpression 31 | { 32 | public LogicalMergeAnnotatorExpression() 33 | { 34 | super( 35 | new NoGroupJoinMergeBoundaryTapExpressionGraph(), 36 | new LogicalMergeExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/NoOpPipeExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoOpPipeExpressionGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public class NoOpPipeExpression extends RuleExpression 30 | { 31 | public NoOpPipeExpression() 32 | { 33 | super( new NoOpPipeExpressionGraph() ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/NonBlockedBlockedJoinAnnotatorExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoCoGroupJoinTapExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NonBlockedBlockedJoinExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class NonBlockedBlockedJoinAnnotatorExpression extends RuleExpression 31 | { 32 | public NonBlockedBlockedJoinAnnotatorExpression() 33 | { 34 | super( 35 | new NoCoGroupJoinTapExpressionGraph(), 36 | new NonBlockedBlockedJoinExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/NonBlockedBlockedJoinJoinAnnotatorExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoGroupJoinTapExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NonBlockedBlockedJoinJoinExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class NonBlockedBlockedJoinJoinAnnotatorExpression extends RuleExpression 31 | { 32 | public NonBlockedBlockedJoinJoinAnnotatorExpression() 33 | { 34 | super( 35 | new NoGroupJoinTapExpressionGraph(), 36 | new NonBlockedBlockedJoinJoinExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/PlannerLevelExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.iso.expression.PlannerLevelPipeExpressionGraph; 24 | import cascading.flow.planner.rule.RuleExpression; 25 | import cascading.operation.PlannerLevel; 26 | 27 | /** 28 | * 29 | */ 30 | public class PlannerLevelExpression extends RuleExpression 31 | { 32 | public PlannerLevelExpression( Class plannerLevelClass ) 33 | { 34 | super( new PlannerLevelPipeExpressionGraph( plannerLevelClass ) ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expressiongraph/OnlyPipeExpressionGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expressiongraph; 22 | 23 | import cascading.flow.planner.iso.expression.ElementCapture; 24 | import cascading.flow.planner.iso.expression.ExpressionGraph; 25 | import cascading.flow.planner.iso.expression.FlowElementExpression; 26 | import cascading.pipe.Pipe; 27 | 28 | /** 29 | * 30 | */ 31 | public class OnlyPipeExpressionGraph extends ExpressionGraph 32 | { 33 | public OnlyPipeExpressionGraph() 34 | { 35 | super( new FlowElementExpression( ElementCapture.Primary, true, Pipe.class ) ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/partitioner/WholeGraphNodePartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.partitioner; 22 | 23 | import static cascading.flow.planner.rule.PlanPhase.PartitionNodes; 24 | 25 | /** 26 | * 27 | */ 28 | public class WholeGraphNodePartitioner extends WholeGraphRulePartitioner 29 | { 30 | public WholeGraphNodePartitioner() 31 | { 32 | super( 33 | PartitionNodes 34 | ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/partitioner/WholeGraphStepPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.partitioner; 22 | 23 | import static cascading.flow.planner.rule.PlanPhase.PartitionSteps; 24 | 25 | /** 26 | * 27 | */ 28 | public class WholeGraphStepPartitioner extends WholeGraphRulePartitioner 29 | { 30 | public WholeGraphStepPartitioner() 31 | { 32 | super( 33 | PartitionSteps 34 | ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/ApplyAssertionLevelTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.rule.expression.PlannerLevelExpression; 24 | import cascading.operation.AssertionLevel; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreResolveAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class ApplyAssertionLevelTransformer extends RuleContractedTransformer 32 | { 33 | public ApplyAssertionLevelTransformer() 34 | { 35 | super( 36 | PreResolveAssembly, 37 | new PlannerLevelExpression( AssertionLevel.class ) 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/ApplyDebugLevelTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.rule.expression.PlannerLevelExpression; 24 | import cascading.operation.DebugLevel; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreResolveAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class ApplyDebugLevelTransformer extends RuleContractedTransformer 32 | { 33 | public ApplyDebugLevelTransformer() 34 | { 35 | super( 36 | PreResolveAssembly, 37 | new PlannerLevelExpression( DebugLevel.class ) 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/BoundaryElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class BoundaryElementFactory implements ElementFactory 29 | { 30 | public static final String BOUNDARY_PIPE = "cascading.registry.boundary_pipe"; 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/IntermediatePipeElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Chris K Wensel . All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class IntermediatePipeElementFactory implements ElementFactory 29 | { 30 | public static final String IDENTITY = "cascading.registry.pipe.identity"; 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/IntermediateTapElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class IntermediateTapElementFactory implements ElementFactory 29 | { 30 | public static final String TEMP_TAP = "cascading.registry.tap.intermediate"; 31 | public static final String ACCUMULATED_TAP = "cascading.registry.tap.accumulated"; 32 | } 33 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/RemoveNoOpPipeTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.rule.expression.NoOpPipeExpression; 24 | 25 | import static cascading.flow.planner.rule.PlanPhase.PreResolveAssembly; 26 | 27 | /** 28 | * 29 | */ 30 | public class RemoveNoOpPipeTransformer extends RuleContractedTransformer 31 | { 32 | public RemoveNoOpPipeTransformer() 33 | { 34 | super( 35 | PreResolveAssembly, 36 | new NoOpPipeExpression() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/util/LogLevel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Chris K Wensel . All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.util; 22 | 23 | /** 24 | * 25 | */ 26 | public enum LogLevel 27 | { 28 | TRACE, DEBUG, INFO 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/TrapException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream; 22 | 23 | import cascading.flow.stream.duct.DuctException; 24 | 25 | /** 26 | * TrapException is a pass through exception allowing trap io failures to propagate past upstream traps. 27 | */ 28 | public class TrapException extends DuctException 29 | { 30 | public TrapException( String message, Throwable throwable ) 31 | { 32 | super( message, throwable ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/annotations/BlockingMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.annotations; 22 | 23 | /** 24 | */ 25 | public enum BlockingMode 26 | { 27 | NonBlocked, 28 | Blocked 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/annotations/RoleMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Chris K Wensel . All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.annotations; 22 | 23 | /** 24 | * 25 | */ 26 | public enum RoleMode 27 | { 28 | Logical, 29 | Physical 30 | } 31 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/annotations/StreamMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.annotations; 22 | 23 | /** 24 | */ 25 | public enum StreamMode 26 | { 27 | Streamed, 28 | Accumulated 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/CloseWindow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface CloseWindow 27 | { 28 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Collapsing.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** Collapsing marks a Duct as collapsing start/complete events from multiple incoming paths */ 24 | public interface Collapsing 25 | { 26 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/DuctException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public class DuctException extends RuntimeException 27 | { 28 | public DuctException( Throwable throwable ) 29 | { 30 | super( throwable ); 31 | } 32 | 33 | public DuctException( String message, Throwable throwable ) 34 | { 35 | super( message, throwable ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Gate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * Denotes there will be multiple input paths into this duct 25 | */ 26 | public abstract class Gate extends Duct 27 | { 28 | public Gate() 29 | { 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Grouping.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | import java.util.Iterator; 24 | 25 | import cascading.pipe.joiner.JoinerClosure; 26 | 27 | /** 28 | * 29 | */ 30 | public class Grouping 31 | { 32 | public JoinerClosure joinerClosure; 33 | public Group key; 34 | public ItemIterator joinIterator; 35 | } 36 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/OpenWindow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface OpenWindow 27 | { 28 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Reducing.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Reducing 27 | { 28 | void startGroup( Duct previous, Group group ); 29 | 30 | void completeGroup( Duct previous, Result result ); 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Stage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Chris K Wensel . All Rights Reserved. 3 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 4 | * 5 | * Project and contact information: http://www.cascading.org/ 6 | * 7 | * This file is part of the Cascading project. 8 | * 9 | * Licensed under the Apache License, Version 2.0 (the "License"); 10 | * you may not use this file except in compliance with the License. 11 | * You may obtain a copy of the License at 12 | * 13 | * http://www.apache.org/licenses/LICENSE-2.0 14 | * 15 | * Unless required by applicable law or agreed to in writing, software 16 | * distributed under the License is distributed on an "AS IS" BASIS, 17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | * See the License for the specific language governing permissions and 19 | * limitations under the License. 20 | */ 21 | 22 | package cascading.flow.stream.duct; 23 | 24 | /** 25 | * 26 | */ 27 | public class Stage extends Duct 28 | { 29 | public void receive( Duct previous, int ordinal, Incoming incoming ) 30 | { 31 | next.receive( this, ordinal, (Outgoing) incoming ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Window.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Window 27 | { 28 | } 29 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/element/ElementDuct.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.element; 22 | 23 | import java.util.List; 24 | import java.util.Set; 25 | 26 | import cascading.flow.FlowElement; 27 | import cascading.flow.planner.Scope; 28 | 29 | /** 30 | * 31 | */ 32 | public interface ElementDuct 33 | { 34 | Set getBranchNames(); 35 | 36 | void setBranchNames( Set branchNames ); 37 | 38 | FlowElement getFlowElement(); 39 | 40 | void setTrapHandler( TrapHandler trapHandler ); 41 | 42 | boolean hasTrapHandler(); 43 | 44 | List getIncomingScopes(); 45 | 46 | List getOutgoingScopes(); 47 | } 48 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/element/EveryStage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.element; 22 | 23 | import cascading.flow.FlowProcess; 24 | import cascading.pipe.Every; 25 | import cascading.pipe.Operator; 26 | 27 | /** 28 | * 29 | */ 30 | public abstract class EveryStage extends OperatorStage 31 | { 32 | final Every every; 33 | 34 | public EveryStage( FlowProcess flowProcess, Every every ) 35 | { 36 | super( flowProcess, every ); 37 | this.every = every; 38 | } 39 | 40 | @Override 41 | public Operator getOperator() 42 | { 43 | return every; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/element/InputSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.element; 22 | 23 | /** 24 | * 25 | */ 26 | public interface InputSource 27 | { 28 | void run( Object input ) throws Throwable; 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/graph/IORole.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.graph; 22 | 23 | /** 24 | * Enum IORole specifies how a FlowElement will be used during streaming. 25 | */ 26 | public enum IORole 27 | { 28 | sink, source, both, pass 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/management/DocumentService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.management; 22 | 23 | import java.util.List; 24 | import java.util.Map; 25 | 26 | import cascading.provider.CascadingService; 27 | 28 | /** Interface DocumentService provides coarse grained hooks for managing various statistics. */ 29 | public interface DocumentService extends CascadingService 30 | { 31 | String DOCUMENT_SERVICE_CLASS_PROPERTY = "cascading3.management.document.service.classname"; 32 | 33 | void put( String key, Object object ); 34 | 35 | void put( String type, String key, Object object ); 36 | 37 | Map get( String type, String key ); 38 | 39 | boolean supportsFind(); 40 | 41 | List> find( String type, String[] query ); 42 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/management/annotation/Order.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.management.annotation; 22 | 23 | /** 24 | * Order describes the order in which Property annotations shall be displayed. 25 | */ 26 | public enum Order 27 | { 28 | /** Sort in alphabetical order. */ 29 | ALPHABETICAL, 30 | 31 | /** Sort as given in the class definition. Note that this might be JVM specific. */ 32 | DECLARED, 33 | 34 | /** Sort as given in the @PropertyOrder annotation on the class. */ 35 | GIVEN 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/management/annotation/PropertyDescription.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.management.annotation; 22 | 23 | import java.lang.annotation.ElementType; 24 | import java.lang.annotation.Retention; 25 | import java.lang.annotation.RetentionPolicy; 26 | import java.lang.annotation.Target; 27 | 28 | /** 29 | * PropertyDescription is an annotation that can be used to describe the @Property annotation present on the 30 | * same {@link java.lang.reflect.AnnotatedElement}. 31 | */ 32 | @Retention(RetentionPolicy.RUNTIME) 33 | @Target({ElementType.METHOD, ElementType.FIELD}) 34 | public @interface PropertyDescription 35 | { 36 | String value(); 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/operation/Assertion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation; 22 | 23 | /** Interface Assertion is the base interface for all stream assertions. Implementers must also extend {@link BaseOperation}. */ 24 | public interface Assertion extends PlannedOperation 25 | { 26 | } 27 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/operation/OperationCall.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation; 22 | 23 | import cascading.tuple.Fields; 24 | 25 | public interface OperationCall 26 | { 27 | /** 28 | * Returns the user set context object, C. 29 | * 30 | * @return user defined object 31 | */ 32 | Context getContext(); 33 | 34 | /** 35 | * Sets the user defined 'context' object. 36 | * 37 | * @param context user defined object 38 | */ 39 | void setContext( Context context ); 40 | 41 | /** 42 | * Returns the {@link Fields} of the expected arguments {@link cascading.tuple.TupleEntry}. 43 | * 44 | * @return the argumentFields (type Fields) of this OperationCall object. 45 | */ 46 | Fields getArgumentFields(); 47 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/operation/PlannedOperation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation; 22 | 23 | /** 24 | * Interface PlannedOperation is implemented by all {@link Operation} implementations 25 | * that use a {@link PlannerLevel} value to inform the {@link cascading.flow.planner.FlowPlanner} how to treat the operation 26 | * during job planning. 27 | */ 28 | public interface PlannedOperation extends Operation 29 | { 30 | boolean supportsPlannerLevel( PlannerLevel plannerLevel ); 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/operation/ValueAssertion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Class ValueAssertion is a kind of {@link Assertion} used with the {@link cascading.pipe.Each} pipe Operator. 27 | *

28 | * Implementers must also extend {@link BaseOperation}. 29 | */ 30 | public interface ValueAssertion extends Assertion 31 | { 32 | /** 33 | * Method doAssert performs the assertion. 34 | * 35 | * @param flowProcess of type FlowProcess 36 | * @param assertionCall of type ValueAssertionCall 37 | */ 38 | void doAssert( FlowProcess flowProcess, ValueAssertionCall assertionCall ); 39 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/pipe/Group.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.pipe; 22 | 23 | import java.util.Map; 24 | 25 | import cascading.flow.FlowElement; 26 | import cascading.tuple.Fields; 27 | 28 | /** 29 | * 30 | */ 31 | public interface Group extends FlowElement 32 | { 33 | String getName(); 34 | 35 | boolean isGroupBy(); 36 | 37 | boolean isCoGroup(); 38 | 39 | boolean isSortReversed(); 40 | 41 | boolean isSorted(); 42 | 43 | Map getKeySelectors(); 44 | 45 | Map getSortingSelectors(); 46 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/pipe/joiner/BaseJoiner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.pipe.joiner; 22 | 23 | import cascading.flow.planner.DeclaresResults; 24 | import cascading.tuple.Fields; 25 | 26 | /** 27 | * 28 | */ 29 | public abstract class BaseJoiner implements Joiner, DeclaresResults 30 | { 31 | Fields fieldDeclaration; 32 | 33 | public BaseJoiner() 34 | { 35 | } 36 | 37 | public BaseJoiner( Fields fieldDeclaration ) 38 | { 39 | this.fieldDeclaration = fieldDeclaration; 40 | } 41 | 42 | public Fields getFieldDeclaration() 43 | { 44 | return fieldDeclaration; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/scheme/util/FieldTypeResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.scheme.util; 22 | 23 | import java.io.Serializable; 24 | import java.lang.reflect.Type; 25 | 26 | /** 27 | * 28 | */ 29 | public interface FieldTypeResolver extends Serializable 30 | { 31 | Type inferTypeFrom( int ordinal, String fieldName ); 32 | 33 | String cleanField( int ordinal, String fieldName, Type type ); 34 | 35 | String prepareField( int i, String fieldName, Type type ); 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/stats/StatsListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.stats; 22 | 23 | /** 24 | * For internal use to track status transitions 25 | */ 26 | public interface StatsListener 27 | { 28 | /** 29 | * @param current 30 | * @param fromStatus the originating status, may be null 31 | * @param toStatus 32 | */ 33 | void notify( CascadingStats current, CascadingStats.Status fromStatus, CascadingStats.Status toStatus ); 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tap/CompositeTap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tap; 22 | 23 | import java.util.Iterator; 24 | 25 | /** 26 | * Interface CompositeTap marks {@link Tap} classes as having child Tap instances. 27 | *

28 | * This information is required by the planner in order to properly configure the underlying platform. 29 | */ 30 | public interface CompositeTap 31 | { 32 | Iterator getChildTaps(); 33 | 34 | long getNumChildTaps(); 35 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tap/SinkMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tap; 22 | 23 | /** 24 | * Enum SinkMode identifies supported modes a Tap may utilize when used as a sink. 25 | *

26 | * Mode KEEP is the default. Typically a failure will result if the resource exists and there is an attempt to 27 | * write to it. 28 | *

29 | * Mode REPLACE will delete/remove the resource before any attempts to write. 30 | *

31 | * Mode UPDATE will attempt to re-use to the resource, if supported, and update data in place. 32 | */ 33 | public enum SinkMode 34 | { 35 | KEEP, 36 | REPLACE, 37 | UPDATE 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/CharacterCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class CharacterCoerce extends Coercions.Coerce 30 | { 31 | public CharacterCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return char.class; 40 | } 41 | 42 | @Override 43 | public Character coerce( Object value ) 44 | { 45 | if( value == null ) 46 | return Character.MIN_VALUE; 47 | 48 | return value.toString().charAt( 0 ); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/CharacterObjectCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class CharacterObjectCoerce extends Coercions.Coerce 30 | { 31 | public CharacterObjectCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return Character.class; 40 | } 41 | 42 | @Override 43 | public Character coerce( Object value ) 44 | { 45 | if( value == null ) 46 | return null; 47 | 48 | return value.toString().charAt( 0 ); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/ObjectCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class ObjectCoerce extends Coercions.Coerce 30 | { 31 | public ObjectCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return Object.class; 40 | } 41 | 42 | @Override 43 | public Object coerce( Object value ) 44 | { 45 | return value; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/StringCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class StringCoerce extends Coercions.Coerce 30 | { 31 | public StringCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return String.class; 40 | } 41 | 42 | @Override 43 | public String coerce( Object value ) 44 | { 45 | if( value == null ) 46 | return null; 47 | 48 | return value.toString(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/io/KeyIndexTuple.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.io; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | /** 26 | * 27 | */ 28 | public class KeyIndexTuple extends IndexTuple 29 | { 30 | public KeyIndexTuple() 31 | { 32 | } 33 | 34 | public KeyIndexTuple( int index, Tuple tuple ) 35 | { 36 | super( index, tuple ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/io/ValueIndexTuple.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.io; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | /** 26 | * 27 | */ 28 | public class ValueIndexTuple extends IndexTuple 29 | { 30 | public ValueIndexTuple() 31 | { 32 | } 33 | 34 | public ValueIndexTuple( int index, Tuple tuple ) 35 | { 36 | super( index, tuple ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/Resettable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Resettable 27 | { 28 | void reset( V... values ); 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/Resettable1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Resettable1 27 | { 28 | void reset( V value ); 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/Resettable2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Resettable2 27 | { 28 | void reset( V1 lhs, V2 rhs ); 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/TupleBuilder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class TupleBuilder 29 | { 30 | public abstract Tuple makeResult( Tuple input, Tuple output ); 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/CloseableIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.io.Closeable; 24 | import java.util.Iterator; 25 | 26 | /** Interface CloseableIterator is a helper interface granting an Iterator a close method. */ 27 | public interface CloseableIterator extends Iterator, Closeable 28 | { 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/EnumMultiMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.util.IdentityHashMap; 24 | import java.util.Map; 25 | import java.util.Set; 26 | 27 | /** 28 | * 29 | */ 30 | public class EnumMultiMap extends SetMultiMap 31 | { 32 | public EnumMultiMap() 33 | { 34 | } 35 | 36 | public EnumMultiMap( EnumMultiMap map ) 37 | { 38 | addAll( map ); 39 | } 40 | 41 | @Override 42 | protected Map> createMap() 43 | { 44 | return new IdentityHashMap<>(); 45 | } 46 | 47 | @Override 48 | protected Set createCollection() 49 | { 50 | return Util.createIdentitySet(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/ForeverValueIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | /** The ForeverValueIterator class will iterate over a single value forever. */ 24 | public class ForeverValueIterator extends SingleValueIterator 25 | { 26 | public ForeverValueIterator( Value value ) 27 | { 28 | super( value ); 29 | } 30 | 31 | @Override 32 | public Value next() 33 | { 34 | return value; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/SetMultiMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.util.Collections; 24 | import java.util.HashMap; 25 | import java.util.LinkedHashSet; 26 | import java.util.Map; 27 | import java.util.Set; 28 | 29 | /** 30 | * 31 | */ 32 | public class SetMultiMap extends MultiMap, K, V> 33 | { 34 | @Override 35 | protected Map> createMap() 36 | { 37 | return new HashMap<>(); 38 | } 39 | 40 | protected Set createCollection() 41 | { 42 | return new LinkedHashSet<>(); 43 | } 44 | 45 | protected Set emptyCollection() 46 | { 47 | return Collections.emptySet(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/SingleCloseableInputIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.io.Closeable; 24 | import java.io.IOException; 25 | 26 | /** 27 | * 28 | */ 29 | public class SingleCloseableInputIterator extends SingleValueCloseableIterator 30 | { 31 | public SingleCloseableInputIterator( Closeable input ) 32 | { 33 | super( input ); 34 | } 35 | 36 | @Override 37 | public void close() throws IOException 38 | { 39 | getCloseableInput().close(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/Traceable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | /** 24 | * Indicates that a class has trace fields usable from TraceUtil 25 | */ 26 | public interface Traceable 27 | { 28 | /** 29 | * Method getTrace returns a String that pinpoints the caller that created this instance. 30 | * 31 | * @return String 32 | */ 33 | String getTrace(); 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/CascadingCache.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import java.util.Map; 24 | 25 | /** 26 | * Interface that defines a Cache. 27 | */ 28 | public interface CascadingCache extends Map 29 | { 30 | /** Method to initialize the Cache. Any setup should be done in here. */ 31 | void initialize(); 32 | 33 | /** Sets the capacity of the Cache. */ 34 | void setCapacity( int capacity ); 35 | 36 | /** 37 | * Returns the capacity of this cache. 38 | */ 39 | int getCapacity(); 40 | 41 | /** Sets the {@link CacheEvictionCallback} of this Cache. */ 42 | void setCacheEvictionCallback( CacheEvictionCallback cacheEvictionCallback ); 43 | } 44 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/DirectMappedCacheFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Concrete sub-class of {@link cascading.util.cache.BaseCacheFactory} for creating 27 | * {@link cascading.util.cache.DirectMappedCache} instances. 28 | */ 29 | public class DirectMappedCacheFactory extends BaseCacheFactory 30 | { 31 | @Override 32 | public CascadingCache create( FlowProcess flowProcess ) 33 | { 34 | return new DirectMappedCache(); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/LRUHashMapCacheFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Concrete sub-class of {@link cascading.util.cache.BaseCacheFactory} for creating {@link LRUHashMapCache} 27 | * instances. 28 | */ 29 | public class LRUHashMapCacheFactory extends BaseCacheFactory 30 | { 31 | @Override 32 | public CascadingCache create( FlowProcess flowProcess ) 33 | { 34 | return new LRUHashMapCache(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/OrderedHashMapCacheFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Concrete sub-class of {@link cascading.util.cache.BaseCacheFactory} for creating {@link cascading.util.cache.OrderedHashMapCache} 27 | * instances. 28 | */ 29 | public class OrderedHashMapCacheFactory extends BaseCacheFactory 30 | { 31 | 32 | @Override 33 | public CascadingCache create( FlowProcess flowProcess ) 34 | { 35 | return new OrderedHashMapCache(); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/ComponentAttributeProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | import java.util.Map; 28 | 29 | /** 30 | * 31 | */ 32 | public interface ComponentAttributeProvider 33 | { 34 | Map getComponentAttributes( T component ); 35 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/EdgeNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | /** 28 | * 29 | */ 30 | public interface EdgeNameProvider 31 | { 32 | String getEdgeName( E edge ); 33 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/LICENSE.txt: -------------------------------------------------------------------------------- 1 | All source code in the cascading.util.jgrapht package is copyright and licensed under the terms of the JGraphT project. 2 | 3 | URL: http://jgrapht.org 4 | Version: 0.9.1 5 | 6 | ========================================== 7 | JGraphT : a free Java graph-theory library 8 | ========================================== 9 | 10 | Project Info: http://jgrapht.sourceforge.net/ 11 | Project Creator: Barak Naveh (http://sourceforge.net/users/barak_naveh) 12 | 13 | (C) Copyright 2003-2008, by Barak Naveh and Contributors. 14 | 15 | This program and the accompanying materials are dual-licensed under 16 | either 17 | 18 | (a) the terms of the GNU Lesser General Public License version 2.1 19 | as published by the Free Software Foundation, or (at your option) any 20 | later version. 21 | or (per the licensee's choosing) 22 | 23 | (b) the terms of the Eclipse Public License v1.0 as published by 24 | the Eclipse Foundation. 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/StringEdgeNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | /** 28 | * 29 | */ 30 | public class StringEdgeNameProvider implements EdgeNameProvider 31 | { 32 | public StringEdgeNameProvider() 33 | { 34 | } 35 | 36 | @Override 37 | public String getEdgeName( E edge ) 38 | { 39 | return edge.toString(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/StringNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | public class StringNameProvider implements VertexNameProvider 28 | { 29 | public StringNameProvider() 30 | { 31 | } 32 | 33 | @Override 34 | public String getVertexName( V vertex ) 35 | { 36 | return vertex.toString(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/VertexNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | /** 28 | * 29 | */ 30 | public interface VertexNameProvider 31 | { 32 | String getVertexName( V vertex ); 33 | } 34 | -------------------------------------------------------------------------------- /cascading-core/src/test/java/cascading/flow/iso/NonFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.iso; 22 | 23 | import cascading.flow.FlowProcess; 24 | import cascading.operation.BaseOperation; 25 | import cascading.operation.Function; 26 | import cascading.operation.FunctionCall; 27 | import cascading.tuple.Fields; 28 | 29 | /** 30 | * 31 | */ 32 | public class NonFunction extends BaseOperation implements Function 33 | { 34 | public NonFunction( Fields fieldDeclaration ) 35 | { 36 | super( fieldDeclaration ); 37 | } 38 | 39 | @Override 40 | public void operate( FlowProcess flowProcess, FunctionCall functionCall ) 41 | { 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /cascading-core/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | -------------------------------------------------------------------------------- /cascading-expression/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | dependencies { 22 | compile project( ':cascading-core' ) 23 | 24 | compile group: 'org.codehaus.janino', name: 'janino', version: '2.7.6' 25 | 26 | provided group: 'org.slf4j', name: 'slf4j-api', version: '1.7.5' 27 | 28 | testCompile project( path: ':cascading-core', configuration: 'testArtifacts' ) 29 | } 30 | 31 | javadoc { 32 | configure( options ) { 33 | links << "http://${rootProject.s3UploadDocs.destination}javadoc/cascading-core".toString() 34 | 35 | // linksOffline( '../../../cascading-core', "http://${rootProject.s3UploadDocs.destination}javadoc/cascading-core".toString() ) 36 | } 37 | } 38 | 39 | platformTest.enabled = false 40 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared-io/cascading/flow/hadoop/MapRed.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop; 22 | 23 | import org.apache.hadoop.mapred.Reporter; 24 | 25 | /** 26 | * A helper interface to allow a mapred.* package implementation instances to be exposed for internal use. 27 | */ 28 | public interface MapRed 29 | { 30 | Reporter getReporter(); 31 | } -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared-io/cascading/tuple/hadoop/io/KeyTupleDeserializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.KeyTuple; 25 | 26 | public class KeyTupleDeserializer extends BaseDeserializer 27 | { 28 | 29 | public KeyTupleDeserializer( TupleSerialization.SerializationElementReader elementReader ) 30 | { 31 | super( elementReader ); 32 | 33 | setReaders( elementReader.getTupleSerialization().getKeyFields() ); 34 | } 35 | 36 | @Override 37 | protected KeyTuple createTuple() 38 | { 39 | return new KeyTuple(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared-io/cascading/tuple/hadoop/io/KeyTupleSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.KeyTuple; 25 | 26 | public class KeyTupleSerializer extends BaseSerializer 27 | { 28 | public KeyTupleSerializer( TupleSerialization.SerializationElementWriter elementWriter ) 29 | { 30 | super( elementWriter ); 31 | 32 | setWriters( elementWriter.getTupleSerialization().getKeyFields() ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared-io/cascading/tuple/hadoop/io/TupleSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import java.io.IOException; 24 | 25 | import cascading.tuple.Tuple; 26 | import cascading.tuple.hadoop.TupleSerialization; 27 | 28 | public class TupleSerializer extends BaseSerializer 29 | { 30 | public TupleSerializer( TupleSerialization.SerializationElementWriter elementWriter ) 31 | { 32 | super( elementWriter ); 33 | } 34 | 35 | public void serialize( Tuple tuple ) throws IOException 36 | { 37 | outputStream.writeTuple( tuple ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared-io/cascading/tuple/hadoop/io/ValueTupleDeserializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.ValueTuple; 25 | 26 | public class ValueTupleDeserializer extends BaseDeserializer 27 | { 28 | 29 | public ValueTupleDeserializer( TupleSerialization.SerializationElementReader elementReader ) 30 | { 31 | super( elementReader ); 32 | 33 | setReaders( elementReader.getTupleSerialization().getMaskedValueFields() ); 34 | } 35 | 36 | @Override 37 | protected ValueTuple createTuple() 38 | { 39 | return new ValueTuple(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared-io/cascading/tuple/hadoop/io/ValueTupleSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.ValueTuple; 25 | 26 | public class ValueTupleSerializer extends BaseSerializer 27 | { 28 | public ValueTupleSerializer( TupleSerialization.SerializationElementWriter elementWriter ) 29 | { 30 | super( elementWriter ); 31 | 32 | setWriters( elementWriter.getTupleSerialization().getMaskedValueFields() ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared-mr1/cascading/tuple/hadoop/util/GroupingPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.util; 22 | 23 | import cascading.tuple.Tuple; 24 | import org.apache.hadoop.mapred.JobConf; 25 | import org.apache.hadoop.mapred.Partitioner; 26 | 27 | /** Class GroupingPartitioner is an implementation of {@link org.apache.hadoop.mapred.Partitioner}. */ 28 | public class GroupingPartitioner extends HasherPartitioner implements Partitioner 29 | { 30 | public int getPartition( Tuple key, Tuple value, int numReduceTasks ) 31 | { 32 | return ( hashCode( key ) & Integer.MAX_VALUE ) % numReduceTasks; 33 | } 34 | 35 | @Override 36 | public void configure( JobConf job ) 37 | { 38 | setConf( job ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/expression/ConsecutiveTapsPartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.ConsecutiveTapsExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class ConsecutiveTapsPartitionExpression extends RuleExpression 31 | { 32 | public ConsecutiveTapsPartitionExpression() 33 | { 34 | super( 35 | new NoGroupTapExpressionGraph(), 36 | new ConsecutiveTapsExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/expression/DualStreamedAccumulatedExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.DualStreamedAccumulatedExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoMergeTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class DualStreamedAccumulatedExpression extends RuleExpression 31 | { 32 | public DualStreamedAccumulatedExpression() 33 | { 34 | super( 35 | new NoMergeTapExpressionGraph(), 36 | new DualStreamedAccumulatedExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/expression/GroupTapPartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.GroupTapExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class GroupTapPartitionExpression extends RuleExpression 31 | { 32 | public GroupTapPartitionExpression() 33 | { 34 | super( 35 | new NoGroupTapExpressionGraph(), 36 | new GroupTapExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/expression/StreamedAccumulatedTapsHashJoinPipelinePartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 Chris K Wensel . All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoGroupJoinMergeBoundaryTapExpressionGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public class StreamedAccumulatedTapsHashJoinPipelinePartitionExpression extends RuleExpression 30 | { 31 | public StreamedAccumulatedTapsHashJoinPipelinePartitionExpression() 32 | { 33 | super( 34 | new NoGroupJoinMergeBoundaryTapExpressionGraph(), 35 | new StreamedAccumulatedTapsHashJoinExpressionGraph() 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/expression/StreamedAccumulatedTapsPipelinePartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.hadoop.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 24 | import cascading.flow.planner.rule.RuleExpression; 25 | 26 | /** 27 | * 28 | */ 29 | public class StreamedAccumulatedTapsPipelinePartitionExpression extends RuleExpression 30 | { 31 | public StreamedAccumulatedTapsPipelinePartitionExpression() 32 | { 33 | super( 34 | new NoGroupTapExpressionGraph(), 35 | new StreamedAccumulatedTapsExpressionGraph() 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/expression/StreamedOnlySourcesPipelinePartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.hadoop.planner.rule.expressiongraph.StreamedOnlySourcesExpressionGraph; 24 | import cascading.flow.planner.rule.RuleExpression; 25 | import cascading.flow.planner.rule.expressiongraph.NoGroupJoinTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class StreamedOnlySourcesPipelinePartitionExpression extends RuleExpression 31 | { 32 | public StreamedOnlySourcesPipelinePartitionExpression() 33 | { 34 | super( 35 | new NoGroupJoinTapExpressionGraph(), 36 | new StreamedOnlySourcesExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/expression/TapGroupTapPartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.TapGroupTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class TapGroupTapPartitionExpression extends RuleExpression 31 | { 32 | public TapGroupTapPartitionExpression() 33 | { 34 | super( 35 | new NoGroupTapExpressionGraph(), 36 | new TapGroupTapExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/partitioner/ConsecutiveTapsNodePartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.ConsecutiveTapsPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionNodes; 27 | 28 | /** 29 | * 30 | */ 31 | public class ConsecutiveTapsNodePartitioner extends ExpressionRulePartitioner 32 | { 33 | public ConsecutiveTapsNodePartitioner() 34 | { 35 | super( 36 | PartitionNodes, 37 | new ConsecutiveTapsPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/partitioner/ConsecutiveTapsStepPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.ConsecutiveTapsPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionSteps; 27 | 28 | /** 29 | * 30 | */ 31 | public class ConsecutiveTapsStepPartitioner extends ExpressionRulePartitioner 32 | { 33 | public ConsecutiveTapsStepPartitioner() 34 | { 35 | super( 36 | PartitionSteps, 37 | new ConsecutiveTapsPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/partitioner/GroupTapNodePartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.GroupTapPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionNodes; 27 | 28 | /** 29 | * 30 | */ 31 | public class GroupTapNodePartitioner extends ExpressionRulePartitioner 32 | { 33 | public GroupTapNodePartitioner() 34 | { 35 | super( 36 | PartitionNodes, 37 | new GroupTapPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/planner/rule/partitioner/TapGroupTapStepPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.TapGroupTapPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionSteps; 27 | 28 | /** 29 | * 30 | */ 31 | public class TapGroupTapStepPartitioner extends ExpressionRulePartitioner 32 | { 33 | public TapGroupTapStepPartitioner() 34 | { 35 | super( 36 | PartitionSteps, 37 | new TapGroupTapPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/flow/hadoop/util/ResettableCollection.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface ResettableCollection 27 | { 28 | public void reset( V value ); 29 | } -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/stats/hadoop/HadoopCounterCache.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.stats.hadoop; 22 | 23 | import cascading.stats.CascadingStats; 24 | import cascading.stats.CounterCache; 25 | import org.apache.hadoop.conf.Configuration; 26 | 27 | /** 28 | * 29 | */ 30 | public abstract class HadoopCounterCache extends CounterCache 31 | { 32 | public HadoopCounterCache( CascadingStats stats, Configuration configuration ) 33 | { 34 | super( stats, configuration ); 35 | } 36 | 37 | protected int getIntProperty( String property, int defaultValue ) 38 | { 39 | return configuration.getInt( property, defaultValue ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/tuple/hadoop/util/ReverseGroupingSortingComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.util; 22 | 23 | import cascading.tuple.io.TuplePair; 24 | 25 | /** Class ReverseTuplePairComparator is an implementation of {@link org.apache.hadoop.io.RawComparator}. */ 26 | public class ReverseGroupingSortingComparator extends GroupingSortingComparator 27 | { 28 | @Override 29 | public int compare( byte[] b1, int s1, int l1, byte[] b2, int s2, int l2 ) 30 | { 31 | return -1 * super.compare( b1, s1, l1, b2, s2, l2 ); 32 | } 33 | 34 | @Override 35 | public int compare( TuplePair lhs, TuplePair rhs ) 36 | { 37 | return super.compare( rhs, lhs ); 38 | } 39 | } -------------------------------------------------------------------------------- /cascading-hadoop/src/main/shared/cascading/tuple/hadoop/util/ReverseTupleComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.util; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | public class ReverseTupleComparator extends TupleComparator 26 | { 27 | @Override 28 | public int compare( byte[] b1, int s1, int l1, byte[] b2, int s2, int l2 ) 29 | { 30 | return -1 * super.compare( b1, s1, l1, b2, s2, l2 ); 31 | } 32 | 33 | @Override 34 | public int compare( Tuple lhs, Tuple rhs ) 35 | { 36 | return -1 * super.compare( rhs, lhs ); 37 | } 38 | } -------------------------------------------------------------------------------- /cascading-hadoop/src/test/resources/cascading/platform/platform.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | platform.classname=cascading.platform.hadoop.HadoopPlatform 22 | platform.name=hadoop 23 | -------------------------------------------------------------------------------- /cascading-hadoop/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | 35 | log4j.logger.org.apache.hadoop=WARN 36 | #log4j.logger.org.apache.hadoop.mapred=INFO 37 | log4j.logger.BlockStateChange=WARN 38 | log4j.logger.SecurityLogger=WARN 39 | log4j.logger.org.mortbay=WARN -------------------------------------------------------------------------------- /cascading-hadoop/src/test/shared/cascading/tuple/hadoop/NoTokenTestBytesSerialization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop; 22 | 23 | /** 24 | * 25 | */ 26 | public class NoTokenTestBytesSerialization extends BytesSerialization 27 | { 28 | public NoTokenTestBytesSerialization() 29 | { 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /cascading-hadoop/src/test/shared/cascading/tuple/hadoop/NoTokenTestSerialization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop; 22 | 23 | /** 24 | * 25 | */ 26 | public class NoTokenTestSerialization extends TestSerialization 27 | { 28 | public NoTokenTestSerialization() 29 | { 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /cascading-hadoop2-io/src/main/shared-io: -------------------------------------------------------------------------------- 1 | ../../../cascading-hadoop/src/main/shared-io -------------------------------------------------------------------------------- /cascading-hadoop2-mr1/src/main/shared: -------------------------------------------------------------------------------- 1 | ../../../cascading-hadoop/src/main/shared -------------------------------------------------------------------------------- /cascading-hadoop2-mr1/src/main/shared-mr1: -------------------------------------------------------------------------------- 1 | ../../../cascading-hadoop/src/main/shared-mr1 -------------------------------------------------------------------------------- /cascading-hadoop2-mr1/src/test/resources/cascading/platform/platform.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | platform.classname=cascading.platform.hadoop2.Hadoop2MR1Platform 22 | platform.name=hadoop2-mr1 23 | -------------------------------------------------------------------------------- /cascading-hadoop2-mr1/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | 35 | log4j.logger.org.apache.hadoop=WARN 36 | #log4j.logger.org.apache.hadoop.mapred=INFO 37 | log4j.logger.BlockStateChange=WARN 38 | log4j.logger.SecurityLogger=WARN 39 | log4j.logger.org.mortbay=WARN -------------------------------------------------------------------------------- /cascading-hadoop2-mr1/src/test/shared: -------------------------------------------------------------------------------- 1 | ../../../cascading-hadoop/src/test/shared -------------------------------------------------------------------------------- /cascading-hadoop2-mr1/src/test/shared-mr1: -------------------------------------------------------------------------------- 1 | ../../../cascading-hadoop/src/test/shared-mr1 -------------------------------------------------------------------------------- /cascading-hadoop2-tez-stats/src/main/java/cascading/stats/tez/util/TimelineClient.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.stats.tez.util; 22 | 23 | import java.io.IOException; 24 | import java.util.Iterator; 25 | 26 | import org.apache.tez.dag.api.TezException; 27 | 28 | /** 29 | * 30 | */ 31 | public interface TimelineClient 32 | { 33 | String getVertexID( String vertexName ) throws IOException, TezException; 34 | 35 | Iterator getVertexChildren( String vertexID, int limit, String startTaskID ) throws IOException, TezException; 36 | 37 | TaskStatus getVertexChild( String taskID ) throws TezException; 38 | } -------------------------------------------------------------------------------- /cascading-hadoop2-tez/src/main/java/cascading/flow/tez/planner/rule/transformer/BoundaryBalanceJoinSplitTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.tez.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.rule.transformer.RuleInsertionTransformer; 24 | import cascading.flow.tez.planner.rule.expressiongraph.BalanceJoinSplitExpression; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.BalanceAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class BoundaryBalanceJoinSplitTransformer extends RuleInsertionTransformer 32 | { 33 | public BoundaryBalanceJoinSplitTransformer() 34 | { 35 | super( 36 | BalanceAssembly, 37 | new BalanceJoinSplitExpression(), 38 | BoundaryElementFactory.BOUNDARY_PIPE 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-hadoop2-tez/src/main/java/cascading/flow/tez/planner/rule/transformer/BoundaryElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.tez.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class BoundaryElementFactory implements ElementFactory 29 | { 30 | public static final String BOUNDARY_PIPE = "cascading.registry.boundary_pipe"; 31 | } 32 | -------------------------------------------------------------------------------- /cascading-hadoop2-tez/src/main/shared: -------------------------------------------------------------------------------- 1 | ../../../cascading-hadoop/src/main/shared -------------------------------------------------------------------------------- /cascading-hadoop2-tez/src/test/resources/cascading/platform/platform.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | platform.classname=cascading.platform.tez.Hadoop2TezPlatform 22 | platform.name=hadoop2-tez 23 | -------------------------------------------------------------------------------- /cascading-hadoop2-tez/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | 35 | log4j.logger.org.apache.hadoop=WARN 36 | log4j.logger.BlockStateChange=WARN 37 | log4j.logger.SecurityLogger=WARN 38 | log4j.logger.org.mortbay=WARN -------------------------------------------------------------------------------- /cascading-hadoop2-tez/src/test/shared: -------------------------------------------------------------------------------- 1 | ../../../cascading-hadoop/src/test/shared -------------------------------------------------------------------------------- /cascading-local/src/test/resources/cascading/platform/platform.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | platform.classname=cascading.platform.local.LocalPlatform 22 | platform.name=local 23 | -------------------------------------------------------------------------------- /cascading-platform/src/test/java/cascading/detail/AssemblyFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.detail; 22 | 23 | import cascading.pipe.Pipe; 24 | import cascading.tuple.Fields; 25 | 26 | public abstract class AssemblyFactory 27 | { 28 | public abstract Pipe createAssembly( Pipe pipe, Fields argFields, Fields declFields, String fieldValue, Fields selectFields ); 29 | } 30 | -------------------------------------------------------------------------------- /cascading-platform/src/test/java/cascading/detail/EachAssemblyFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.detail; 22 | 23 | import cascading.TestFunction; 24 | import cascading.pipe.Each; 25 | import cascading.pipe.Pipe; 26 | import cascading.tuple.Fields; 27 | import cascading.tuple.Tuple; 28 | 29 | public class EachAssemblyFactory extends AssemblyFactory 30 | { 31 | public Pipe createAssembly( Pipe pipe, Fields argFields, Fields declFields, String fieldValue, Fields selectFields ) 32 | { 33 | return new Each( pipe, argFields, new TestFunction( declFields, new Tuple( fieldValue ) ), selectFields ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /cascading-platform/src/test/java/cascading/detail/EveryAssemblyFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.detail; 22 | 23 | import cascading.TestAggregator; 24 | import cascading.pipe.Every; 25 | import cascading.pipe.GroupBy; 26 | import cascading.pipe.Pipe; 27 | import cascading.tuple.Fields; 28 | import cascading.tuple.Tuple; 29 | 30 | public class EveryAssemblyFactory extends AssemblyFactory 31 | { 32 | public Pipe createAssembly( Pipe pipe, Fields argFields, Fields declFields, String fieldValue, Fields selectFields ) 33 | { 34 | pipe = new GroupBy( pipe, Fields.ALL ); 35 | 36 | return new Every( pipe, argFields, new TestAggregator( declFields, new Tuple( fieldValue ) ), selectFields ); 37 | } 38 | } -------------------------------------------------------------------------------- /cascading-platform/src/test/java/cascading/platform/PlatformSuite.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.platform; 22 | 23 | import java.lang.annotation.ElementType; 24 | import java.lang.annotation.Inherited; 25 | import java.lang.annotation.Retention; 26 | import java.lang.annotation.RetentionPolicy; 27 | import java.lang.annotation.Target; 28 | 29 | /** 30 | * Annotation PlatformSuite marks any PlatformTestCase as having a 31 | * {@code static junit.framework.Test suite(TestPlatform platform)} method. 32 | *

33 | * The method name can be overridden by setting the {@link #method()} value. 34 | */ 35 | @Retention(RetentionPolicy.RUNTIME) 36 | @Target(ElementType.TYPE) 37 | @Inherited 38 | public @interface PlatformSuite 39 | { 40 | String method() default "suite"; 41 | } 42 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/apache-clean.10.txt: -------------------------------------------------------------------------------- 1 | 75.185.76.245,-,-,"01/Sep/2007:00:01:03 +0000","POST /mt-tb.cgi/235 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 2 | 68.46.103.112,-,-,"01/Sep/2007:00:01:17 +0000","POST /mt-tb.cgi/92 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 3 | 76.197.151.0,-,-,"01/Sep/2007:00:02:24 +0000","POST /mt-tb.cgi/274 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 4 | 63.123.238.8,-,-,"01/Sep/2007:00:02:49 +0000","GET /robots.txt HTTP/1.1",200,0,"-","Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","-" 5 | 63.123.238.8,-,-,"01/Sep/2007:00:02:49 +0000","GET / HTTP/1.1",200,34293,"-","Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","-" 6 | 12.215.138.88,-,-,"01/Sep/2007:00:03:31 +0000","POST /archives/000180.html HTTP/1.1",405,315,"http://www.example.org/mt-comments.cgi","Opera/9.10 (Windows NT 5.1; U; ru)","-" 7 | 78.84.186.161,-,-,"01/Sep/2007:00:04:00 +0000","POST /mt-tb.cgi/247 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 8 | 68.102.166.126,-,-,"01/Sep/2007:00:07:51 +0000","POST /archives/000229.html HTTP/1.1",405,315,"http://www.example.org/mt-comments.cgi","Opera/9.10 (Windows NT 5.1; U; ru)","-" 9 | 68.102.166.126,-,-,"01/Sep/2007:00:07:51 +0000","POST /archives/000228.html HTTP/1.1",405,315,"http://www.example.org/mt-comments.cgi","Opera/9.10 (Windows NT 5.1; U; ru)","-" 10 | 122.152.128.48,-,-,"01/Sep/2007:00:10:14 +0000","GET / HTTP/1.1",200,34293,"-","Baiduspider+(+http://www.baidu.com/search/spider_jp.html)","-" -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/apache.10.txt: -------------------------------------------------------------------------------- 1 | 75.185.76.245 - - [01/Sep/2007:00:01:03 +0000] "POST /mt-tb.cgi/235 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 2 | 68.46.103.112 - - [01/Sep/2007:00:01:17 +0000] "POST /mt-tb.cgi/92 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 3 | 76.197.151.0 - - [01/Sep/2007:00:02:24 +0000] "POST /mt-tb.cgi/274 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 4 | 63.123.238.8 - - [01/Sep/2007:00:02:49 +0000] "GET /robots.txt HTTP/1.1" 200 0 "-" "Mozilla/2.0 (compatible; Ask Jeeves/Teoma)" "-" 5 | 63.123.238.8 - - [01/Sep/2007:00:02:49 +0000] "GET / HTTP/1.1" 200 34293 "-" "Mozilla/2.0 (compatible; Ask Jeeves/Teoma)" "-" 6 | 12.215.138.88 - - [01/Sep/2007:00:03:31 +0000] "POST /archives/000180.html HTTP/1.1" 405 315 "http://www.example.org/mt-comments.cgi" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 7 | 78.84.186.161 - - [01/Sep/2007:00:04:00 +0000] "POST /mt-tb.cgi/247 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 8 | 68.102.166.126 - - [01/Sep/2007:00:07:51 +0000] "POST /archives/000229.html HTTP/1.1" 405 315 "http://www.example.org/mt-comments.cgi" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 9 | 68.102.166.126 - - [01/Sep/2007:00:07:51 +0000] "POST /archives/000228.html HTTP/1.1" 405 315 "http://www.example.org/mt-comments.cgi" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 10 | 122.152.128.48 - - [01/Sep/2007:00:10:14 +0000] "GET / HTTP/1.1" 200 34293 "-" "Baiduspider+(+http://www.baidu.com/search/spider_jp.html)" "-" -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/comments+lower.txt: -------------------------------------------------------------------------------- 1 | # inserting comments 2 | # here for testing 3 | 1 a 4 | 2 b 5 | # and here 6 | 3 c 7 | 4 d 8 | 5 e 9 | # and here -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/critics.txt: -------------------------------------------------------------------------------- 1 | LisaRose Lady in the Water 2.5 Snakes on a Plane 3.5 Just My Luck 3.0 Superman Returns 3.5 You, Me and Dupree 2.5 The Night Listener 3.0 2 | GeneSeymour Lady in the Water 3.0 Snakes on a Plane 3.5 Just My Luck 1.5 Superman Returns 5.0 You, Me and Dupree 3.5 The Night Listener 3.0 3 | MichaelPhillips Lady in the Water 2.5 Snakes on a Plane 3.0 Superman Returns 3.5 The Night Listener 4.0 4 | ClaudiaPuig Snakes on a Plane 3.5 Just My Luck 3.0 The Night Listener 4.5 Superman Returns 4.0 You, Me and Dupree 2.5 5 | MickLaSalle Lady in the Water 3.0 Snakes on a Plane 4.0 Just My Luck 2.0 Superman Returns 3.0 The Night Listener 3.0 You, Me and Dupree 2.0 6 | JackMatthews Lady in the Water 3.0 Snakes on a Plane 4.0 Just My Luck 2.0 Superman Returns 5.0 You, Me and Dupree 3.5 7 | Toby Snakes on a Plane 4.5 You, Me and Dupree 1.0 Superman Returns 4.0 8 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-extra-field.txt: -------------------------------------------------------------------------------- 1 | foo,bar,baz,bin,1 2 | foo,"bar",baz,bin,2 3 | foo,"bar,bar",baz,bin,3 4 | foo,"bar"",bar",baz,bin,4 5 | foo,"bar"""",bar",baz,bin,5 6 | ,"",baz,,6 7 | ,,,,7,extra-data 8 | foo,,,,8 9 | ,"",,,9 10 | "f",,,,"10" 11 | "f",,,",bin","11" 12 | "f",,,"bin,","11" 13 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-header.txt: -------------------------------------------------------------------------------- 1 | "first","second","third","fourth","fifth" 2 | foo,bar,baz,bin,1 3 | foo,"bar",baz,bin,2 4 | foo,"bar,bar",baz,bin,3 5 | foo,"bar"",bar",baz,bin,4 6 | foo,"bar"""",bar",baz,bin,5 7 | ,"",baz,,6 8 | ,,,,7 9 | foo,,,,8 10 | ,"",,,9 11 | "f",,,,"10" 12 | "f",,,",bin","11" 13 | "f",,,",bin", 14 | "f",,,, 15 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-problematic.txt: -------------------------------------------------------------------------------- 1 | 1,a 2 | 2 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-spec-char.txt: -------------------------------------------------------------------------------- 1 | foo|bar|baz|bin|1 2 | foo|"bar"|baz|bin|2 3 | foo|"bar|bar"|baz|bin|3 4 | foo|"bar""|bar"|baz|bin|4 5 | foo|"bar""""|bar"|baz|bin|5 6 | |""|baz||6 7 | ||||7 8 | foo||||8 9 | |""|||9 10 | "f"||||"10" 11 | "f"|||",bin"|"11" 12 | "f"|||"bin,"|"11" -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited.txt: -------------------------------------------------------------------------------- 1 | foo,bar,baz,bin,1 2 | foo,"bar",baz,bin,2 3 | foo,"bar,bar",baz,bin,3 4 | foo,"bar"",bar",baz,bin,4 5 | foo,"bar"""",bar",baz,bin,5 6 | ,"",baz,,6 7 | ,,,,7 8 | foo,,,,8 9 | ,"",,,9 10 | "f",,,,"10" 11 | "f",,,",bin","11" 12 | "f",,,"bin,","11" 13 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/extra+lower+upper.txt: -------------------------------------------------------------------------------- 1 | 1 1 a A 2 | 2 2 b B 3 | 3 3 c C 4 | 4 4 d D 5 | 5 5 e E 6 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/ips.20.txt: -------------------------------------------------------------------------------- 1 | 75.185.76.245 2 | 68.46.103.112 3 | 76.197.151.0 4 | 63.123.238.8 5 | 63.123.238.8 6 | 12.215.138.88 7 | 78.84.186.161 8 | 190.72.193.209 9 | 68.102.166.126 10 | 122.152.128.48 11 | 70.73.159.105 12 | 69.37.30.35 13 | 58.221.249.34 14 | 66.131.166.131 15 | 72.14.199.11 16 | 72.14.199.11 17 | 72.14.199.11 18 | 209.61.157.78 19 | 71.204.199.171 20 | 82.99.30.66 21 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-nulls.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 a B 3 | 1 a C 4 | 1 b A 5 | 1 b B 6 | 1 b C 7 | 1 c A 8 | 1 c B 9 | 1 c C 10 | 2 b B 11 | 2 b C 12 | b D 13 | 2 c B 14 | 2 c C 15 | 2 c D 16 | 2 d B 17 | 2 d C 18 | 2 d D 19 | 3 c C 20 | 4 b B 21 | 4 b C 22 | 4 b D 23 | 4 c B 24 | 4 c C 25 | c D 26 | 4 d B 27 | 4 d C 28 | 4 d D 29 | 5 a A 30 | 5 a B 31 | 5 a E 32 | 5 b A 33 | b B 34 | 5 b E 35 | 5 e A 36 | 5 e B 37 | 5 e E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-rev.txt: -------------------------------------------------------------------------------- 1 | 5 e E 2 | 5 e B 3 | 5 e A 4 | 5 b E 5 | 5 b B 6 | 5 b A 7 | 5 a E 8 | 5 a B 9 | 5 a A 10 | 4 d D 11 | 4 d C 12 | 4 d B 13 | 4 c D 14 | 4 c C 15 | 4 c B 16 | 4 b D 17 | 4 b C 18 | 4 b B 19 | 3 c C 20 | 2 d D 21 | 2 d C 22 | 2 d B 23 | 2 c D 24 | 2 c C 25 | 2 c B 26 | 2 b D 27 | 2 b C 28 | 2 b B 29 | 1 c C 30 | 1 c B 31 | 1 c A 32 | 1 b C 33 | 1 b B 34 | 1 b A 35 | 1 a C 36 | 1 a B 37 | 1 a A -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-x2-var-len.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 aa B 3 | 1 aaa C 4 | 1 b A 5 | 1 bb B 6 | 1 bbb C 7 | 1 c A 8 | 1 cc B 9 | 1 ccc C 10 | 2 b B 11 | 2 bb C 12 | 2 bbb D 13 | 2 c B 14 | 2 cc C 15 | 2 ccc D 16 | 2 d B 17 | 2 dd C 18 | 2 ddd D 19 | 3 c C 20 | 4 b B 21 | 4 bb C 22 | 4 bbb D 23 | 4 c B 24 | 4 cc C 25 | 4 ccc D 26 | 4 d B 27 | 4 dd C 28 | 4 ddd D 29 | 5 a A 30 | 5 aa B 31 | 5 aaa E 32 | 5 b A 33 | 5 bb B 34 | 5 bbb E 35 | 5 e A 36 | 5 ee B 37 | 5 eee E 38 | 1 a A 39 | 1 aa B 40 | 1 aaa C 41 | 1 b A 42 | 1 bb B 43 | 1 bbb C 44 | 1 c A 45 | 1 cc B 46 | 1 ccc C 47 | 2 b B 48 | 2 bb C 49 | 2 bbb D 50 | 2 c B 51 | 2 cc C 52 | 2 ccc D 53 | 2 d B 54 | 2 dd C 55 | 2 ddd D 56 | 3 c C 57 | 4 b B 58 | 4 bb C 59 | 4 bbb D 60 | 4 c B 61 | 4 cc C 62 | 4 ccc D 63 | 4 d B 64 | 4 dd C 65 | 4 ddd D 66 | 5 a A 67 | 5 aa B 68 | 5 aaa E 69 | 5 b A 70 | 5 bb B 71 | 5 bbb E 72 | 5 e A 73 | 5 ee B 74 | 5 eee E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-x2.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 a B 3 | 1 a C 4 | 1 b A 5 | 1 b B 6 | 1 b C 7 | 1 c A 8 | 1 c B 9 | 1 c C 10 | 2 b B 11 | 2 b C 12 | 2 b D 13 | 2 c B 14 | 2 c C 15 | 2 c D 16 | 2 d B 17 | 2 d C 18 | 2 d D 19 | 3 c C 20 | 4 b B 21 | 4 b C 22 | 4 b D 23 | 4 c B 24 | 4 c C 25 | 4 c D 26 | 4 d B 27 | 4 d C 28 | 4 d D 29 | 5 a A 30 | 5 a B 31 | 5 a E 32 | 5 b A 33 | 5 b B 34 | 5 b E 35 | 5 e A 36 | 5 e B 37 | 5 e E 38 | 1 a A 39 | 1 a B 40 | 1 a C 41 | 1 b A 42 | 1 b B 43 | 1 b C 44 | 1 c A 45 | 1 c B 46 | 1 c C 47 | 2 b B 48 | 2 b C 49 | 2 b D 50 | 2 c B 51 | 2 c C 52 | 2 c D 53 | 2 d B 54 | 2 d C 55 | 2 d D 56 | 3 c C 57 | 4 b B 58 | 4 b C 59 | 4 b D 60 | 4 c B 61 | 4 c C 62 | 4 c D 63 | 4 d B 64 | 4 d C 65 | 4 d D 66 | 5 a A 67 | 5 a B 68 | 5 a E 69 | 5 b A 70 | 5 b B 71 | 5 b E 72 | 5 e A 73 | 5 e B 74 | 5 e E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 a B 3 | 1 a C 4 | 1 b A 5 | 1 b B 6 | 1 b C 7 | 1 c A 8 | 1 c B 9 | 1 c C 10 | 2 b B 11 | 2 b C 12 | 2 b D 13 | 2 c B 14 | 2 c C 15 | 2 c D 16 | 2 d B 17 | 2 d C 18 | 2 d D 19 | 3 c C 20 | 4 b B 21 | 4 b C 22 | 4 b D 23 | 4 c B 24 | 4 c C 25 | 4 c D 26 | 4 d B 27 | 4 d C 28 | 4 d D 29 | 5 a A 30 | 5 a B 31 | 5 a E 32 | 5 b A 33 | 5 b B 34 | 5 b E 35 | 5 e A 36 | 5 e B 37 | 5 e E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs-sparse.txt: -------------------------------------------------------------------------------- 1 | 1 a1 2 | 1 a2 3 | 1 a3 4 | 2 b1 5 | 3 c1 6 | 4 d1 7 | 4 d2 8 | 4 d3 9 | 5 e1 10 | 5 e2 11 | 5 e3 12 | 7 g1 13 | 7 g2 14 | 7 g3 15 | 7 g4 16 | 7 g5 17 | h1 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs.txt: -------------------------------------------------------------------------------- 1 | 1 a 2 | 1 b 3 | 1 c 4 | 2 b 5 | 2 c 6 | 2 d 7 | 3 c 8 | 4 b 9 | 4 c 10 | 4 d 11 | 5 a 12 | 5 b 13 | 5 e 14 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lower+upper.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 2 b B 3 | 3 c C 4 | 4 d D 5 | 5 e E 6 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lower-offset.txt: -------------------------------------------------------------------------------- 1 | 1 a 2 | 5 b 3 | 6 c 4 | 5 e -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lower.txt: -------------------------------------------------------------------------------- 1 | 1 a 2 | 2 b 3 | 3 c 4 | 4 d 5 | 5 e -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/nums.10.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/nums.20.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 11 | 11 12 | 12 13 | 13 14 | 14 15 | 15 16 | 16 17 | 17 18 | 18 19 | 19 20 | 20 21 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/rhs-sparse.txt: -------------------------------------------------------------------------------- 1 | 1 A1 2 | 1 A2 3 | 1 A3 4 | 2 B1 5 | 2 B2 6 | 2 B3 7 | 4 D1 8 | 6 F1 9 | 6 F2 10 | H1 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/rhs.txt: -------------------------------------------------------------------------------- 1 | 1 A 2 | 1 B 3 | 1 C 4 | 2 B 5 | 2 C 6 | 2 D 7 | 3 C 8 | 4 B 9 | 4 C 10 | 4 D 11 | 5 A 12 | 5 B 13 | 5 E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/test-classpath.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cascading/cascading/2b7346e43b5e5fef6dd88e07e90ac056386c51f0/cascading-platform/src/test/resources/data/test-classpath.jar -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/unexpectedEndOfFile.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cascading/cascading/2b7346e43b5e5fef6dd88e07e90ac056386c51f0/cascading-platform/src/test/resources/data/unexpectedEndOfFile.gz -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/upper.txt: -------------------------------------------------------------------------------- 1 | 1 A 2 | 2 B 3 | 3 C 4 | 4 D 5 | 5 E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | -------------------------------------------------------------------------------- /cascading-xml/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | dependencies { 22 | compile project( ':cascading-core' ) 23 | 24 | compile group: 'org.ccil.cowan.tagsoup', name: 'tagsoup', version: '1.2' 25 | 26 | provided group: 'org.slf4j', name: 'slf4j-api', version: '1.7.5' 27 | 28 | testCompile project( path: ':cascading-core', configuration: 'testArtifacts' ) 29 | } 30 | 31 | javadoc { 32 | configure( options ) { 33 | links << "http://${rootProject.s3UploadDocs.destination}javadoc/cascading-core".toString() 34 | 35 | // linksOffline( '../../../cascading-core', "http://${rootProject.s3UploadDocs.destination}javadoc/cascading-core".toString() ) 36 | } 37 | } 38 | 39 | platformTest.enabled = false 40 | -------------------------------------------------------------------------------- /etc/hadoop-shared-config.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | sourceSets { 22 | main { 23 | java { 24 | srcDirs += 'src/main/shared' 25 | } 26 | } 27 | 28 | test { 29 | java { 30 | srcDirs += 'src/test/shared' 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /etc/hadoop-shared-io-config.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | sourceSets { 22 | main { 23 | java { 24 | srcDirs += 'src/main/shared-io' 25 | } 26 | } 27 | 28 | test { 29 | java { 30 | srcDirs += 'src/test/shared-io' 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /etc/hadoop-shared-mr1-config.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | sourceSets { 22 | main { 23 | java { 24 | srcDirs += 'src/main/shared-mr1' 25 | } 26 | } 27 | 28 | test { 29 | java { 30 | srcDirs += 'src/test/shared-mr1' 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /etc/synchronizer.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | # 4 | # Project and contact information: http://www.cascading.org/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # see http://jets3t.s3.amazonaws.com/toolkit/configuration.html 22 | 23 | #s3service.default-bucket-location=Tokyo 24 | # httpclient.max-connections=2 25 | # threaded-service.admin-max-thread-count=5 26 | 27 | ### 28 | # File/Object comparison properties 29 | ### 30 | 31 | filecomparer.skip-symlinks=true 32 | #filecomparer.use-md5-files=true 33 | #filecomparer.generate-md5-files=true 34 | #filecomparer.md5-files-root-dir=.cache 35 | filecomparer.skip-upload-of-md5-files=true 36 | filecomparer.assume-local-latest-in-mismatch=false 37 | 38 | # Page Caching - none 39 | upload.metadata.Cache-Control=no-cache 40 | 41 | upload.transformed-files-batch-size=1000 42 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 3 | * 4 | * Project and contact information: http://www.cascading.org/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | include 'cascading-core' 22 | include 'cascading-xml' 23 | include 'cascading-expression' 24 | include 'cascading-local' 25 | include 'cascading-hadoop' 26 | include 'cascading-hadoop2-io' 27 | include 'cascading-hadoop2-mr1' 28 | include 'cascading-hadoop2-tez' 29 | include 'cascading-hadoop2-tez-stats' 30 | include 'cascading-platform' 31 | 32 | rootProject.name = 'cascading' 33 | -------------------------------------------------------------------------------- /version.properties: -------------------------------------------------------------------------------- 1 | cascading.release.major=3.3 2 | cascading.release.minor=0 --------------------------------------------------------------------------------