Java源码示例:org.camunda.bpm.engine.impl.bpmn.parser.BpmnParseListener

示例1
@Override
public void preInit(SpringProcessEngineConfiguration processEngineConfiguration) {
    super.preInit(processEngineConfiguration);

    List<BpmnParseListener> preParseListeners = processEngineConfiguration.getCustomPreBPMNParseListeners();
    if (preParseListeners == null) {
        preParseListeners = new ArrayList<BpmnParseListener>();
        processEngineConfiguration.setCustomPreBPMNParseListeners(preParseListeners);
    }

    log.info("adding LocalBpmnParseListener:{}", processStartAndEndEventInitializer.getClass().getName());

    preParseListeners.add(processStartAndEndEventInitializer);
}
 
示例2
@Override
public void preInit(ProcessEngineConfigurationImpl processEngineConfiguration) {
	if (processEngineConfiguration.getCustomPostBPMNParseListeners() == null) {
		processEngineConfiguration.setCustomPostBPMNParseListeners(new ArrayList<BpmnParseListener>());
	}
	processEngineConfiguration.getCustomPostBPMNParseListeners().add(new AddSendEventListenerToBpmnParseListener());

}
 
示例3
private static void initializePathCoverageParseListener(ProcessEngineConfigurationImpl configuration) {
    List<BpmnParseListener> bpmnParseListeners = configuration.getCustomPostBPMNParseListeners();
    if (bpmnParseListeners == null) {
        bpmnParseListeners = new LinkedList<BpmnParseListener>();
        configuration.setCustomPostBPMNParseListeners(bpmnParseListeners);
    }

    bpmnParseListeners.add(new PathCoverageParseListener());
}
 
示例4
private ProcessEngine createProcessEngine() {
  StandaloneInMemProcessEngineConfiguration configuration = new StandaloneInMemProcessEngineConfiguration();
  configuration.setCustomPreBPMNParseListeners(Collections.<BpmnParseListener> singletonList(eventBridgeActivator));
  configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
  ProcessEngineFactoryWithELResolver engineFactory = new ProcessEngineFactoryWithELResolver();
  engineFactory.setProcessEngineConfiguration(configuration);
  engineFactory.setBundle(bundleContext.getBundle());
  engineFactory.setExpressionManager(new OSGiExpressionManager());
  engineFactory.init();
  return engineFactory.getObject();
}
 
示例5
private void addConnectorParseListener(ProcessEngineConfigurationImpl processEngineConfiguration) {
  List<BpmnParseListener> preParseListeners = processEngineConfiguration.getCustomPreBPMNParseListeners();
  if(preParseListeners == null) {
    preParseListeners = new ArrayList<BpmnParseListener>();
    processEngineConfiguration.setCustomPreBPMNParseListeners(preParseListeners);
  }
  preParseListeners.add(new ConnectorParseListener());
}
 
示例6
public void preInit(ProcessEngineConfigurationImpl processEngineConfiguration) {
  List<BpmnParseListener> preParseListeners = processEngineConfiguration.getCustomPreBPMNParseListeners();
  if(preParseListeners == null) {
    preParseListeners = new ArrayList<BpmnParseListener>();
    processEngineConfiguration.setCustomPreBPMNParseListeners(preParseListeners);
  }
  preParseListeners.add(new ProcessApplicationEventParseListener());
}
 
示例7
protected List<BpmnParseListener> getDefaultBPMNParseListeners() {
  List<BpmnParseListener> defaultListeners = new ArrayList<>();
  if (!HistoryLevel.HISTORY_LEVEL_NONE.equals(historyLevel)) {
    defaultListeners.add(new HistoryParseListener(historyEventProducer));
  }
  if (isMetricsEnabled) {
    defaultListeners.add(new MetricsBpmnParseListener());
  }
  return defaultListeners;
}
 
示例8
@Override
public ProcessEngineConfiguration configureEngine(ProcessEngineConfigurationImpl configuration) {
  List<BpmnParseListener> listeners = new ArrayList<>();
  listeners.add(new AbstractBpmnParseListener(){

    @Override
    public void parseServiceTask(Element serviceTaskElement, ScopeImpl scope, ActivityImpl activity) {
      activity.setAsyncBefore(true);
      activity.setAsyncAfter(true);
    }
  });

  configuration.setCustomPreBPMNParseListeners(listeners);
  return configuration;
}
 
示例9
@Override
public ProcessEngineConfiguration configureEngine(ProcessEngineConfigurationImpl configuration) {
  List<BpmnParseListener> listeners = new ArrayList<>();
  listeners.add(new AbstractBpmnParseListener(){

    @Override
    public void parseServiceTask(Element serviceTaskElement, ScopeImpl scope, ActivityImpl activity) {
      activity.setAsyncBefore(true);
    }
  });

  configuration.setCustomPreBPMNParseListeners(listeners);
  return configuration;
}
 
示例10
@Override
public ProcessEngineConfiguration configureEngine(ProcessEngineConfigurationImpl configuration) {
  List<BpmnParseListener> listeners = new ArrayList<>();
  listeners.add(new AbstractBpmnParseListener(){

    @Override
    public void parseServiceTask(Element serviceTaskElement, ScopeImpl scope, ActivityImpl activity) {
      activity.setAsyncBefore(false);
      activity.setAsyncAfter(true);
    }
  });

  configuration.setCustomPreBPMNParseListeners(listeners);
  return configuration;
}
 
示例11
@Override
public ProcessEngineConfiguration configureEngine(ProcessEngineConfigurationImpl configuration) {
  List<BpmnParseListener> listeners = new ArrayList<>();
  listeners.add(new AbstractBpmnParseListener(){

    @Override
    public void parseServiceTask(Element serviceTaskElement, ScopeImpl scope, ActivityImpl activity) {
      activity.setAsyncBefore(false);
    }
  });

  configuration.setCustomPreBPMNParseListeners(listeners);
  return configuration;
}
 
示例12
public ActivityImpl parseServiceTaskLike(String elementName, Element serviceTaskElement, ScopeImpl scope) {
    logger.debug("parse service task like element,elementName={}", elementName);

    ActivityImpl activity = createActivityOnScope(serviceTaskElement, scope);

    String type = serviceTaskElement.attributeNS(CAMUNDA_BPMN_EXTENSIONS_NS, TYPE);
    String className = serviceTaskElement.attributeNS(CAMUNDA_BPMN_EXTENSIONS_NS, PROPERTYNAME_CLASS);
    String expression = serviceTaskElement.attributeNS(CAMUNDA_BPMN_EXTENSIONS_NS, PROPERTYNAME_EXPRESSION);
    String delegateExpression = serviceTaskElement.attributeNS(CAMUNDA_BPMN_EXTENSIONS_NS,
            PROPERTYNAME_DELEGATE_EXPRESSION);
    String resultVariableName = parseResultVariable(serviceTaskElement);

    parseAsynchronousContinuationForActivity(serviceTaskElement, activity);

    parseServiceTaskLikeAttributes(elementName, serviceTaskElement, scope, activity, type, className, expression,
            delegateExpression, resultVariableName);

    parseExecutionListenersOnScope(serviceTaskElement, activity);

    for (BpmnParseListener parseListener : parseListeners) {
        parseListener.parseServiceTask(serviceTaskElement, scope, activity);
    }

    if (activity.getActivityBehavior() == null) {
        String defaultDelegateExpression = "${taskDispatcher}";
        if (resultVariableName != null) {
            addError(PREFIX_ERROR_MSG_VARIABLE_NAME + elementName + " elements using 'delegateExpression'",
                    serviceTaskElement);
        }

        activity.setActivityBehavior(new ServiceTaskDelegateExpressionActivityBehavior(
                expressionManager.createExpression(defaultDelegateExpression),
                parseFieldDeclarations(serviceTaskElement)));
    }

    // activity behavior could be set by a listener (e.g. connector); thus,
    // check is after listener invocation
    if (activity.getActivityBehavior() == null) {
        addError("One of the attributes 'class', 'delegateExpression', 'type', or 'expression' is mandatory on "
                + elementName + ".", serviceTaskElement);
    }

    return activity;
}
 
示例13
protected void parseEndEvent(Element parentElement, ScopeImpl scope, Element endEventElement) {
    ActivityImpl activity = createActivityOnScope(endEventElement, scope);

    Element errorEventDefinition = endEventElement.element(ERROR_EVENT_DEFINITION);
    Element cancelEventDefinition = endEventElement.element(CANCEL_EVENT_DEFINITION);
    Element terminateEventDefinition = endEventElement.element("terminateEventDefinition");
    Element messageEventDefinitionElement = endEventElement.element(MESSAGE_EVENT_DEFINITION);
    Element signalEventDefinition = endEventElement.element(SIGNAL_EVENT_DEFINITION);
    Element compensateEventDefinitionElement = endEventElement.element(COMPENSATE_EVENT_DEFINITION);
    Element escalationEventDefinition = endEventElement.element(ESCALATION_EVENT_DEFINITION);

    if (errorEventDefinition != null) { // error end event
        parseErrorEventDefinition(parentElement, scope, endEventElement, activity, errorEventDefinition);
    } else if (cancelEventDefinition != null) {
        parseCancelEventDefinition(parentElement, scope, endEventElement, activity, cancelEventDefinition);
    } else if (terminateEventDefinition != null) {
        parseTerminateEventDefinition(parentElement, scope, endEventElement, activity, terminateEventDefinition);
    } else if (messageEventDefinitionElement != null) {
        parseMessageEventDefinitionElement(parentElement, scope, endEventElement, activity,
                messageEventDefinitionElement);
    } else if (signalEventDefinition != null) {
        parseSignalEventDefinition(parentElement, scope, endEventElement, activity, signalEventDefinition);
    } else if (compensateEventDefinitionElement != null) {
        parseCompensateEventDefinitionElement(parentElement, scope, endEventElement, activity,
                compensateEventDefinitionElement);
    } else if (escalationEventDefinition != null) {
        parseEscalationEventDefinition(parentElement, scope, endEventElement, activity, escalationEventDefinition);
    } else { // default: none end event
        activity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.END_EVENT_NONE);
        activity.setActivityBehavior(new NoneEndEventActivityBehavior());
    }

    if (activity != null) {
        parseActivityInputOutput(endEventElement, activity);
    }

    parseAsynchronousContinuationForActivity(endEventElement, activity);

    parseExecutionListenersOnScope(endEventElement, activity);

    for (BpmnParseListener parseListener : parseListeners) {
        parseListener.parseEndEvent(endEventElement, scope, activity);
    }
}
 
示例14
private static List<BpmnParseListener> customPreBPMNParseListeners(final ProcessEngineConfigurationImpl processEngineConfiguration) {
  if (processEngineConfiguration.getCustomPreBPMNParseListeners() == null) {
    processEngineConfiguration.setCustomPreBPMNParseListeners(new ArrayList<>());
  }
  return processEngineConfiguration.getCustomPreBPMNParseListeners();
}
 
示例15
public void addCustomPostBpmnParseListener(final BpmnParseListener bpmnParseListener) {
  getCustomPostBPMNParseListeners().add(Objects.requireNonNull(bpmnParseListener));
}
 
示例16
public List<BpmnParseListener> getCustomPreBPMNParseListeners() {
  return preParseListeners;
}
 
示例17
public void setCustomPreBPMNParseListeners(List<BpmnParseListener> preParseListeners) {
  this.preParseListeners = preParseListeners;
}
 
示例18
public List<BpmnParseListener> getCustomPostBPMNParseListeners() {
  return postParseListeners;
}
 
示例19
public void setCustomPostBPMNParseListeners(List<BpmnParseListener> postParseListeners) {
  this.postParseListeners = postParseListeners;
}
 
示例20
/**
 * @deprecated use {@link #getCustomPreBPMNParseListeners} instead.
 */
@Deprecated
public List<BpmnParseListener> getPreParseListeners() {
  return preParseListeners;
}
 
示例21
/**
 * @deprecated use {@link #setCustomPreBPMNParseListeners} instead.
 */
@Deprecated
public void setPreParseListeners(List<BpmnParseListener> preParseListeners) {
  this.preParseListeners = preParseListeners;
}
 
示例22
/**
 * @deprecated use {@link #getCustomPostBPMNParseListeners} instead.
 */
@Deprecated
public List<BpmnParseListener> getPostParseListeners() {
  return postParseListeners;
}
 
示例23
/**
 * @deprecated use {@link #setCustomPostBPMNParseListeners} instead.
 */
@Deprecated
public void setPostParseListeners(List<BpmnParseListener> postParseListeners) {
  this.postParseListeners = postParseListeners;
}
 
示例24
/**
 * Sets the test run state for the coverage listeners. logging.
 * {@see ProcessCoverageInMemProcessEngineConfiguration}
 */
private void initializeListenerRunState() {

    final ProcessEngineConfigurationImpl processEngineConfiguration = (ProcessEngineConfigurationImpl) processEngine.getProcessEngineConfiguration();

    // Configure activities listener

    final FlowNodeHistoryEventHandler historyEventHandler = (FlowNodeHistoryEventHandler) processEngineConfiguration.getHistoryEventHandler();
    historyEventHandler.setCoverageTestRunState(coverageTestRunState);

    // Configure sequence flow listener

    final List<BpmnParseListener> bpmnParseListeners = processEngineConfiguration.getCustomPostBPMNParseListeners();

    for (BpmnParseListener parseListener : bpmnParseListeners) {

        if (parseListener instanceof PathCoverageParseListener) {

            final PathCoverageParseListener listener = (PathCoverageParseListener) parseListener;
            listener.setCoverageTestRunState(coverageTestRunState);
        }
    }

    // Compensation event handler

    final EventHandler compensationEventHandler = processEngineConfiguration.getEventHandler("compensate");
    if (compensationEventHandler != null && compensationEventHandler instanceof CompensationEventCoverageHandler) {

        final CompensationEventCoverageHandler compensationEventCoverageHandler = (CompensationEventCoverageHandler) compensationEventHandler;
        compensationEventCoverageHandler.setCoverageTestRunState(coverageTestRunState);

    } else {
        logger.warning("CompensationEventCoverageHandler not registered with process engine configuration!"
                + " Compensation boundary events coverage will not be registered.");
    }

}