Skip to content

Commit bb56e52

Browse files
committed
Merge branch '3.2.x' into GRAILS-10223
2 parents c3d71bb + c80a7c6 commit bb56e52

File tree

40 files changed

+428
-54
lines changed

40 files changed

+428
-54
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ subprojects { project ->
472472
}
473473

474474
}
475-
compileGroovy.dependsOn processResources
475+
476476
}
477477

478478

grails-async/src/main/groovy/grails/async/Promises.groovy

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,14 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package grails.async;
16+
package grails.async
1717

18+
import grails.async.decorator.PromiseDecorator
19+
import groovy.transform.CompileStatic
20+
import org.grails.async.factory.SynchronousPromiseFactory
21+
import org.grails.async.factory.gpars.GparsPromiseFactory
1822

19-
import groovy.lang.Closure
20-
import groovy.transform.CompileStatic;
21-
22-
import java.util.List;
23-
import java.util.Map;
24-
import java.util.concurrent.TimeUnit;
25-
26-
import grails.async.decorator.PromiseDecorator;
27-
import org.grails.async.factory.SynchronousPromiseFactory;
28-
import org.grails.async.factory.gpars.GparsPromiseFactory;
29-
import org.grails.async.factory.reactor.ReactorPromiseFactory;
23+
import java.util.concurrent.TimeUnit
3024

3125
/**
3226
* Factory class for working with {@link Promise} instances

grails-async/src/main/groovy/org/grails/async/factory/reactor/ReactorPromise.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ import java.util.concurrent.TimeoutException
3131
*
3232
* @author Graeme Rocher
3333
* @since 3.0
34+
*
35+
* @deprecated Reactor promise integration is deprecated and will be removed in a future version of Grails
3436
*/
3537
@CompileStatic
38+
@Deprecated
3639
class ReactorPromise<T> implements Promise<T> {
3740

3841
reactor.rx.Promise<T> internalPromise

grails-async/src/main/groovy/org/grails/async/factory/reactor/ReactorPromiseFactory.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ import java.util.concurrent.TimeUnit
3131
*
3232
* @author Graeme Rocher
3333
* @since 3.0
34+
*
35+
* @deprecated Reactor promise integration is deprecated and will be removed in a future version of Grails
3436
*/
3537
@CompileStatic
38+
@Deprecated
3639
class ReactorPromiseFactory extends AbstractPromiseFactory {
3740
static final boolean REACTOR_PRESENT
3841
static {

grails-core/src/main/groovy/org/grails/compiler/injection/EnhancesTraitTransformation.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ class EnhancesTraitTransformation extends AbstractArtefactTypeAstTransformation
8686

8787
ast.classes.add transformerNode
8888

89-
def resourcesTargetDirectory = GlobalGrailsClassInjectorTransformation.resolveResourcesTargetDirectory(source)
90-
GlobalGrailsClassInjectorTransformation.updateGrailsFactoriesWithType(transformerNode, GlobalGrailsClassInjectorTransformation.TRAIT_INJECTOR_CLASS, resourcesTargetDirectory)
89+
def compilationTargetDirectory = GlobalGrailsClassInjectorTransformation.resolveCompilationTargetDirectory(source)
90+
GlobalGrailsClassInjectorTransformation.updateGrailsFactoriesWithType(transformerNode, GlobalGrailsClassInjectorTransformation.TRAIT_INJECTOR_CLASS, compilationTargetDirectory)
9191

9292
}
9393

grails-core/src/main/groovy/org/grails/compiler/injection/GlobalGrailsClassInjectorTransformation.groovy

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import grails.compiler.ast.ClassInjector
55
import grails.core.ArtefactHandler
66
import grails.io.IOUtils
77
import grails.plugins.metadata.GrailsPlugin
8-
import grails.util.BuildSettings
98
import grails.util.GrailsNameUtils
109
import groovy.transform.CompilationUnitAware
1110
import groovy.transform.CompileDynamic
@@ -65,7 +64,7 @@ class GlobalGrailsClassInjectorTransformation implements ASTTransformation, Comp
6564
Set<String> transformedClasses = []
6665
String pluginVersion = null
6766
ClassNode pluginClassNode = null
68-
def compilationTargetDirectory = resolveResourcesTargetDirectory(source)
67+
def compilationTargetDirectory = resolveCompilationTargetDirectory(source)
6968
def pluginXmlFile = new File(compilationTargetDirectory, "META-INF/grails-plugin.xml")
7069

7170
for (ClassNode classNode : classes) {
@@ -143,10 +142,6 @@ class GlobalGrailsClassInjectorTransformation implements ASTTransformation, Comp
143142
generatePluginXml(pluginClassNode, pluginVersion, transformedClasses, pluginXmlFile)
144143
}
145144

146-
static File resolveResourcesTargetDirectory(SourceUnit source) {
147-
BuildSettings.RESOURCES_DIR ?: new File(resolveCompilationTargetDirectory(source), '../../resources/main/')
148-
}
149-
150145
static File resolveCompilationTargetDirectory(SourceUnit source) {
151146
File targetDirectory = source.configuration.targetDirectory
152147
if(targetDirectory==null && source.getClass().name == 'org.codehaus.jdt.groovy.control.EclipseSourceUnit') {
@@ -155,14 +150,13 @@ class GlobalGrailsClassInjectorTransformation implements ASTTransformation, Comp
155150
return targetDirectory
156151
}
157152

158-
static boolean updateGrailsFactoriesWithType(ClassNode classNode, ClassNode superType, File targetDirectory) {
153+
static boolean updateGrailsFactoriesWithType(ClassNode classNode, ClassNode superType, File compilationTargetDirectory) {
159154
if (GrailsASTUtils.isSubclassOfOrImplementsInterface(classNode, superType)) {
160155
if(Modifier.isAbstract(classNode.getModifiers())) return false
161156

162157
def classNodeName = classNode.name
163158
// generate META-INF/grails.factories
164-
165-
def factoriesFile = new File(targetDirectory, "META-INF/grails.factories")
159+
def factoriesFile = new File(compilationTargetDirectory, "META-INF/grails.factories")
166160
factoriesFile.parentFile.mkdirs()
167161
def props = new Properties()
168162
def superTypeName = superType.getName()

grails-gradle-plugin/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,6 @@ class GrailsGradlePlugin extends GroovyPlugin {
127127
configureRunCommand(project)
128128

129129
configurePathingJar(project)
130-
131-
configureResourceProcessing(project)
132130
}
133131

134132
protected void configureProfile(Project project) {
@@ -233,14 +231,6 @@ class GrailsGradlePlugin extends GroovyPlugin {
233231
System.setProperty(BuildSettings.APP_BASE_DIR, project.projectDir.absolutePath)
234232
}
235233

236-
protected void configureResourceProcessing(Project project) {
237-
def tasks = project.tasks
238-
def resourcesTask = tasks.findByName('processResources')
239-
if (resourcesTask) {
240-
tasks.findByName('compileGroovy')?.dependsOn resourcesTask
241-
}
242-
}
243-
244234
protected void configureApplicationCommands(Project project) {
245235
def applicationContextCommands = FactoriesLoaderSupport.loadFactoryNames(APPLICATION_CONTEXT_COMMAND_CLASS)
246236
for (ctxCommand in applicationContextCommands) {

grails-plugin-async/src/main/groovy/grails/artefact/AsyncController.groovy

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import org.springframework.web.context.request.RequestContextHolder
3737
*
3838
*/
3939
@CompileStatic
40-
@Enhances('Controller')
4140
trait AsyncController extends Events {
4241

4342
/**
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright 2014 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+
package grails.compiler.traits
17+
18+
import grails.artefact.AsyncController
19+
20+
/**
21+
*
22+
* @author Jeff Brown
23+
* @since 3.0
24+
*
25+
*/
26+
class AsyncControllerTraitInjector extends ControllerTraitInjector {
27+
28+
@Override
29+
Class getTrait() {
30+
AsyncController
31+
}
32+
33+
}

grails-plugin-async/src/main/groovy/org/grails/plugins/web/async/ControllersAsyncGrailsPlugin.groovy

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,11 @@ class ControllersAsyncGrailsPlugin extends Plugin {
3535

3636
Closure doWithSpring() {{->
3737
asyncPromiseResponseActionResultTransformer(AsyncActionResultTransformer)
38-
3938
}}
4039

4140
@Override
4241
@CompileStatic
4342
void doWithDynamicMethods() {
44-
try {
45-
Promises.promiseFactory = new ReactorPromiseFactory(applicationContext.getBean(Environment))
46-
} catch (NoSuchBeanDefinitionException e) {
47-
// Reactor not configured
48-
}
4943
Promises.promiseFactory.addPromiseDecoratorLookupStrategy(new WebRequestPromiseDecoratorLookupStrategy())
5044
}
5145

0 commit comments

Comments
 (0)