use of com.evolveum.midpoint.xml.ns._public.common.common_3.EventHandlerType in project midpoint by Evolveum.
the class CategoryFilterHelper method processEvent.
@Override
public boolean processEvent(Event event, EventHandlerType eventHandlerType, NotificationManager notificationManager, Task task, OperationResult result) {
if (eventHandlerType.getCategory().isEmpty()) {
return true;
}
boolean retval = false;
logStart(LOGGER, event, eventHandlerType, eventHandlerType.getCategory());
for (EventCategoryType eventCategoryType : eventHandlerType.getCategory()) {
if (eventCategoryType == null) {
LOGGER.warn("Filtering on null EventCategoryType: " + eventHandlerType);
} else if (event.isCategoryType(eventCategoryType)) {
retval = true;
break;
}
}
logEnd(LOGGER, event, eventHandlerType, retval);
return retval;
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.EventHandlerType in project midpoint by Evolveum.
the class StatusFilterHelper method processEvent.
@Override
public boolean processEvent(Event event, EventHandlerType eventHandlerType, NotificationManager notificationManager, Task task, OperationResult result) {
if (eventHandlerType.getStatus().isEmpty()) {
return true;
}
logStart(LOGGER, event, eventHandlerType, eventHandlerType.getStatus());
boolean retval = false;
for (EventStatusType eventStatusType : eventHandlerType.getStatus()) {
if (eventStatusType == null) {
LOGGER.warn("Filtering on null eventStatusType; filter = " + eventHandlerType);
} else if (event.isStatusType(eventStatusType)) {
retval = true;
break;
}
}
logEnd(LOGGER, event, eventHandlerType, retval);
return retval;
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.EventHandlerType in project midpoint by Evolveum.
the class CustomNotifier method processEvent.
@Override
public boolean processEvent(Event event, EventHandlerType eventHandlerType, NotificationManager notificationManager, Task task, OperationResult parentResult) throws SchemaException {
OperationResult result = parentResult.createSubresult(CustomNotifier.class.getName() + ".processEvent");
logStart(getLogger(), event, eventHandlerType);
boolean applies = aggregatedEventHandler.processEvent(event, eventHandlerType, notificationManager, task, result);
if (applies) {
CustomNotifierType config = (CustomNotifierType) eventHandlerType;
ExpressionVariables variables = getDefaultVariables(event, result);
if (event instanceof ModelEvent) {
((ModelEvent) event).getModelContext().reportProgress(new ProgressInformation(NOTIFICATIONS, ENTERING));
}
List<String> transports = new ArrayList<>(config.getTransport());
if (transports.isEmpty()) {
transports.add(customTransport.getName());
}
try {
for (String transportName : config.getTransport()) {
variables.addVariableDefinition(SchemaConstants.C_TRANSPORT_NAME, transportName);
Transport transport = notificationManager.getTransport(transportName);
Message message = getMessageFromExpression(config, variables, task, result);
if (message != null) {
getLogger().trace("Sending notification via transport {}:\n{}", transportName, message);
transport.send(message, transportName, event, task, result);
} else {
getLogger().debug("No message for transport {}, won't send anything", transportName);
}
}
} finally {
if (event instanceof ModelEvent) {
((ModelEvent) event).getModelContext().reportProgress(new ProgressInformation(NOTIFICATIONS, result));
}
}
}
logEnd(getLogger(), event, eventHandlerType, applies);
result.computeStatusIfUnknown();
// not-applicable notifiers do not stop processing of other notifiers
return true;
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.EventHandlerType in project midpoint by Evolveum.
the class ChainHelper method processEvent.
@Override
public boolean processEvent(Event event, EventHandlerType eventHandlerType, NotificationManager notificationManager, Task task, OperationResult result) {
if (eventHandlerType.getChained().isEmpty()) {
return true;
}
logStart(LOGGER, event, eventHandlerType);
boolean shouldContinue = true;
for (EventHandlerType branchHandlerType : eventHandlerType.getChained()) {
shouldContinue = notificationManager.processEvent(event, branchHandlerType, task, result);
if (!shouldContinue) {
break;
}
}
logEnd(LOGGER, event, eventHandlerType, shouldContinue);
return shouldContinue;
}
use of com.evolveum.midpoint.xml.ns._public.common.common_3.EventHandlerType in project midpoint by Evolveum.
the class ForkHelper method processEvent.
@Override
public boolean processEvent(Event event, EventHandlerType eventHandlerType, NotificationManager notificationManager, Task task, OperationResult result) {
if (eventHandlerType.getForked().isEmpty()) {
return true;
}
logStart(LOGGER, event, eventHandlerType);
for (EventHandlerType branchHandlerType : eventHandlerType.getForked()) {
notificationManager.processEvent(event, branchHandlerType, task, result);
}
logEnd(LOGGER, event, eventHandlerType, true);
return true;
}
Aggregations