import org.argeo.slc.execution.ExecutionSpecAttribute;
import org.argeo.slc.structure.StructureAware;
import org.argeo.slc.structure.StructureRegistry;
+import org.springframework.aop.scope.ScopedObject;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.validation.MapBindingResult;
public void run() {
try {
for (Runnable executable : executables) {
- doExecuteRunnable(executable);
+ this.doExecuteRunnable(executable);
}
} catch (RuntimeException e) {
if (failOnError)
@SuppressWarnings(value = { "unchecked" })
public void afterPropertiesSet() throws Exception {
+ if (path == null) {
+ if (name.charAt(0) == '/') {
+ path = name.substring(0, name.lastIndexOf('/'));
+ }
+ }
+
if (path != null) {
for (Runnable executable : executables) {
- if (executable instanceof StructureAware) {
+ if (executable instanceof StructureAware
+ && !(executable instanceof ScopedObject)) {
((StructureAware<TreeSPath>) executable).notifyCurrentPath(
registry, new TreeSPath(path));
} else if (executable instanceof DefaultExecutionFlow) {
// so we don't need to have DefaultExecutionFlow
// implementing StructureAware
+ // FIXME: probably has side effects
DefaultExecutionFlow flow = (DefaultExecutionFlow) executable;
- flow.setPath(path + '/' + flow.getName());
+ String newPath = path + '/' + flow.getName();
+ flow.setPath(newPath);
+ log.warn(newPath + " was forcibly set on " + flow);
}
}
}