\r
public class InstantiationManager {\r
\r
- private final static Log log = LogFactory.getLog(DefaultExecutionSpec.class);\r
+ private final static Log log = LogFactory.getLog(InstantiationManager.class);\r
\r
private ThreadLocal<Stack<ExecutionFlow> > flowStack = new ThreadLocal<Stack<ExecutionFlow> >();\r
\r
public Object createRef(String name) {\r
+ \r
if((flowStack.get() == null) || flowStack.get().empty()) {\r
throw new SlcException("No flow is currently initializing."\r
- + " Declare flow refs as inner beans or prototypes.");\r
+ + " Declare ParameterRef as inner beans or prototypes.");\r
}\r
-\r
- /*\r
- * RefSpecAttribute refSpecAttribute = (RefSpecAttribute) attributes\r
- * .get(name); Class<?> targetClass = refSpecAttribute.getTargetClass();\r
- * ExecutionTargetSource targetSource = new ExecutionTargetSource(flow,\r
- * targetClass, name); ProxyFactory proxyFactory = new ProxyFactory();\r
- * proxyFactory.setTargetClass(targetClass);\r
- * proxyFactory.setProxyTargetClass(true);\r
- * proxyFactory.setTargetSource(targetSource);\r
- * \r
- * return proxyFactory.getProxy();\r
- */\r
- return flowStack.get().peek().getParameter(name);\r
+ \r
+ return getInitializingFlowParameter(name);\r
} \r
\r
public void flowInitializationStarted(ExecutionFlow flow, String flowName) {\r
if (log.isTraceEnabled())\r
log.trace("Start initialization of " + flow.hashCode() + " ("\r
+ flow + " - " + flow.getClass() + ")");\r
+ \r
+ // set the flow name if it is DefaultExecutionFlow\r
+ if(flow instanceof DefaultExecutionFlow) {\r
+ ((DefaultExecutionFlow) flow).setBeanName(flowName);\r
+ }\r
+ \r
// log.info("# flowInitializationStarted " + flowName);\r
// create a stack for this thread if there is none\r
if(flowStack.get() == null) {\r
}\r
}\r
throw new SlcException("Key " + key + " is not set as parameter in "\r
- + flowStack.get().firstElement().toString());\r
- \r
-// return flowStack.get().peek().getParameter(key);\r
+ + flowStack.get().firstElement().toString() + " (stack size="+flowStack.get().size()+")"); \r
}\r
\r
public Boolean isInFlowInitialization() {\r