@@ -16,6 +16,7 @@ import org.gradle.api.artifacts.Configuration
1616import org.gradle.api.artifacts.Dependency
1717import org.gradle.api.file.CopySpec
1818import org.gradle.api.plugins.GroovyPlugin
19+ import org.gradle.api.tasks.AbstractCopyTask
1920import org.gradle.api.tasks.JavaExec
2021import org.gradle.api.tasks.SourceSet
2122import org.gradle.api.tasks.TaskContainer
@@ -31,6 +32,7 @@ import org.grails.gradle.plugin.agent.AgentTasksEnhancer
3132import org.grails.gradle.plugin.commands.ApplicationContextCommandTask
3233import org.grails.gradle.plugin.model.GrailsClasspathToolingModelBuilder
3334import org.grails.gradle.plugin.run.FindMainClassTask
35+ import org.grails.gradle.plugin.util.SourceSets
3436import org.grails.io.support.FactoriesLoaderSupport
3537import org.springframework.boot.gradle.SpringBootPluginExtension
3638
@@ -335,46 +337,73 @@ class GrailsGradlePlugin extends GroovyPlugin {
335337 **/
336338 protected void enableNative2Ascii (Project project , grailsVersion ) {
337339 project. afterEvaluate {
338- for ( SourceSet sourceSet in project . sourceSets) {
340+ SourceSet sourceSet = SourceSets . findMainSourceSet(project)
339341
340- project. tasks. getByName(sourceSet. processResourcesTaskName) { CopySpec task ->
341- def grailsExt = project. extensions. getByType(GrailsExtension )
342- // def destinationDir = ((ProcessResources) task).destinationDir
342+ def taskContainer = project. tasks
343343
344- def replaceTokens = [
345- ' info.app.name' : project. name,
346- ' info.app.version' : project. version,
347- ' info.app.grailsVersion' : grailsVersion
348- ]
344+ taskContainer. getByName(sourceSet. processResourcesTaskName) { AbstractCopyTask task ->
345+
346+ def grailsExt = project. extensions. getByType(GrailsExtension )
347+ def native2ascii = grailsExt. native2ascii
348+ if (native2ascii && grailsExt. native2asciiAnt && ! taskContainer. findByName(' native2ascii' )) {
349+ def destinationDir = ((ProcessResources ) task). destinationDir
350+ Task native2asciiTask = createNative2AsciiTask(taskContainer, project. file(' grails-app/i18n' ), destinationDir)
351+ task. dependsOn(native2asciiTask)
352+ }
349353
350- task. from(project. relativePath(" src/main/templates" )) {
351- into(" META-INF/templates" )
352- }
353354
355+ def replaceTokens = [
356+ ' info.app.name' : project. name,
357+ ' info.app.version' : project. version,
358+ ' info.app.grailsVersion' : grailsVersion
359+ ]
360+
361+ task. from(project. relativePath(" src/main/templates" )) {
362+ into(" META-INF/templates" )
363+ }
364+
365+
366+ if (! native2ascii) {
354367 task. from(sourceSet. resources) {
355368 include ' **/*.properties'
356- filter( ReplaceTokens , tokens : replaceTokens )
357- if (grailsExt. native2ascii) {
358- filter(EscapeUnicode )
359- }
369+ filter(ReplaceTokens , tokens : replaceTokens)
360370 }
371+ }
372+ else if (! grailsExt. native2asciiAnt) {
361373 task. from(sourceSet. resources) {
362- filter( ReplaceTokens , tokens : replaceTokens )
363- include ' **/*.groovy'
364- include ' **/*.yml'
365- include ' **/*.xml'
374+ include ' **/*.properties'
375+ filter(ReplaceTokens , tokens : replaceTokens)
376+ filter(EscapeUnicode )
366377 }
378+ }
367379
368- task. from(sourceSet. resources) {
369- exclude ' **/*.properties'
370- exclude ' **/*.groovy'
371- exclude ' **/*.yml'
372- exclude ' **/*.xml'
373- }
380+ task. from(sourceSet. resources) {
381+ filter( ReplaceTokens , tokens : replaceTokens )
382+ include ' **/*.groovy'
383+ include ' **/*.yml'
384+ include ' **/*.xml'
385+ }
386+
387+ task. from(sourceSet. resources) {
388+ exclude ' **/*.properties'
389+ exclude ' **/*.groovy'
390+ exclude ' **/*.yml'
391+ exclude ' **/*.xml'
374392 }
375393 }
376394 }
377395
378396 }
379397
398+ protected Task createNative2AsciiTask (TaskContainer taskContainer , src , dest ) {
399+ def native2asciiTask = taskContainer. create(' native2ascii' )
400+ native2asciiTask << {
401+ ant. native2ascii(src : src, dest : dest,
402+ includes : " **/*.properties" , encoding : " UTF-8" )
403+ }
404+ native2asciiTask. inputs. dir(src)
405+ native2asciiTask. outputs. dir(dest)
406+ native2asciiTask
407+ }
408+
380409}
0 commit comments