private FlowDefinitionHolder createFlowDefinitionHolder(FlowDefinitionResource flowResource) { FlowBuilder builder = createFlowBuilder(flowResource); FlowBuilderContext builderContext = new FlowBuilderContextImpl(flowResource.getId(), flowResource.getAttributes(), flowRegistry, flowBuilderServices); FlowAssembler assembler = new FlowAssembler(builder, builderContext); return new DefaultFlowHolder(assembler); }
public synchronized FlowDefinition getFlowDefinition() throws FlowDefinitionConstructionException { if (assembling) { // must return early assembly result for when a flow calls itself recursively return getFlowBuilder().getFlow(); } if (flowDefinition == null) { logger.debug("Assembling the flow for the first time"); assembleFlow(); } else { if (flowDefinition.inDevelopment() && getFlowBuilder().hasFlowChanged()) { logger.debug("The flow under development has changed; reassembling..."); assembleFlow(); } } return flowDefinition; }
public void testGetFlowDefinitionWithChangesRefreshed() { assembler = new FlowAssembler(new ChangeDetectableFlowBuilder(), new MockFlowBuilderContext("flowId")); holder = new DefaultFlowHolder(assembler); FlowDefinition flow = holder.getFlowDefinition(); assertEquals("flowId", flow.getId()); assertEquals("end", flow.getStartState().getId()); }
public synchronized void refresh() throws FlowDefinitionConstructionException { assembleFlow(); }
public void testDestroy() { holder.getFlowDefinition(); holder.destroy(); }
public void testDestroyNotInitialized() { holder.destroy(); }
public void testGetFlowDefinition() { FlowDefinition flow = holder.getFlowDefinition(); assertEquals("flowId", flow.getId()); assertEquals("end", flow.getStartState().getId()); }
public synchronized void refresh() throws FlowDefinitionConstructionException { assembleFlow(); }
private void registerFlow(FlowDefinitionResource resource, DefaultFlowRegistry flowRegistry) { FlowModelBuilder flowModelBuilder; if (resource.getPath().getFilename().endsWith(".xml")) { flowModelBuilder = new XmlFlowModelBuilder(resource.getPath(), flowRegistry.getFlowModelRegistry()); } else { throw new IllegalArgumentException(resource + " is not a supported resource type; supported types are [.xml]"); } FlowModelHolder flowModelHolder = new DefaultFlowModelHolder(flowModelBuilder); FlowBuilder flowBuilder = new FlowModelFlowBuilder(flowModelHolder); FlowBuilderContext builderContext = new FlowBuilderContextImpl( resource.getId(), resource.getAttributes(), flowRegistry, this.flowBuilderServices); FlowAssembler assembler = new FlowAssembler(flowBuilder, builderContext); DefaultFlowHolder flowHolder = new DefaultFlowHolder(assembler); flowRegistry.getFlowModelRegistry().registerFlowModel(resource.getId(), flowModelHolder); flowRegistry.registerFlowDefinition(flowHolder); }
public synchronized FlowDefinition getFlowDefinition() throws FlowDefinitionConstructionException { if (assembling) { // must return early assembly result for when a flow calls itself recursively return getFlowBuilder().getFlow(); } if (flowDefinition == null) { logger.debug("Assembling the flow for the first time"); assembleFlow(); } else { if (flowDefinition.inDevelopment() && getFlowBuilder().hasFlowChanged()) { logger.debug("The flow under development has changed; reassembling..."); assembleFlow(); } } return flowDefinition; }
public synchronized void refresh() throws FlowDefinitionConstructionException { assembleFlow(); }
private FlowDefinitionHolder createFlowDefinitionHolder(FlowDefinitionResource flowResource) { FlowBuilder builder = createFlowBuilder(flowResource); FlowBuilderContext builderContext = new FlowBuilderContextImpl(flowResource.getId(), flowResource .getAttributes(), flowRegistry, flowBuilderServices); FlowAssembler assembler = new FlowAssembler(builder, builderContext); return new DefaultFlowHolder(assembler); }
public synchronized FlowDefinition getFlowDefinition() throws FlowDefinitionConstructionException { if (assembling) { // must return early assembly result for when a flow calls itself recursively return getFlowBuilder().getFlow(); } if (flowDefinition == null) { logger.debug("Assembling the flow for the first time"); assembleFlow(); } else { if (flowDefinition.inDevelopment() && getFlowBuilder().hasFlowChanged()) { logger.debug("The flow under development has changed; reassembling..."); assembleFlow(); } } return flowDefinition; }
private FlowDefinitionHolder createFlowDefinitionHolder(FlowDefinitionResource flowResource) { FlowBuilder builder = createFlowBuilder(flowResource); FlowBuilderContext builderContext = new FlowBuilderContextImpl(flowResource.getId(), flowResource.getAttributes(), flowRegistry, flowBuilderServices); FlowAssembler assembler = new FlowAssembler(builder, builderContext); return new DefaultFlowHolder(assembler); }
/** * Register a flow resource into the registry. * * @param resource the flow resource * @param flowRegistry the registry */ private void registerFlow(@Nonnull final FlowDefinitionResource resource, @Nonnull final DefaultFlowRegistry flowRegistry) { FlowModelBuilder flowModelBuilder = null; if (resource.getPath().getFilename().endsWith(".xml")) { flowModelBuilder = new XmlFlowModelBuilder(resource.getPath(), flowRegistry.getFlowModelRegistry()); } else { throw new IllegalArgumentException(resource + " is not a supported resource type; supported types are [.xml]"); } final FlowModelHolder flowModelHolder = new DefaultFlowModelHolder(flowModelBuilder); final FlowBuilder flowBuilder = new FlowModelFlowBuilder(flowModelHolder); final FlowBuilderContext builderContext = new FlowBuilderContextImpl( resource.getId(), resource.getAttributes(), flowRegistry, this.flowBuilderServices); final FlowAssembler assembler = new FlowAssembler(flowBuilder, builderContext); final DefaultFlowHolder flowHolder = new DefaultFlowHolder(assembler); flowRegistry.getFlowModelRegistry().registerFlowModel(resource.getId(), flowModelHolder); flowRegistry.registerFlowDefinition(flowHolder); log.debug("Registered flow ID '{}' using '{}'", resource.getId(), resource.getPath()); }
private void registerFlow(FlowDefinitionResource resource, DefaultFlowRegistry flowRegistry) { FlowModelBuilder flowModelBuilder; if (resource.getPath().getFilename().endsWith(".xml")) { flowModelBuilder = new XmlFlowModelBuilder(resource.getPath(), flowRegistry.getFlowModelRegistry()); } else { throw new IllegalArgumentException(resource + " is not a supported resource type; supported types are [.xml]"); } FlowModelHolder flowModelHolder = new DefaultFlowModelHolder(flowModelBuilder); FlowBuilder flowBuilder = new FlowModelFlowBuilder(flowModelHolder); FlowBuilderContext builderContext = new FlowBuilderContextImpl( resource.getId(), resource.getAttributes(), flowRegistry, this.flowBuilderServices); FlowAssembler assembler = new FlowAssembler(flowBuilder, builderContext); DefaultFlowHolder flowHolder = new DefaultFlowHolder(assembler); flowRegistry.getFlowModelRegistry().registerFlowModel(resource.getId(), flowModelHolder); flowRegistry.registerFlowDefinition(flowHolder); }
protected void setUp() { MockFlowBuilderContext context = new MockFlowBuilderContext("flowId"); context.getFlowBuilderServices().setApplicationContext(new StaticApplicationContext()); FlowAssembler assembler = new FlowAssembler(new SimpleFlowBuilder(), context); holder = new DefaultFlowHolder(assembler); }