public void registerFlowDefinition(FlowDefinitionHolder definitionHolder) { Assert.notNull(definitionHolder, "The holder of the flow definition to register is required"); if (logger.isDebugEnabled()) { logger.debug("Registering flow definition '" + definitionHolder.getFlowDefinitionResourceString() + "' under id '" + definitionHolder.getFlowDefinitionId() + "'"); } flowDefinitions.put(definitionHolder.getFlowDefinitionId(), definitionHolder); }
/** * Index given flow definition. * @param holder the holder holding the flow definition to index */ private void index(FlowDefinitionHolder holder) { Assert.hasText(holder.getFlowDefinitionId(), "The flow holder to index must return a non-blank flow id"); flowDefinitions.put(holder.getFlowDefinitionId(), holder); }
public void registerFlowDefinition(FlowDefinitionHolder definitionHolder) { Assert.notNull(definitionHolder, "The holder of the flow definition to register is required"); if (logger.isDebugEnabled()) { logger.debug("Registering flow definition '" + definitionHolder.getFlowDefinitionResourceString() + "' under id '" + definitionHolder.getFlowDefinitionId() + "'"); } flowDefinitions.put(definitionHolder.getFlowDefinitionId(), definitionHolder); }
public void registerFlowDefinition(FlowDefinitionHolder definitionHolder) { Assert.notNull(definitionHolder, "The holder of the flow definition to register is required"); if (logger.isDebugEnabled()) { logger.debug("Registering flow definition '" + definitionHolder.getFlowDefinitionResourceString() + "' under id '" + definitionHolder.getFlowDefinitionId() + "'"); } flowDefinitions.put(definitionHolder.getFlowDefinitionId(), definitionHolder); }
public void registerFlowDefinition(FlowDefinitionHolder flowHolder) { Assert.notNull(flowHolder, "The flow definition holder to register is required"); if (logger.isDebugEnabled()) { logger.debug("Registering flow definition with id '" + flowHolder.getFlowDefinitionId() + "'"); } index(flowHolder); }
public void refresh(String flowId) throws NoSuchFlowDefinitionException, FlowDefinitionConstructionException { if (logger.isDebugEnabled()) { logger.debug("Refreshing flow with id '" + flowId + "'"); } ClassLoader loader = Thread.currentThread().getContextClassLoader(); try { // workaround for JMX Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); FlowDefinitionHolder holder = getFlowDefinitionHolder(flowId); holder.refresh(); if (!holder.getFlowDefinitionId().equals(flowId)) { reindex(holder, flowId); } } finally { Thread.currentThread().setContextClassLoader(loader); } }
public void refresh() throws FlowDefinitionConstructionException { if (logger.isDebugEnabled()) { logger.debug("Refreshing flow definition registry '" + this + "'"); } ClassLoader loader = Thread.currentThread().getContextClassLoader(); try { // workaround for JMX Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); LinkedList needsReindexing = new LinkedList(); Iterator it = flowDefinitions.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String key = (String) entry.getKey(); FlowDefinitionHolder holder = (FlowDefinitionHolder) entry.getValue(); holder.refresh(); if (!holder.getFlowDefinitionId().equals(key)) { needsReindexing.add(new Indexed(key, holder)); } } it = needsReindexing.iterator(); while (it.hasNext()) { Indexed indexed = (Indexed) it.next(); reindex(indexed.holder, indexed.key); } } finally { Thread.currentThread().setContextClassLoader(loader); } }