protected List<String> resolveVariables(List<String> events) { return events.stream().map( event -> resolveVariable(event)).collect(Collectors.toList()); }
public String[] getEventTypes() { return externalEventListeners.keySet().stream().map(type -> resolveVariable(type)).collect(Collectors.toList()).toArray(new String[externalEventListeners.size()]); }
private String resolveVariable(String s) { return resolveVariable(s, new ProcessInstanceResolverFactory(this)); }
private Function<String, String> getResolver(Node node, String type, List<NodeInstance> currentView) { if (node instanceof DynamicNode) { // special handling for dynamic node to allow to resolve variables from individual node instances of the dynamic node // instead of just relying on process instance's variables return (e) -> { List<NodeInstance> nodeInstances = getNodeInstances(node.getId(), currentView); if (nodeInstances != null && !nodeInstances.isEmpty()) { StringBuilder st = new StringBuilder(); for (NodeInstance ni : nodeInstances) { String result = resolveVariable(e, new NodeInstanceResolverFactory(ni)); st.append(result).append("###"); } return st.toString(); } else { return resolveVariable(e); } }; } else { return (e) -> resolveVariable(e); } }
public TimerInstance configureSLATimer(String slaDueDateExpression) { // setup SLA if provided slaDueDateExpression = resolveVariable(slaDueDateExpression); if (slaDueDateExpression == null || slaDueDateExpression.trim().isEmpty()) { logger.debug("Sla due date expression resolved to no value '{}'", slaDueDateExpression); return null; } logger.debug("SLA due date is set to {}", slaDueDateExpression); InternalKnowledgeRuntime kruntime = getKnowledgeRuntime(); long duration = -1; if (kruntime != null && kruntime.getEnvironment().get("jbpm.business.calendar") != null){ BusinessCalendar businessCalendar = (BusinessCalendar) kruntime.getEnvironment().get("jbpm.business.calendar"); duration = businessCalendar.calculateBusinessTimeAsDuration(slaDueDateExpression); } else { duration = DateTimeUtils.parseDuration(slaDueDateExpression); } TimerInstance timerInstance = new TimerInstance(); timerInstance.setId(-1); timerInstance.setDelay(duration); timerInstance.setPeriod(0); if (useTimerSLATracking()) { ((InternalProcessRuntime)kruntime.getProcessRuntime()).getTimerManager().registerTimer(timerInstance, this); } return timerInstance; }
private void registerExternalEventNodeListeners() { for (Node node : getWorkflowProcess().getNodes()) { if (node instanceof EventNode) { if ("external".equals(((EventNode) node).getScope())) { addEventListener(((EventNode) node).getType(), EMPTY_EVENT_LISTENER, true); } } else if (node instanceof EventSubProcessNode) { List<String> events = ((EventSubProcessNode) node).getEvents(); for (String type : events) { addEventListener(type, EMPTY_EVENT_LISTENER, true); if (isVariableExpression(type)) { addEventListener(resolveVariable(type), EMPTY_EVENT_LISTENER, true); } } } else if (node instanceof DynamicNode) { if (((DynamicNode) node).getActivationEventName() != null) { addEventListener(((DynamicNode) node).getActivationEventName(), EMPTY_EVENT_LISTENER, true); } } } if( getWorkflowProcess().getMetaData().containsKey("Compensation") ) { addEventListener("Compensation", new CompensationEventListener(this), true); } }
protected List<String> resolveVariables(List<String> events) { return events.stream().map( event -> resolveVariable(event)).collect(Collectors.toList()); }
public String[] getEventTypes() { return externalEventListeners.keySet().stream().map(type -> resolveVariable(type)).collect(Collectors.toList()).toArray(new String[externalEventListeners.size()]); }
private String resolveVariable(String s) { return resolveVariable(s, new ProcessInstanceResolverFactory(this)); }
private Function<String, String> getResolver(Node node, String type, List<NodeInstance> currentView) { if (node instanceof DynamicNode) { // special handling for dynamic node to allow to resolve variables from individual node instances of the dynamic node // instead of just relying on process instance's variables return (e) -> { List<NodeInstance> nodeInstances = getNodeInstances(node.getId(), currentView); if (nodeInstances != null && !nodeInstances.isEmpty()) { StringBuilder st = new StringBuilder(); for (NodeInstance ni : nodeInstances) { String result = resolveVariable(e, new NodeInstanceResolverFactory(ni)); st.append(result).append("###"); } return st.toString(); } else { return resolveVariable(e); } }; } else { return (e) -> resolveVariable(e); } }
public TimerInstance configureSLATimer(String slaDueDateExpression) { // setup SLA if provided slaDueDateExpression = resolveVariable(slaDueDateExpression); if (slaDueDateExpression == null || slaDueDateExpression.trim().isEmpty()) { logger.debug("Sla due date expression resolved to no value '{}'", slaDueDateExpression); return null; } logger.debug("SLA due date is set to {}", slaDueDateExpression); InternalKnowledgeRuntime kruntime = getKnowledgeRuntime(); long duration = -1; if (kruntime != null && kruntime.getEnvironment().get("jbpm.business.calendar") != null){ BusinessCalendar businessCalendar = (BusinessCalendar) kruntime.getEnvironment().get("jbpm.business.calendar"); duration = businessCalendar.calculateBusinessTimeAsDuration(slaDueDateExpression); } else { duration = DateTimeUtils.parseDuration(slaDueDateExpression); } TimerInstance timerInstance = new TimerInstance(); timerInstance.setId(-1); timerInstance.setDelay(duration); timerInstance.setPeriod(0); if (useTimerSLATracking()) { ((InternalProcessRuntime)kruntime.getProcessRuntime()).getTimerManager().registerTimer(timerInstance, this); } return timerInstance; }
private void registerExternalEventNodeListeners() { for (Node node : getWorkflowProcess().getNodes()) { if (node instanceof EventNode) { if ("external".equals(((EventNode) node).getScope())) { addEventListener(((EventNode) node).getType(), EMPTY_EVENT_LISTENER, true); } } else if (node instanceof EventSubProcessNode) { List<String> events = ((EventSubProcessNode) node).getEvents(); for (String type : events) { addEventListener(type, EMPTY_EVENT_LISTENER, true); if (isVariableExpression(type)) { addEventListener(resolveVariable(type), EMPTY_EVENT_LISTENER, true); } } } else if (node instanceof DynamicNode) { if (((DynamicNode) node).getActivationEventName() != null) { addEventListener(((DynamicNode) node).getActivationEventName(), EMPTY_EVENT_LISTENER, true); } } } if( getWorkflowProcess().getMetaData().containsKey("Compensation") ) { addEventListener("Compensation", new CompensationEventListener(this), true); } }