[New] Added Controller.stop()
This commit is contained in:
parent
2467202502
commit
b7c6d475bb
|
@ -12,9 +12,6 @@ import li.strolch.agent.api.ObserverEvent;
|
||||||
import li.strolch.agent.api.StrolchRealm;
|
import li.strolch.agent.api.StrolchRealm;
|
||||||
import li.strolch.execution.command.*;
|
import li.strolch.execution.command.*;
|
||||||
import li.strolch.execution.policy.ExecutionPolicy;
|
import li.strolch.execution.policy.ExecutionPolicy;
|
||||||
import li.strolch.model.log.LogMessage;
|
|
||||||
import li.strolch.model.log.LogMessageState;
|
|
||||||
import li.strolch.model.log.LogSeverity;
|
|
||||||
import li.strolch.handler.operationslog.OperationsLog;
|
import li.strolch.handler.operationslog.OperationsLog;
|
||||||
import li.strolch.model.Locator;
|
import li.strolch.model.Locator;
|
||||||
import li.strolch.model.Resource;
|
import li.strolch.model.Resource;
|
||||||
|
@ -22,8 +19,10 @@ import li.strolch.model.State;
|
||||||
import li.strolch.model.Tags;
|
import li.strolch.model.Tags;
|
||||||
import li.strolch.model.activity.Action;
|
import li.strolch.model.activity.Action;
|
||||||
import li.strolch.model.activity.Activity;
|
import li.strolch.model.activity.Activity;
|
||||||
|
import li.strolch.model.log.LogMessage;
|
||||||
|
import li.strolch.model.log.LogMessageState;
|
||||||
|
import li.strolch.model.log.LogSeverity;
|
||||||
import li.strolch.persistence.api.StrolchTransaction;
|
import li.strolch.persistence.api.StrolchTransaction;
|
||||||
import li.strolch.privilege.base.PrivilegeException;
|
|
||||||
import li.strolch.privilege.model.Certificate;
|
import li.strolch.privilege.model.Certificate;
|
||||||
import li.strolch.runtime.privilege.PrivilegedRunnable;
|
import li.strolch.runtime.privilege.PrivilegedRunnable;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -34,8 +33,8 @@ public class Controller {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(Controller.class);
|
private static final Logger logger = LoggerFactory.getLogger(Controller.class);
|
||||||
|
|
||||||
private final String realm;
|
private final String realm;
|
||||||
private ComponentContainer container;
|
private final ComponentContainer container;
|
||||||
private ExecutionHandler executionHandler;
|
private final ExecutionHandler executionHandler;
|
||||||
|
|
||||||
private final String activityType;
|
private final String activityType;
|
||||||
private final String activityId;
|
private final String activityId;
|
||||||
|
@ -43,7 +42,7 @@ public class Controller {
|
||||||
|
|
||||||
private Activity activity;
|
private Activity activity;
|
||||||
|
|
||||||
private Map<Locator, ExecutionPolicy> inExecution;
|
private final Map<Locator, ExecutionPolicy> inExecution;
|
||||||
|
|
||||||
public Controller(String realm, ExecutionHandler executionHandler, Activity activity) {
|
public Controller(String realm, ExecutionHandler executionHandler, Activity activity) {
|
||||||
this.realm = realm;
|
this.realm = realm;
|
||||||
|
@ -93,7 +92,7 @@ public class Controller {
|
||||||
return this.executionHandler.openTx(this.realm, cert, getClass(), false);
|
return this.executionHandler.openTx(this.realm, cert, getClass(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void runAsAgent(PrivilegedRunnable runnable) throws PrivilegeException, Exception {
|
protected void runAsAgent(PrivilegedRunnable runnable) throws Exception {
|
||||||
this.executionHandler.runAsAgent(runnable);
|
this.executionHandler.runAsAgent(runnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,6 +127,15 @@ public class Controller {
|
||||||
this.executionHandler.triggerExecution(this.realm);
|
this.executionHandler.triggerExecution(this.realm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stops the execution of all actions
|
||||||
|
*/
|
||||||
|
public void stop() {
|
||||||
|
synchronized (this.inExecution) {
|
||||||
|
this.inExecution.values().forEach(ExecutionPolicy::stop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean execute(StrolchTransaction tx) {
|
private boolean execute(StrolchTransaction tx) {
|
||||||
if (!refreshActivity(tx))
|
if (!refreshActivity(tx))
|
||||||
return false;
|
return false;
|
||||||
|
@ -301,8 +309,8 @@ public class Controller {
|
||||||
if (this.container.hasComponent(OperationsLog.class)) {
|
if (this.container.hasComponent(OperationsLog.class)) {
|
||||||
this.container.getComponent(OperationsLog.class).addMessage(
|
this.container.getComponent(OperationsLog.class).addMessage(
|
||||||
new LogMessage(realm, SYSTEM_USER_AGENT, locator, LogSeverity.Exception,
|
new LogMessage(realm, SYSTEM_USER_AGENT, locator, LogSeverity.Exception,
|
||||||
LogMessageState.Information, ResourceBundle.getBundle("strolch-service"), "execution.handler.failed.error")
|
LogMessageState.Information, ResourceBundle.getBundle("strolch-service"),
|
||||||
.withException(e).value("reason", e));
|
"execution.handler.failed.error").withException(e).value("reason", e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -324,8 +332,8 @@ public class Controller {
|
||||||
if (this.container.hasComponent(OperationsLog.class)) {
|
if (this.container.hasComponent(OperationsLog.class)) {
|
||||||
this.container.getComponent(OperationsLog.class).addMessage(
|
this.container.getComponent(OperationsLog.class).addMessage(
|
||||||
new LogMessage(realm, SYSTEM_USER_AGENT, locator, LogSeverity.Exception,
|
new LogMessage(realm, SYSTEM_USER_AGENT, locator, LogSeverity.Exception,
|
||||||
LogMessageState.Information, ResourceBundle.getBundle("strolch-service"), "execution.handler.failed.warning")
|
LogMessageState.Information, ResourceBundle.getBundle("strolch-service"),
|
||||||
.withException(e).value("reason", e));
|
"execution.handler.failed.warning").withException(e).value("reason", e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue