use of com.cognifide.cq.cqsm.core.sessions.SessionSavingPolicy in project APM by Cognifide.
the class ScriptManagerImpl method execute.
private Progress execute(Script script, final Mode mode, Map<String, String> customDefinitions, ResourceResolver resolver) throws ExecutionException, RepositoryException {
if (script == null) {
throw new ExecutionException("Script is not specified");
}
if (mode == null) {
throw new ExecutionException("Execution mode is not specified");
}
final String path = script.getPath();
actionFactory.update();
LOG.info(String.format("Script execution started: %s [%s]", path, mode));
Progress progress = new ProgressImpl(resolver.getUserID());
final List<ActionDescriptor> descriptors = parseAllDescriptors(script, customDefinitions, resolver);
final ActionExecutor actionExecutor = createExecutor(mode, resolver);
final Context context = actionExecutor.getContext();
final SessionSavingPolicy savingPolicy = context.getSavingPolicy();
eventManager.trigger(Event.BEFORE_EXECUTE, script, mode, progress);
for (ActionDescriptor descriptor : descriptors) {
ActionResult result = actionExecutor.execute(descriptor);
progress.addEntry(descriptor, result);
if ((Status.ERROR == result.getStatus()) && (Mode.DRY_RUN != mode)) {
eventManager.trigger(Event.AFTER_EXECUTE, script, mode, progress);
return progress;
}
savingPolicy.save(context.getSession(), SessionSavingMode.EVERY_ACTION);
}
savingPolicy.save(context.getSession(), SessionSavingMode.SINGLE);
eventManager.trigger(Event.AFTER_EXECUTE, script, mode, progress);
return progress;
}
use of com.cognifide.cq.cqsm.core.sessions.SessionSavingPolicy in project APM by Cognifide.
the class SessionSave method process.
private ActionResult process(final Context context, boolean execute) {
ActionResult actionResult = new ActionResult();
if (execute) {
try {
SessionSavingMode savingMode = SessionSavingMode.valueOfMode(mode);
SessionSavingPolicy savingPolicy = context.getSavingPolicy();
savingPolicy.setMode(savingMode);
actionResult.logMessage("Session saving mode set to: " + mode);
} catch (IllegalArgumentException e) {
actionResult.logError(MessagingUtils.createMessage(e));
}
}
return actionResult;
}
Aggregations