/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.process.test; import java.util.ArrayList; import java.util.List; import org.jbpm.workflow.instance.impl.NodeInstanceImpl; import org.kie.api.event.process.ProcessCompletedEvent; import org.kie.api.event.process.ProcessEventListener; import org.kie.api.event.process.ProcessNodeLeftEvent; import org.kie.api.event.process.ProcessNodeTriggeredEvent; import org.kie.api.event.process.ProcessStartedEvent; import org.kie.api.event.process.ProcessVariableChangedEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestProcessEventListener implements ProcessEventListener { private Logger logger = LoggerFactory.getLogger(this.getClass()); private List<String> eventHistory = new ArrayList<String>(); @Override public void beforeProcessStarted(ProcessStartedEvent event) { logAndAdd("bps"); } @Override public void afterProcessStarted(ProcessStartedEvent event) { logAndAdd("aps"); } @Override public void beforeProcessCompleted(ProcessCompletedEvent event) { logAndAdd("bpc"); } @Override public void afterProcessCompleted(ProcessCompletedEvent event) { logAndAdd("apc"); } @Override public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { logAndAdd("bnt-" + ((NodeInstanceImpl) event.getNodeInstance()).getUniqueId()); } @Override public void afterNodeTriggered(ProcessNodeTriggeredEvent event) { logAndAdd("ant-" + ((NodeInstanceImpl) event.getNodeInstance()).getUniqueId()); } @Override public void beforeNodeLeft(ProcessNodeLeftEvent event) { logAndAdd("bnl-" + ((NodeInstanceImpl) event.getNodeInstance()).getUniqueId()); } @Override public void afterNodeLeft(ProcessNodeLeftEvent event) { logAndAdd("anl-" + ((NodeInstanceImpl) event.getNodeInstance()).getUniqueId()); } @Override public void beforeVariableChanged(ProcessVariableChangedEvent event) { logAndAdd("bvc-" + event.getVariableId()); } @Override public void afterVariableChanged(ProcessVariableChangedEvent event) { logAndAdd("avc-" + event.getVariableId()); } public List<String> getEventHistory() { return eventHistory; } private void logAndAdd(String event) { logger.trace(event); eventHistory.add(event); } }