From: Rob H. <rob...@in...> - 2005-12-02 10:48:23
|
David, The scripting functionality is currently in an inconsistent state. I have been working on some modifications and a fix which will be released as part of the 1.3 M2/RC2 release branch. Until that time I would not recommend that anyone tries to use the current scripting support. Rob David Bowers wrote: > I was looking at the script support in the sandbox and trying to get > it to work. It looks like the structure around AutoProxy-ing has > changed its structure quite a bit since this sandbox code was written. > > In particular, the following line of code is in > AbstractAutowireCapableBeanFactory.createBean. Since the scripts are > created using factory methods, they don't have a class, and never run > through the BeanPostProcessor. > > // Give BeanPostProcessors a chance to return a proxy instead > of the target bean instance. > if (mergedBeanDefinition.hasBeanClass()) { > bean = > applyBeanPostProcessorsBeforeInstantiation(mergedBeanDefinition.getBeanClass(), > beanName); > if (bean != null) { > return bean; > } > } > > Later in the same method, after the bean is instantiated, I inserted > the following code: > bean = instanceWrapper.getWrappedInstance(); > if (!mergedBeanDefinition.hasBeanClass()) { > Object altBean = > applyBeanPostProcessorsBeforeInstantiation(bean.getClass(), beanName); > if (altBean != null) { > return altBean; > } > } > Yes, this is a big semantic violation to call a "beforeInstantiation" > method *after* instantiation. However, this, plus a few changes in > the sandbox, gets the Groovy support code to pass most of its tests! > Any ideas? > > Related to all this, I'm a bit surprised that the dynamic script > functionality has been dormant in the sandbox for so long. Am I the > only one who thinks this would be a powerful feature? Especially for > creating test stubs. Are other people using scripting support with > Spring in different ways? -- Rob Harrop Principal Consultant Interface21 - Spring Services from the Source http://www.springframework.com |