/*
- * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ * Copyright (C) 2007-2012 Argeo GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.argeo.slc.core.execution;
import org.apache.commons.logging.Log;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.config.Scope;
+/**
+ * When Spring beans are instantiated with this scope, the same instance is
+ * reused across an execution.
+ */
public class ExecutionScope implements Scope {
private final static Log log = LogFactory.getLog(ExecutionScope.class);
}
public void registerDestructionCallback(String name, Runnable callback) {
- // TODO: implement it
- // throw new UnsupportedOperationException();
+ if (Thread.currentThread() instanceof ExecutionThread) {
+ ExecutionThread executionThread = (ExecutionThread) Thread
+ .currentThread();
+ executionThread.registerDestructionCallback(name, callback);
+ }
}
public Object remove(String name) {
throw new UnsupportedOperationException();
}
+ public Object resolveContextualObject(String key) {
+ return executionContext.get().getVariable(key);
+ }
+
}