Skip to content

Commit 531c5de

Browse files
authored
Merge pull request #13876 from codeconsole/7.0.x-core-auto
Convert CoreConfiguration to CoreAutoConfiguration
2 parents 1fdfb32 + 4842cd9 commit 531c5de

File tree

7 files changed

+70
-60
lines changed

7 files changed

+70
-60
lines changed

grails-core/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ dependencies {
1010
api "org.springframework:spring-tx"
1111
api "org.springframework:spring-beans"
1212
api "org.springframework:spring-context"
13+
api "org.springframework.boot:spring-boot-autoconfigure"
1314

1415
compileOnly "org.springframework:spring-test"
1516
compileOnly "org.apache.groovy:groovy-templates"

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import org.grails.spring.DefaultRuntimeSpringConfiguration
2525
import org.grails.spring.RuntimeSpringConfiguration
2626
import org.grails.spring.aop.autoproxy.GroovyAwareAspectJAwareAdvisorAutoProxyCreator
2727
import org.grails.spring.aop.autoproxy.GroovyAwareInfrastructureAdvisorAutoProxyCreator
28-
import org.grails.spring.context.support.GrailsPlaceholderConfigurer
2928
import org.grails.spring.context.support.MapBasedSmartPropertyOverrideConfigurer
3029
import org.grails.spring.RuntimeSpringConfigUtilities
3130
import org.grails.core.io.DefaultResourceLocator
@@ -66,17 +65,12 @@ class CoreGrailsPlugin extends Plugin {
6665

6766
// Grails config as properties
6867
def config = application.config
69-
def placeHolderPrefix = config.getProperty(Settings.SPRING_PLACEHOLDER_PREFIX, '${')
70-
7168

7269
// enable post-processing of @Configuration beans defined by plugins
7370
grailsConfigurationClassPostProcessor ConfigurationClassPostProcessor
7471
grailsBeanOverrideConfigurer(MapBasedSmartPropertyOverrideConfigurer) {
7572
delegate.grailsApplication = application
7673
}
77-
propertySourcesPlaceholderConfigurer(GrailsPlaceholderConfigurer) {
78-
placeholderPrefix = placeHolderPrefix
79-
}
8074

8175
Class proxyCreatorClazz = null
8276
// replace AutoProxy advisor with Groovy aware one
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
* Copyright 2004-2019 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.grails.plugins.core;
18+
19+
import grails.config.ConfigProperties;
20+
import grails.config.Settings;
21+
import grails.core.GrailsApplication;
22+
import org.grails.spring.context.support.GrailsPlaceholderConfigurer;
23+
import org.springframework.beans.factory.annotation.Value;
24+
import org.springframework.boot.autoconfigure.AutoConfiguration;
25+
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
26+
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
27+
import org.springframework.context.annotation.Bean;
28+
import org.springframework.context.annotation.Primary;
29+
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
30+
import org.springframework.core.Ordered;
31+
32+
/**
33+
* Core beans.
34+
*
35+
* @author graemerocher
36+
* @since 4.0
37+
*/
38+
@AutoConfiguration(before = { PropertyPlaceholderAutoConfiguration.class })
39+
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
40+
public class CoreAutoConfiguration {
41+
42+
@Value("${" + Settings.SPRING_PLACEHOLDER_PREFIX + ":#{null}}")
43+
private String placeholderPrefix;
44+
45+
@Bean
46+
@Primary
47+
public ClassLoader classLoader(GrailsApplication grailsApplication) {
48+
return grailsApplication.getClassLoader();
49+
}
50+
51+
@Bean
52+
@Primary
53+
public ConfigProperties grailsConfigProperties(GrailsApplication grailsApplication) {
54+
return new ConfigProperties(grailsApplication.getConfig());
55+
}
56+
57+
@Bean
58+
@Primary
59+
PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
60+
GrailsPlaceholderConfigurer grailsPlaceholderConfigurer = new GrailsPlaceholderConfigurer();
61+
if (placeholderPrefix != null) {
62+
grailsPlaceholderConfigurer.setPlaceholderPrefix(placeholderPrefix);
63+
}
64+
return grailsPlaceholderConfigurer;
65+
}
66+
}

grails-core/src/main/groovy/org/grails/plugins/core/CoreConfiguration.java

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
org.grails.plugins.core.CoreConfiguration
1+
org.grails.plugins.core.CoreAutoConfiguration

grails-core/src/test/groovy/grails/spring/GrailsPlaceHolderConfigurerCorePluginRuntimeSpec.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package grails.spring
22

33
import grails.core.DefaultGrailsApplication
44
import org.grails.plugins.CoreGrailsPlugin
5+
import org.grails.spring.context.support.GrailsPlaceholderConfigurer
56
import spock.lang.Issue
67
import spock.lang.Specification
78

@@ -29,6 +30,7 @@ class GrailsPlaceHolderConfigurerCorePluginRuntimeSpec extends Specification{
2930
plugin.grailsApplication = app
3031
bb.beans plugin.doWithSpring()
3132
bb.beans {
33+
propertySourcesPlaceholderConfigurer(GrailsPlaceholderConfigurer)
3234
testBean(ReplacePropertyBean) {
3335
foo = '${foo.bar}'
3436
}

grails-web-common/build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ dependencies {
1010
compileOnly "jakarta.servlet:jakarta.servlet-api"
1111
testCompileOnly "org.springframework:spring-test"
1212

13-
// now used by plugins for autoconfiguration
14-
api "org.springframework.boot:spring-boot-autoconfigure"
1513
api "org.springframework:spring-webmvc"
1614
api "org.springframework:spring-context-support"
1715
implementation "com.github.ben-manes.caffeine:caffeine"

0 commit comments

Comments
 (0)