Skip to content

Commit 3433ece

Browse files
committed
Deprecate OptimizedAutowireCapableBeanFactory
1 parent 1c17a06 commit 3433ece

File tree

6 files changed

+8
-73
lines changed

6 files changed

+8
-73
lines changed

grails-core/src/main/groovy/grails/boot/GrailsApp.groovy

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package grails.boot
22

3-
import grails.boot.config.tools.SettingsFile
43
import grails.compiler.ast.ClassInjector
54
import grails.core.GrailsApplication
65
import grails.io.IOUtils
@@ -23,16 +22,12 @@ import org.grails.io.watch.DirectoryWatcher
2322
import org.grails.io.watch.FileExtensionFileChangeListener
2423
import org.grails.plugins.BinaryGrailsPlugin
2524
import org.grails.plugins.support.WatchPattern
26-
import org.grails.spring.beans.factory.OptimizedAutowireCapableBeanFactory
27-
import org.springframework.beans.factory.support.DefaultListableBeanFactory
2825
import org.springframework.boot.SpringApplication
2926
import org.springframework.context.ConfigurableApplicationContext
30-
import org.springframework.context.support.GenericApplicationContext
3127
import org.springframework.core.env.ConfigurableEnvironment
32-
import org.springframework.util.ReflectionUtils
3328

34-
import java.lang.reflect.Field
3529
import java.util.concurrent.ConcurrentLinkedQueue
30+
3631
/**
3732
* Extends the {@link SpringApplication} with reloading behavior and other Grails features
3833
*
@@ -73,7 +68,6 @@ class GrailsApp extends SpringApplication {
7368
protected ConfigurableApplicationContext createApplicationContext() {
7469
ConfigurableApplicationContext applicationContext = super.createApplicationContext()
7570

76-
applyAutowireByNamePerformanceOptimization(applicationContext)
7771
if(enableBeanCreationProfiler) {
7872
def processor = new BeanCreationProfilingPostProcessor()
7973
applicationContext.getBeanFactory().addBeanPostProcessor(processor)
@@ -82,17 +76,6 @@ class GrailsApp extends SpringApplication {
8276
return applicationContext
8377
}
8478

85-
// SPR-11864 workaround
86-
protected void applyAutowireByNamePerformanceOptimization(ConfigurableApplicationContext configurableApplicationContext) {
87-
if(configurableApplicationContext instanceof GenericApplicationContext) {
88-
Field beanFactoryField = ReflectionUtils.findField(GenericApplicationContext, "beanFactory", DefaultListableBeanFactory)
89-
ReflectionUtils.makeAccessible(beanFactoryField)
90-
91-
def beanFactory = new OptimizedAutowireCapableBeanFactory()
92-
ReflectionUtils.setField(beanFactoryField, configurableApplicationContext, beanFactory)
93-
}
94-
}
95-
9679
@Override
9780
protected void configureEnvironment(ConfigurableEnvironment environment, String[] args) {
9881
configurePropertySources(environment, args)

grails-core/src/main/groovy/org/grails/plugins/CoreGrailsPlugin.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import org.grails.spring.aop.autoproxy.GroovyAwareAspectJAwareAdvisorAutoProxyCr
2929
import org.grails.spring.aop.autoproxy.GroovyAwareInfrastructureAdvisorAutoProxyCreator
3030
import org.grails.spring.context.support.GrailsPlaceholderConfigurer
3131
import org.grails.spring.context.support.MapBasedSmartPropertyOverrideConfigurer
32-
import org.grails.spring.beans.factory.OptimizedAutowireCapableBeanFactory
3332
import org.grails.spring.RuntimeSpringConfigUtilities
3433
import org.grails.core.io.DefaultResourceLocator
3534
import org.grails.spring.beans.GrailsApplicationAwareBeanPostProcessor
@@ -41,6 +40,7 @@ import grails.core.support.proxy.DefaultProxyHandler
4140
import org.springframework.beans.factory.config.CustomEditorConfigurer
4241
import org.springframework.beans.factory.config.MethodInvokingFactoryBean
4342
import org.springframework.beans.factory.config.YamlProcessor
43+
import org.springframework.beans.factory.support.DefaultListableBeanFactory
4444
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader
4545
import org.springframework.boot.yaml.SpringProfileDocumentMatcher
4646
import org.springframework.context.annotation.AnnotationConfigUtils
@@ -178,7 +178,7 @@ class CoreGrailsPlugin extends Plugin {
178178
if (event.source instanceof Resource) {
179179
Resource res = (Resource)event.source
180180
if(res.filename.endsWith('.xml')) {
181-
def xmlBeans = new OptimizedAutowireCapableBeanFactory()
181+
def xmlBeans = new DefaultListableBeanFactory()
182182
new XmlBeanDefinitionReader(xmlBeans).loadBeanDefinitions(res)
183183
for(String beanName in xmlBeans.beanDefinitionNames) {
184184
applicationContext.registerBeanDefinition(beanName, xmlBeans.getBeanDefinition(beanName))

grails-core/src/main/groovy/org/grails/spring/beans/factory/OptimizedAutowireCapableBeanFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
* @author Graeme Rocher
5252
* @author Lari Hotari
5353
*/
54+
@Deprecated
5455
public class OptimizedAutowireCapableBeanFactory extends DefaultListableBeanFactory {
5556

5657
public static boolean DISABLE_AUTOWIRE_BY_NAME_OPTIMIZATIONS = Boolean.getBoolean("grails.disable.optimization.autowirebyname");

grails-plugin-testing/src/main/groovy/grails/test/runtime/GrailsApplicationTestPlugin.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,10 @@ class GrailsApplicationTestPlugin implements TestPlugin {
113113
ConfigurableApplicationContext context
114114

115115
if(isServletApiPresent && servletContext != null) {
116-
context = (ConfigurableApplicationContext)ClassUtils.forName("org.springframework.web.context.support.GenericWebApplicationContext").newInstance( new OptimizedAutowireCapableBeanFactory(), servletContext);
116+
context = (ConfigurableApplicationContext)ClassUtils.forName("org.springframework.web.context.support.GenericWebApplicationContext").newInstance( servletContext);
117117
}
118118
else {
119-
context = (ConfigurableApplicationContext)ClassUtils.forName("org.springframework.context.support.GenericApplicationContext").newInstance( new OptimizedAutowireCapableBeanFactory());
119+
context = (ConfigurableApplicationContext)ClassUtils.forName("org.springframework.context.support.GenericApplicationContext").newInstance();
120120
}
121121

122122

grails-test-suite-uber/src/test/groovy/org/grails/commons/spring/OptimizedAutowireCapableBeanFactorySpec.groovy

Lines changed: 0 additions & 48 deletions
This file was deleted.

grails-web/src/main/groovy/grails/web/servlet/context/GrailsWebApplicationContext.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
import grails.core.GrailsApplication;
2424
import grails.web.servlet.context.support.GrailsEnvironment;
25-
import org.grails.spring.beans.factory.OptimizedAutowireCapableBeanFactory;
2625
import org.grails.spring.GrailsApplicationContext;
2726
import org.springframework.beans.BeansException;
2827
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
@@ -59,7 +58,7 @@ public class GrailsWebApplicationContext extends GrailsApplicationContext
5958
private GrailsApplication grailsApplication;
6059

6160
public GrailsWebApplicationContext() throws BeansException {
62-
super(new OptimizedAutowireCapableBeanFactory());
61+
super();
6362
}
6463

6564
public GrailsWebApplicationContext(GrailsApplication grailsApplication) {
@@ -68,7 +67,7 @@ public GrailsWebApplicationContext(GrailsApplication grailsApplication) {
6867
}
6968

7069
public GrailsWebApplicationContext(ApplicationContext parent) throws BeansException {
71-
this(new OptimizedAutowireCapableBeanFactory(), parent);
70+
super(parent);
7271
}
7372

7473
public GrailsWebApplicationContext(DefaultListableBeanFactory defaultListableBeanFactory, GrailsApplication grailsApplication) {

0 commit comments

Comments
 (0)