public void configRuleRegistryDefaults( RuleRegistry ruleRegistry ) { ruleRegistry.addDefaultElementFactory( IntermediatePipeElementFactory.IDENTITY, new IdentityElementFactgory() ); }
public ElementFactory getElementFactoryFor( String factoryName ) { return ruleRegistry.getElementFactory( factoryName ); } }
@Test public void testRuleEngine() { RuleRegistry ruleRegistry = new RuleRegistry(); ruleRegistry.addElementFactory( NonTapFactory.TEMP_TAP, new NonTapFactory() ); PlannerContext plannerContext = new PlannerContext( ruleRegistry, null, null, null, true ); ruleRegistry.addRule( new RuleAssert( PlanPhase.PreResolveAssembly, new LoneGroupExpression(), "lone group assertion" ) ); ruleRegistry.addRule( new RuleInsertionTransformer( PlanPhase.PreResolveAssembly, new TestGroupGroupExpression(), IntermediateTapElementFactory.TEMP_TAP ) ); try { new RuleExec( new TraceWriter(), ruleRegistry ).executeRulePhase( PlanPhase.PreResolveAssembly, plannerContext, new RuleResult( new LoneGroupAssertionGraph() ) ); fail(); } catch( PlannerException exception ) { // do nothing } new RuleExec( new TraceWriter(), ruleRegistry ).executeRulePhase( PlanPhase.PreResolveAssembly, plannerContext, new RuleResult( new HashJoinSameSourceGraph() ) ); }
public void testSubGraphIteratorSelfCoGroup() RuleRegistry ruleRegistry = new RuleRegistry(); ruleRegistry.setResolveElementsEnabled( false ); ruleRegistry.addRule( new RemoveNoOpPipeTransformer() ); ruleRegistry.addRule( new WholeGraphStepPartitioner() ); ruleRegistry.addRule( new ExpressionRulePartitioner( PlanPhase.PartitionNodes, new RuleExpression( ruleRegistry.addRule( new UniquePathRulePartitioner( PlanPhase.PartitionNodes, RulePartitioner.PartitionSource.PartitionCurrent,
private Asserted assertion( FlowElementGraph flowElementGraph, RuleExpression ruleExpression ) { RuleRegistry ruleRegistry = new RuleRegistry(); ruleRegistry.addElementFactory( NonTapFactory.TEMP_TAP, new NonTapFactory() ); PlannerContext plannerContext = new PlannerContext( ruleRegistry, null, null, null, true ); Asserted asserted = new RuleAssert( PlanPhase.PreResolveAssembly, ruleExpression, "message" ).assertion( plannerContext, flowElementGraph ); // assertion.getMatched().writeDOT( getTestOutputRoot() + "/dots/assertion.dot" ); return asserted; }
private void runSubGraphIteratorRotate( FlowElementGraph elementGraph, int numSubGraphs ) { RuleRegistry ruleRegistry = new RuleRegistry(); PlannerContext plannerContext = new PlannerContext( ruleRegistry ); ruleRegistry.addRule( new RemoveNoOpPipeTransformer() ); RuleResult ruleResult = new RuleExec( new TraceWriter(), ruleRegistry ).executeRulePhase( PlanPhase.PreResolveAssembly, plannerContext, new RuleResult( elementGraph ) ); FlowElementGraph flowElementGraph = ruleResult.getAssemblyGraph(); flowElementGraph.writeDOT( getPlanPath() + "/node.dot" ); ExpressionSubGraphIterator iterator = new ExpressionSubGraphIterator( new PlannerContext(), new TestNoGroupTapExpressionGraph(), new TestConsecutiveTapsExpressionGraph(), false, flowElementGraph ); iterator.getContractedGraph().writeDOT( getPlanPath() + "/node-contracted.dot" ); int count = 0; while( iterator.hasNext() && count < 10 ) { ElementGraph next = iterator.next(); assertNotNull( next ); next.writeDOT( getPlanPath() + "/pipeline/" + count + "-graph.dot" ); count++; } assertEquals( "wrong number of sub-graphs", numSubGraphs, count ); }
private void resolveElements( RuleResult ruleResult ) { if( !registry.enabledResolveElements() ) return; FlowElementGraph elementGraph = ruleResult.getAssemblyGraph(); elementGraph = (FlowElementGraph) elementGraph.copyElementGraph(); ScopeResolver.resolveFields( elementGraph ); ruleResult.setLevelResults( ProcessLevel.Assembly, ruleResult.initialAssembly, elementGraph ); }
@Test public void testSubGraphIterator() { RuleRegistry ruleRegistry = new RuleRegistry(); ruleRegistry.addElementFactory( NonTapFactory.TEMP_TAP, new NonTapFactory() ); PlannerContext plannerContext = new PlannerContext( ruleRegistry, null, null, null, true ); ruleRegistry.addRule( new RuleInsertionTransformer( PlanPhase.PreResolveAssembly, new TestCheckpointExpression(), IntermediateTapElementFactory.TEMP_TAP ) ); // ruleRegistry.addRule( new RuleContractedTransform( PlanPhase.PreResolve, new NoOpPipeExpression() ) ); RuleResult ruleResult = new RuleExec( new TraceWriter(), ruleRegistry ).executeRulePhase( PlanPhase.PreResolveAssembly, plannerContext, new RuleResult( new StandardElementGraph() ) ); FlowElementGraph flowElementGraph = ruleResult.getAssemblyGraph(); SubGraphIterator iterator = new ExpressionSubGraphIterator( new PlannerContext(), new NoGroupTapExpressionGraph(), new TapGroupTapExpressionGraph(), flowElementGraph ); while( iterator.hasNext() ) assertNotNull( iterator.next() ); }
private ElementGraph transform( ElementGraph flowElementGraph, RuleExpression ruleExpression ) { RuleRegistry ruleRegistry = new RuleRegistry(); ruleRegistry.addElementFactory( NonTapFactory.TEMP_TAP, new NonTapFactory() ); PlannerContext plannerContext = new PlannerContext( ruleRegistry, null, null, null, true ); RuleInsertionTransformer ruleTempTapInsertionTransformer = new RuleInsertionTransformer( PlanPhase.PreResolveAssembly, ruleExpression, IntermediateTapElementFactory.TEMP_TAP ); Transformed<ElementGraph> insertionTransformed = ruleTempTapInsertionTransformer.transform( plannerContext, flowElementGraph ); insertionTransformed.writeDOTs( getPlanPath() ); return insertionTransformed.getEndGraph(); }
@Test public void testSubGraphIterator2() RuleRegistry ruleRegistry = new RuleRegistry(); ruleRegistry.addRule( new RemoveNoOpPipeTransformer() );
@Override public void configRuleRegistryDefaults( RuleRegistry ruleRegistry ) { super.configRuleRegistryDefaults( ruleRegistry ); ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.TEMP_TAP, new TempTapElementFactory() ); ruleRegistry.addDefaultElementFactory( BoundaryElementFactory.BOUNDARY_PIPE, new IntermediateBoundaryElementFactory() ); if( PropertyUtil.getBooleanProperty( getDefaultProperties(), FlowConnectorProps.ENABLE_DECORATE_ACCUMULATED_TAP, true ) ) ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.ACCUMULATED_TAP, new TempTapElementFactory( DistCacheTap.class.getName() ) ); }
@Override public void configRuleRegistryDefaults( RuleRegistry ruleRegistry ) { super.configRuleRegistryDefaults( ruleRegistry ); ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.TEMP_TAP, new TempTapElementFactory() ); ruleRegistry.addDefaultElementFactory( BoundaryElementFactory.BOUNDARY_PIPE, new IntermediateBoundaryElementFactory() ); if( PropertyUtil.getBooleanProperty( getDefaultProperties(), FlowConnectorProps.ENABLE_DECORATE_ACCUMULATED_TAP, true ) ) ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.ACCUMULATED_TAP, new TempTapElementFactory( DistCacheTap.class.getName() ) ); }
@Override public void configRuleRegistryDefaults( RuleRegistry ruleRegistry ) { super.configRuleRegistryDefaults( ruleRegistry ); ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.TEMP_TAP, new TempTapElementFactory() ); if( PropertyUtil.getBooleanProperty( getDefaultProperties(), FlowConnectorProps.ENABLE_DECORATE_ACCUMULATED_TAP, true ) ) ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.ACCUMULATED_TAP, new TempTapElementFactory( DistCacheTap.class.getName() ) ); }
@Override public void configRuleRegistryDefaults( RuleRegistry ruleRegistry ) { super.configRuleRegistryDefaults( ruleRegistry ); ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.TEMP_TAP, new TempTapElementFactory() ); if( PropertyUtil.getBooleanProperty( getDefaultProperties(), FlowConnectorProps.ENABLE_DECORATE_ACCUMULATED_TAP, true ) ) ruleRegistry.addDefaultElementFactory( IntermediateTapElementFactory.ACCUMULATED_TAP, new TempTapElementFactory( DistCacheTap.class.getName() ) ); }