Skip to content

Commit

Permalink
Revert dependencies changes until test projects are added & fix gsp p…
Browse files Browse the repository at this point in the history
…lugin artifact name
jdaugherty committed Jan 15, 2025
1 parent e45baea commit dd9e941
Showing 9 changed files with 459 additions and 520 deletions.
2 changes: 1 addition & 1 deletion gradle/publish-config.gradle
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@ publishing {
publications {
maven(MavenPublication) {

artifactId = project.name
artifactId = project.findProperty('artifactId') ?: project.name
groupId = project.group
version = project.version

93 changes: 44 additions & 49 deletions grails-gsp/build.gradle
Original file line number Diff line number Diff line change
@@ -9,56 +9,51 @@ group = 'org.grails'
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")
api "org.grails:grails-core"
api project(":grails-taglib")
api "org.apache.groovy:groovy-templates"

api 'org.grails:grails-bootstrap', { // ConfigMap
/*
// API dependencies in grails-bootstrap
exclude group: 'org.yaml', module: 'snakeyaml'
*/
}
api 'org.apache.groovy:groovy-templates' // Template, TemplateEngine

implementation project(':grails-taglib'), { // GrailsTagException, OutputEncodingSettings are used
/*
// API dependencies in grails-taglib
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-encoder'
*/
}
implementation 'org.grails:grails-core', { // GrailsStringUtils
/*
// API dependencies in grails-core
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
exclude group: 'org.grails', module: 'grails-bootstrap'
//exclude group: 'org.grails', module: 'grails-datastore-core' // ClassPropertyFetcher
//exclude group: 'org.grails', module: 'grails-spring' // RuntimeSpringConfiguration (somehow needed for groovydoc)
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.yaml', module: 'snakeyaml'
exclude group: 'org.springframework', module: 'spring-beans'
exclude group: 'org.springframework', module: 'spring-core'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.springframework', module: 'spring-tx'
exclude group: 'org.springframework.boot', module: 'spring-boot'
exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
*/
}
implementation 'org.grails:grails-encoder', { // FastStringWriter, StreamByteBuffer, StreamCharBuffer are used
/*
// API dependencies in grails-encoder
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'org.apache.groovy', module: 'groovy-json'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.springframework', module: 'spring-web'
*/
}
implementation 'org.springframework:spring-context' // ApplicationContext

// api 'org.grails:grails-bootstrap', { // ConfigMap
// // API dependencies in grails-bootstrap
// exclude group: 'org.yaml', module: 'snakeyaml'
// }
// api 'org.apache.groovy:groovy-templates' // Template, TemplateEngine
//
// api project(':grails-taglib'), { // GrailsTagException, OutputEncodingSettings are used
// // API dependencies in grails-taglib
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-encoder'
// }
// api 'org.grails:grails-core', { // GrailsStringUtils
// // API dependencies in grails-core
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
// exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
// exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
// exclude group: 'org.grails', module: 'grails-bootstrap'
// //exclude group: 'org.grails', module: 'grails-datastore-core' // ClassPropertyFetcher
// //exclude group: 'org.grails', module: 'grails-spring' // RuntimeSpringConfiguration (somehow needed for groovydoc)
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.yaml', module: 'snakeyaml'
// exclude group: 'org.springframework', module: 'spring-beans'
// exclude group: 'org.springframework', module: 'spring-core'
// exclude group: 'org.springframework', module: 'spring-context'
// exclude group: 'org.springframework', module: 'spring-tx'
// exclude group: 'org.springframework.boot', module: 'spring-boot'
// exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
// }
// implementation 'org.grails:grails-encoder', { // FastStringWriter, StreamByteBuffer, StreamCharBuffer are used
// // API dependencies in grails-encoder
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'org.apache.groovy', module: 'groovy-json'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.springframework', module: 'spring-web'
// }
// implementation 'org.springframework:spring-context' // ApplicationContext
//
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.spockframework:spock-core'

265 changes: 122 additions & 143 deletions grails-plugin-gsp/build.gradle
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@ apply plugin: 'java-library'
apply plugin: 'org.grails.grails-plugin'

ext {
artifactId = 'gsp'
testMaxParallelFork = isCiBuild ? 1 : 4
testForkEvery = isCiBuild ? 10 : 20
testJvmArgs = ['-Xmx1536M']
@@ -24,156 +25,134 @@ ext {
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")
api project(":grails-web-gsp-taglib")
api project(":grails-plugin-sitemesh3")

api project(':grails-gsp'), { // GroovyPageResourceLoader, GroovyPagesTemplateEngine, CachingGroovyPageStaticResourceLocator
/*
// API dependencies in grails-gsp
exclude group: 'org.grails', module: 'grails-bootstrap'
//exclude group: 'org.apache.groovy', module: 'groovy-templates' // TemplateEngine
*/
}
api project(':grails-web-gsp'), { // PageRenderer
/*
// API dependencies in grails-web-gsp
exclude group: 'org.grails', module: 'grails-gsp'
exclude group: 'org.grails', module: 'grails-web-common'
exclude group: 'org.grails', module: 'grails-web-taglib'
*/
}
api project(':grails-web-taglib'), { // TagLibraryInvoker, TagLib, TagLibrary
/*
// API dependencies in grails-web-taglib
exclude group: 'org.grails', module: 'grails-taglib'
exclude group: 'org.grails', module: 'grails-web-common'
*/
}
api 'org.grails:grails-encoder', { // CodecLookup, Encoder
/*
// API dependencies in grails-encoder
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'org.apache.groovy', module: 'groovy-json'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.springframework', module: 'spring-web'
*/
}
api 'org.grails:grails-web-url-mappings', { // LinkGenerator
/*
// API dependencies in grails-web-url-mappings
exclude group: 'org.grails', module: 'grails-web-common'
//exclude group: 'org.grails', module: 'grails-datastore-gorm-validation' // Constrained
*/
}
api 'org.springframework:spring-context' // MessageSource, Errors, MessageSourceResolvable, DefaultMessageSourceResolvable, NoSuchMessageException
api 'org.springframework.boot:spring-boot' // ServletRegistrationBean

implementation project(':grails-taglib'), { // GroovyPageAttributes
/*
// API dependencies in grails-taglib
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.springframework', module: 'spring-core'
*/
}
implementation project(':grails-web-gsp-taglib'), { // RenderTagLib
/*
// API dependencies in grails-web-gsp-taglib
exclude group: 'org.grails', module: 'grails-taglib'
exclude group: 'org.grails', module: 'grails-web-gsp'
*/
}
implementation "org.apache.commons:commons-text:$commonsTextVersion" // StringEscapeUtils
implementation 'org.apache.groovy:groovy-xml' // MarkupBuilder
implementation 'org.grails:grails-core', { // Config
/*
// API dependencies in grails-core
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
exclude group: 'org.grails', module: 'grails-bootstrap'
exclude group: 'org.grails', module: 'grails-datastore-core'
exclude group: 'org.grails', module: 'grails-spring'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.yaml', module: 'snakeyaml'
exclude group: 'org.springframework', module: 'spring-beans'
exclude group: 'org.springframework', module: 'spring-core'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.springframework', module: 'spring-tx'
exclude group: 'org.springframework.boot', module: 'spring-boot'
exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
*/
}
implementation 'org.grails:grails-spring', { // RuntimeSpringConfiguration
/*
// API dependencies in grails-spring
exclude group: 'org.springframework', module: 'spring-tx'
exclude group: 'org.springframework', module: 'spring-web'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.grails', module: 'grails-bootstrap'
exclude group: 'org.apache.groovy', module: 'groovy-xml'
*/
}
implementation 'org.grails:grails-web-common', {
/*
// API dependencies in grails-web-common
exclude group: 'org.apache.groovy', module: 'groovy-templates'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-databinding'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.springframework', module: 'spring-webmvc'
exclude group: 'org.springframework', module: 'spring-context-support'
*/
}
implementation 'org.grails:grails-web-mvc', { // SynchronizerTokensHolder
/*
// API dependencies in grails-web-mvc
exclude group: 'org.grails', module: 'grails-web-common'
exclude group: 'org.grails', module: 'grails-web-url-mappings'
*/
}
implementation 'org.springframework:spring-beans' // PropertyEditorRegistry

astImplementation 'org.grails:grails-web', {
/*
// API dependencies in grails-web
exclude group: 'org.grails', module: 'grails-web-common'
exclude group: 'org.grails', module: 'grails-web-databinding'
exclude group: 'org.grails', module: 'grails-web-gsp'
exclude group: 'org.grails', module: 'grails-web-mvc'
exclude group: 'org.grails', module: 'grails-web-url-mappings'
*/
}
astImplementation 'org.grails:grails-plugin-controllers', {
/*
// API dependencies in grails-plugin-controllers
//exclude group: 'org.grails', module: 'grails-core' // TraitInjector
exclude group: 'org.grails', module: 'grails-web'
exclude group: 'org.grails', module: 'grails-plugin-mimetypes'
exclude group: 'org.grails', module: 'grails-plugin-validation'
exclude group: 'org.grails', module: 'grails-plugin-domain-class'
exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
*/
}

compileOnly project(':grails-web-jsp'), { // Provided by Application for JSP support
/*
// API dependencies in grails-web-jsp
exclude group: 'org.grails', module: 'grails-web-gsp'
*/
}

runtimeOnly "org.grails:grails-plugin-codecs:$grailsVersion" // Registers CodecLookup bean
runtimeOnly(project(":grails-web-jsp"))
api "org.apache.commons:commons-text:$commonsTextVersion"
api "org.grails:grails-plugin-codecs"
astImplementation "org.grails:grails-web"
astImplementation "org.grails:grails-plugin-controllers"

// api project(':grails-gsp'), { // GroovyPageResourceLoader, GroovyPagesTemplateEngine, CachingGroovyPageStaticResourceLocator
// // API dependencies in grails-gsp
// exclude group: 'org.grails', module: 'grails-bootstrap'
// //exclude group: 'org.apache.groovy', module: 'groovy-templates' // TemplateEngine
// }
// api project(':grails-web-gsp'), { // PageRenderer
// // API dependencies in grails-web-gsp
// exclude group: 'org.grails', module: 'grails-gsp'
// exclude group: 'org.grails', module: 'grails-web-common'
// exclude group: 'org.grails', module: 'grails-web-taglib'
// }
// api project(':grails-web-taglib'), { // TagLibraryInvoker, TagLib, TagLibrary
// // API dependencies in grails-web-taglib
// exclude group: 'org.grails', module: 'grails-taglib'
// exclude group: 'org.grails', module: 'grails-web-common'
// }
// api 'org.grails:grails-encoder', { // CodecLookup, Encoder
// // API dependencies in grails-encoder
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'org.apache.groovy', module: 'groovy-json'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.springframework', module: 'spring-web'
// }
// api 'org.grails:grails-web-url-mappings', { // LinkGenerator
// // API dependencies in grails-web-url-mappings
// exclude group: 'org.grails', module: 'grails-web-common'
// //exclude group: 'org.grails', module: 'grails-datastore-gorm-validation' // Constrained
// }
// api 'org.springframework:spring-context' // MessageSource, Errors, MessageSourceResolvable, DefaultMessageSourceResolvable, NoSuchMessageException
// api 'org.springframework.boot:spring-boot' // ServletRegistrationBean
//
// implementation project(':grails-taglib'), { // GroovyPageAttributes
// // API dependencies in grails-taglib
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.springframework', module: 'spring-core'
// }
// implementation project(':grails-web-gsp-taglib'), { // RenderTagLib
// // API dependencies in grails-web-gsp-taglib
// exclude group: 'org.grails', module: 'grails-taglib'
// exclude group: 'org.grails', module: 'grails-web-gsp'
// }
// implementation "org.apache.commons:commons-text:$commonsTextVersion" // StringEscapeUtils
// implementation 'org.apache.groovy:groovy-xml' // MarkupBuilder
// implementation 'org.grails:grails-core', { // Config
// // API dependencies in grails-core
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
// exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
// exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
// exclude group: 'org.grails', module: 'grails-bootstrap'
// exclude group: 'org.grails', module: 'grails-datastore-core'
// exclude group: 'org.grails', module: 'grails-spring'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.yaml', module: 'snakeyaml'
// exclude group: 'org.springframework', module: 'spring-beans'
// exclude group: 'org.springframework', module: 'spring-core'
// exclude group: 'org.springframework', module: 'spring-context'
// exclude group: 'org.springframework', module: 'spring-tx'
// exclude group: 'org.springframework.boot', module: 'spring-boot'
// exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
// }
// implementation 'org.grails:grails-spring', { // RuntimeSpringConfiguration
// // API dependencies in grails-spring
// exclude group: 'org.springframework', module: 'spring-tx'
// exclude group: 'org.springframework', module: 'spring-web'
// exclude group: 'org.springframework', module: 'spring-context'
// exclude group: 'org.grails', module: 'grails-bootstrap'
// exclude group: 'org.apache.groovy', module: 'groovy-xml'
// }
// implementation 'org.grails:grails-web-common', {
// // API dependencies in grails-web-common
// exclude group: 'org.apache.groovy', module: 'groovy-templates'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-databinding'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.springframework', module: 'spring-webmvc'
// exclude group: 'org.springframework', module: 'spring-context-support'
// }
// implementation 'org.grails:grails-web-mvc', { // SynchronizerTokensHolder
// // API dependencies in grails-web-mvc
// exclude group: 'org.grails', module: 'grails-web-common'
// exclude group: 'org.grails', module: 'grails-web-url-mappings'
// }
// implementation 'org.springframework:spring-beans' // PropertyEditorRegistry
//
// astImplementation 'org.grails:grails-web', {
// // API dependencies in grails-web
// exclude group: 'org.grails', module: 'grails-web-common'
// exclude group: 'org.grails', module: 'grails-web-databinding'
// exclude group: 'org.grails', module: 'grails-web-gsp'
// exclude group: 'org.grails', module: 'grails-web-mvc'
// exclude group: 'org.grails', module: 'grails-web-url-mappings'
// }
// astImplementation 'org.grails:grails-plugin-controllers', {
// // API dependencies in grails-plugin-controllers
// //exclude group: 'org.grails', module: 'grails-core' // TraitInjector
// exclude group: 'org.grails', module: 'grails-web'
// exclude group: 'org.grails', module: 'grails-plugin-mimetypes'
// exclude group: 'org.grails', module: 'grails-plugin-validation'
// exclude group: 'org.grails', module: 'grails-plugin-domain-class'
// exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
// }
//
// compileOnly project(':grails-web-jsp'), { // Provided by Application for JSP support
// // API dependencies in grails-web-jsp
// exclude group: 'org.grails', module: 'grails-web-gsp'
// }
//
// runtimeOnly "org.grails:grails-plugin-codecs:$grailsVersion" // Registers CodecLookup bean
//
testCompileOnly 'jakarta.annotation:jakarta.annotation-api'

testImplementation project(':grails-web-jsp'), { // TagLibraryResolverImpl
/*
// API dependencies in grails-web-jsp
exclude group: 'org.grails', module: 'grails-web-gsp'
*/
}
testImplementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'
testImplementation "jakarta.servlet.jsp:jakarta.servlet.jsp-api:$jspApiVersion"
84 changes: 39 additions & 45 deletions grails-plugin-sitemesh3/build.gradle
Original file line number Diff line number Diff line change
@@ -26,52 +26,46 @@ ext {
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")
api "org.sitemesh:spring-boot-starter-sitemesh:$sitemeshVersion"
api project(':grails-web-gsp-taglib')

api project(':grails-web-gsp'), { // GrailsConventionGroovyPageLocator
/*
// API dependencies in grails-web-gsp
//exclude group: 'org.grails', module: 'grails-gsp' // DefaultGroovyPageLocator
exclude group: 'org.grails', module: 'grails-web-common'
exclude group: 'org.grails', module: 'grails-web-taglib'
*/
}
api project(':grails-web-gsp-taglib'), { // GrailsConventionGroovyPageLocator
/*
// API dependencies in grails-web-gsp-taglib
exclude group: 'org.grails', module: 'grails-taglib'
//exclude group: 'org.grails', module: 'grails-web-gsp' // DefaultGroovyPageLocator
*/
}
api "org.sitemesh:sitemesh:$sitemeshVersion" // SiteMeshFilter
api 'org.springframework:spring-webmvc' // AbstractHandlerAdapter, ParameterizableViewController, AbstractHandlerMapping
api 'org.springframework.boot:spring-boot' // FilterRegistrationBean

implementation project(':grails-web-taglib'), { // TagLib, TagLibrary
/*
// API dependencies in grails-web-taglib
exclude group: 'org.grails', module: 'grails-taglib'
exclude group: 'org.grails', module: 'grails-web-common'
*/
}
implementation 'org.grails:grails-web-common', { // WebUtils
/*
// API dependencies in grails-web-common
exclude group: 'org.apache.groovy', module: 'groovy-templates'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-databinding'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.springframework', module: 'spring-webmvc'
exclude group: 'org.springframework', module: 'spring-context-support'
*/
}
implementation 'org.springframework:spring-beans' // Autowired, Qualifier
implementation 'org.springframework:spring-web' // HttpMethod, ResponseStatusException, HttpStatus

runtimeOnly "org.grails:grails-plugin-codecs:$grailsVersion" // Registers CodecLookup bean
runtimeOnly "org.sitemesh:spring-boot-starter-sitemesh:$sitemeshVersion"

compileOnly 'jakarta.servlet:jakarta.servlet-api' // Provided by servlet container
compileOnly 'org.apache.groovy:groovy' // Provided by Grails Application
// api project(':grails-web-gsp'), { // GrailsConventionGroovyPageLocator
// // API dependencies in grails-web-gsp
// //exclude group: 'org.grails', module: 'grails-gsp' // DefaultGroovyPageLocator
// exclude group: 'org.grails', module: 'grails-web-common'
// exclude group: 'org.grails', module: 'grails-web-taglib'
// }
// api project(':grails-web-gsp-taglib'), { // GrailsConventionGroovyPageLocator
// // API dependencies in grails-web-gsp-taglib
// exclude group: 'org.grails', module: 'grails-taglib'
// //exclude group: 'org.grails', module: 'grails-web-gsp' // DefaultGroovyPageLocator
// }
// api "org.sitemesh:sitemesh:$sitemeshVersion" // SiteMeshFilter
// api 'org.springframework:spring-webmvc' // AbstractHandlerAdapter, ParameterizableViewController, AbstractHandlerMapping
// api 'org.springframework.boot:spring-boot' // FilterRegistrationBean
//
// implementation project(':grails-web-taglib'), { // TagLib, TagLibrary
// // API dependencies in grails-web-taglib
// exclude group: 'org.grails', module: 'grails-taglib'
// exclude group: 'org.grails', module: 'grails-web-common'
// }
// implementation 'org.grails:grails-web-common', { // WebUtils
// // API dependencies in grails-web-common
// exclude group: 'org.apache.groovy', module: 'groovy-templates'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-databinding'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.springframework', module: 'spring-webmvc'
// exclude group: 'org.springframework', module: 'spring-context-support'
// }
// implementation 'org.springframework:spring-beans' // Autowired, Qualifier
// implementation 'org.springframework:spring-web' // HttpMethod, ResponseStatusException, HttpStatus
//
// runtimeOnly "org.grails:grails-plugin-codecs:$grailsVersion" // Registers CodecLookup bean
// runtimeOnly "org.sitemesh:spring-boot-starter-sitemesh:$sitemeshVersion"
//
// compileOnly 'jakarta.servlet:jakarta.servlet-api' // Provided by servlet container
// compileOnly 'org.apache.groovy:groovy' // Provided by Grails Application

}

76 changes: 37 additions & 39 deletions grails-taglib/build.gradle
Original file line number Diff line number Diff line change
@@ -9,45 +9,43 @@ group = 'org.grails'
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")

api 'org.grails:grails-core', { // InjectableGrailsClass, ArtefactHandlerAdapter, ArtefactInfo, GrailsClass, AbstractInjectableGrailsClass, GrailsApplication, EncodingStateRegistry, EncodingStateRegistryLookup
/*
// API dependencies in grails-core
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
//exclude group: 'org.grails', module: 'grails-bootstrap' // Resource
//exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
exclude group: 'org.grails', module: 'grails-spring'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.yaml', module: 'snakeyaml'
//exclude group: 'org.springframework', module: 'spring-beans' // Aware
exclude group: 'org.springframework', module: 'spring-core'
//exclude group: 'org.springframework', module: 'spring-context' // ApplicationContext
exclude group: 'org.springframework', module: 'spring-tx'
exclude group: 'org.springframework.boot', module: 'spring-boot'
exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
*/
}
api 'org.grails:grails-encoder', { // EncodingStateRegistry
/*
// API dependencies in grails-encoder
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'org.apache.groovy', module: 'groovy-json'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.springframework', module: 'spring-web'
*/
}
api 'org.springframework:spring-core' // Ordered

implementation 'org.slf4j:jcl-over-slf4j' // Commons Logging is used

compileOnly 'org.apache.groovy:groovy' // Needed as there are Java files that reference Groovy classes

api "org.grails:grails-core"
api "org.grails:grails-encoder"

// api 'org.grails:grails-core', { // InjectableGrailsClass, ArtefactHandlerAdapter, ArtefactInfo, GrailsClass, AbstractInjectableGrailsClass, GrailsApplication, EncodingStateRegistry, EncodingStateRegistryLookup
// // API dependencies in grails-core
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
// exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
// exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
// //exclude group: 'org.grails', module: 'grails-bootstrap' // Resource
// //exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
// exclude group: 'org.grails', module: 'grails-spring'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.yaml', module: 'snakeyaml'
// //exclude group: 'org.springframework', module: 'spring-beans' // Aware
// exclude group: 'org.springframework', module: 'spring-core'
// //exclude group: 'org.springframework', module: 'spring-context' // ApplicationContext
// exclude group: 'org.springframework', module: 'spring-tx'
// exclude group: 'org.springframework.boot', module: 'spring-boot'
// exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
// }
// api 'org.grails:grails-encoder', { // EncodingStateRegistry
// // API dependencies in grails-encoder
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'org.apache.groovy', module: 'groovy-json'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.springframework', module: 'spring-web'
// }
// api 'org.springframework:spring-core' // Ordered
//
// implementation 'org.slf4j:jcl-over-slf4j' // Commons Logging is used
//
// compileOnly 'org.apache.groovy:groovy' // Needed as there are Java files that reference Groovy classes
//
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.spockframework:spock-core'

43 changes: 19 additions & 24 deletions grails-web-gsp-taglib/build.gradle
Original file line number Diff line number Diff line change
@@ -7,31 +7,26 @@ apply plugin: 'java-library'
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")
api project(':grails-web-jsp')

api project(':grails-taglib'), { // GrailsTagLibClass
/*
// API dependencies in grails-taglib
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.springframework', module: 'spring-core'
*/
}
api project(':grails-web-gsp'), { // GroovyPagesTemplateRenderer
/*
// API dependencies in grails-web-gsp
//exclude group: 'org.grails', module: 'grails-gsp' // GroovyPagesTemplateEngine
//exclude group: 'org.grails', module: 'grails-web-common' // GrailsApplicationAttributes
exclude group: 'org.grails', module: 'grails-web-taglib'
*/
}

implementation project(':grails-web-taglib'), { // TagLib
/*
// API dependencies in grails-web-taglib
exclude group: 'org.grails', module: 'grails-taglib'
//exclude group: 'org.grails', module: 'grails-web-common' // WebAttributes
*/
}
// api project(':grails-taglib'), { // GrailsTagLibClass
// // API dependencies in grails-taglib
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.springframework', module: 'spring-core'
// }
// api project(':grails-web-gsp'), { // GroovyPagesTemplateRenderer
// // API dependencies in grails-web-gsp
// //exclude group: 'org.grails', module: 'grails-gsp' // GroovyPagesTemplateEngine
// //exclude group: 'org.grails', module: 'grails-web-common' // GrailsApplicationAttributes
// exclude group: 'org.grails', module: 'grails-web-taglib'
// }
//
// implementation project(':grails-web-taglib'), { // TagLib
// // API dependencies in grails-web-taglib
// exclude group: 'org.grails', module: 'grails-taglib'
// //exclude group: 'org.grails', module: 'grails-web-common' // WebAttributes
// }
}

apply from: rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
152 changes: 71 additions & 81 deletions grails-web-gsp/build.gradle
Original file line number Diff line number Diff line change
@@ -7,98 +7,88 @@ apply plugin: 'java-library'
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")
compileOnly "org.apache.ant:ant"
api project(":grails-gsp")
api "org.grails:grails-web-common"
api project(":grails-web-taglib")

api 'org.grails:grails-core', { // GrailsDomainClass, CacheEntry, Environment, GrailsStringUtils, GrailsApplication, GrailsControllerClass, GrailsApplicationAware, ControllerArtefactHandler, GrailsPluginManager, GrailsFactoriesLoader
/*
// API dependencies in grails-core
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
exclude group: 'org.grails', module: 'grails-bootstrap'
//exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
//exclude group: 'org.grails', module: 'grails-spring' // RuntimeSpringConfiguration
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.yaml', module: 'snakeyaml'
exclude group: 'org.springframework', module: 'spring-beans'
exclude group: 'org.springframework', module: 'spring-core'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.springframework', module: 'spring-tx'
exclude group: 'org.springframework.boot', module: 'spring-boot'
exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
*/
}
api project(':grails-gsp'), { // GroovyPage, GroovyPageBinding, GroovyPageMetaInfo, GroovyPagesTemplateEngine, GroovyPageScriptSource, DefaultGroovyPageLocator, GroovyPageScriptSource, GroovyPageCompiledScriptSource, GroovyPageResourceScriptSource
/*
// API dependencies in grails-gsp
exclude group: 'org.grails', module: 'grails-bootstrap'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.apache.groovy', module: 'groovy-templates'
// Implementation dependencies in grails-gsp
exclude group: 'org.grails', module: 'grails-taglib'
*/
}
api project(':grails-taglib'), { // GrailsTagException, TemplateVariableBinding, OutputEncodingSettings, WithCodecHelper
/*
// API dependencies in grails-taglib
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.springframework', module: 'spring-core'
*/
}
api 'org.grails:grails-web-common', { // GrailsWebRequest, GrailsApplicationAttributes, MimeType, MimeTypeResolver, GroovyPagesUriService, DefaultGroovyPagesUriService, AbstractGrailsView, GrailsViewResolver
/*
// API dependencies in grails-web-common
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-databinding'
exclude group: 'org.grails', module: 'grails-encoder'
//exclude group: 'org.apache.groovy', module: 'groovy-templates' // TemplateEngine needed downstream
exclude group: 'org.springframework', module: 'spring-webmvc'
exclude group: 'org.springframework', module: 'spring-context-support'
*/
}
api 'org.springframework:spring-beans' // InitializingBean, Autowired
api 'org.springframework:spring-context' // ScriptSource
api 'org.springframework:spring-web' // WebApplicationContext, RequestAttributes, RequestContextHolder, ServletRequestAttributes, WebUtils
api 'org.springframework:spring-webmvc' // FrameworkServlet, View, InternalResourceViewResolver, AbstractUrlBasedView

implementation 'org.apache.groovy:groovy-templates' // Template
implementation 'org.grails:grails-bootstrap', { // GrailsNameUtils, GrailsResourceUtils
/*
// API dependencies in grails-bootstrap
exclude group: 'org.yaml', module: 'snakeyaml'
*/
}
implementation 'org.grails:grails-encoder', { // CodecPrintWriter, FastStringWriter, EncodedAppenderWriterFactory, Encoder, StreamingEncoder, StreamingEncoderWriter
/*
// API dependencies in grails-encoder
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'org.apache.groovy', module: 'groovy-json'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.springframework', module: 'spring-web'
*/
}
implementation 'org.springframework:spring-core' // ByteArrayResource, Assert, ReflectionUtils

compileOnly 'jakarta.servlet:jakarta.servlet-api'
compileOnly 'org.apache.ant:ant' // BuildException, DirectoryScanner, MatchingTask, Path, Reference
compileOnly 'org.apache.groovy:groovy'

// api 'org.grails:grails-core', { // GrailsDomainClass, CacheEntry, Environment, GrailsStringUtils, GrailsApplication, GrailsControllerClass, GrailsApplicationAware, ControllerArtefactHandler, GrailsPluginManager, GrailsFactoriesLoader
// // API dependencies in grails-core
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
// exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
// exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
// exclude group: 'org.grails', module: 'grails-bootstrap'
// //exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
// //exclude group: 'org.grails', module: 'grails-spring' // RuntimeSpringConfiguration
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.yaml', module: 'snakeyaml'
// exclude group: 'org.springframework', module: 'spring-beans'
// exclude group: 'org.springframework', module: 'spring-core'
// exclude group: 'org.springframework', module: 'spring-context'
// exclude group: 'org.springframework', module: 'spring-tx'
// exclude group: 'org.springframework.boot', module: 'spring-boot'
// exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
// }
// api project(':grails-gsp'), { // GroovyPage, GroovyPageBinding, GroovyPageMetaInfo, GroovyPagesTemplateEngine, GroovyPageScriptSource, DefaultGroovyPageLocator, GroovyPageScriptSource, GroovyPageCompiledScriptSource, GroovyPageResourceScriptSource
// // API dependencies in grails-gsp
// exclude group: 'org.grails', module: 'grails-bootstrap'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.apache.groovy', module: 'groovy-templates'
// // Implementation dependencies in grails-gsp
// exclude group: 'org.grails', module: 'grails-taglib'
// }
// api project(':grails-taglib'), { // GrailsTagException, TemplateVariableBinding, OutputEncodingSettings, WithCodecHelper
// // API dependencies in grails-taglib
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.springframework', module: 'spring-core'
// }
// api 'org.grails:grails-web-common', { // GrailsWebRequest, GrailsApplicationAttributes, MimeType, MimeTypeResolver, GroovyPagesUriService, DefaultGroovyPagesUriService, AbstractGrailsView, GrailsViewResolver
// // API dependencies in grails-web-common
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-databinding'
// exclude group: 'org.grails', module: 'grails-encoder'
// //exclude group: 'org.apache.groovy', module: 'groovy-templates' // TemplateEngine needed downstream
// exclude group: 'org.springframework', module: 'spring-webmvc'
// exclude group: 'org.springframework', module: 'spring-context-support'
// }
// api 'org.springframework:spring-beans' // InitializingBean, Autowired
// api 'org.springframework:spring-context' // ScriptSource
// api 'org.springframework:spring-web' // WebApplicationContext, RequestAttributes, RequestContextHolder, ServletRequestAttributes, WebUtils
// api 'org.springframework:spring-webmvc' // FrameworkServlet, View, InternalResourceViewResolver, AbstractUrlBasedView
//
// implementation 'org.apache.groovy:groovy-templates' // Template
// implementation 'org.grails:grails-bootstrap', { // GrailsNameUtils, GrailsResourceUtils
// // API dependencies in grails-bootstrap
// exclude group: 'org.yaml', module: 'snakeyaml'
// }
// implementation 'org.grails:grails-encoder', { // CodecPrintWriter, FastStringWriter, EncodedAppenderWriterFactory, Encoder, StreamingEncoder, StreamingEncoderWriter
// // API dependencies in grails-encoder
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'org.apache.groovy', module: 'groovy-json'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.springframework', module: 'spring-web'
// }
// implementation 'org.springframework:spring-core' // ByteArrayResource, Assert, ReflectionUtils
//
// compileOnly 'jakarta.servlet:jakarta.servlet-api'
// compileOnly 'org.apache.ant:ant' // BuildException, DirectoryScanner, MatchingTask, Path, Reference
// compileOnly 'org.apache.groovy:groovy'
//
testImplementation 'jakarta.servlet:jakarta.servlet-api'
testImplementation 'net.bytebuddy:byte-buddy'
testImplementation 'org.grails:grails-web-common', { // GrailsWebMockUtil
/*
// API dependencies in grails-web-common
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-databinding'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.apache.groovy', module: 'groovy-templates'
exclude group: 'org.springframework', module: 'spring-webmvc'
exclude group: 'org.springframework', module: 'spring-context-support'
*/
}
testImplementation 'org.apache.groovy:groovy-xml'
testImplementation 'org.spockframework:spock-core'
140 changes: 67 additions & 73 deletions grails-web-jsp/build.gradle
Original file line number Diff line number Diff line change
@@ -7,81 +7,75 @@ apply plugin: 'java-library'
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")
api "org.grails:grails-web-common"
api project(":grails-web-gsp")

api project(':grails-web-gsp'), { // GroovyPagesServlet is used in public API (used in servlet context attribute value)
/*
// API dependencies in grails-web-gsp
exclude group: 'org.grails', module: 'grails-gsp'
exclude group: 'org.grails', module: 'grails-web-common'
exclude group: 'org.grails', module: 'grails-web-taglib'
*/
}
// Required for JSP support
compileOnly "jakarta.servlet.jsp:jakarta.servlet.jsp-api:$jspApiVersion"
compileOnly "jakarta.el:jakarta.el-api:$elApiVersion"

implementation project(':grails-gsp'), { // GroovyPage
/*
// API dependencies in grails-gsp
//exclude group: 'org.grails', module: 'grails-bootstrap' // Resource is used
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.apache.groovy', module: 'groovy-templates'
// Implementation dependencies in grails-gsp
exclude group: 'org.grails', module: 'grails-taglib'
*/
}
implementation project(':grails-taglib'), { // GrailsTagLibClass, TagLibArtefactHandler, GrailsTagException
/*
// API dependencies in grails-taglib
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.springframework', module: 'spring-core'
*/
}
implementation 'org.grails:grails-core', { // Holders
/*
// API dependencies in grails-core
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
//exclude group: 'org.grails', module: 'grails-bootstrap' // Resource is used
//exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
exclude group: 'org.grails', module: 'grails-spring'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.yaml', module: 'snakeyaml'
exclude group: 'org.springframework', module: 'spring-beans'
exclude group: 'org.springframework', module: 'spring-core'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.springframework', module: 'spring-tx'
exclude group: 'org.springframework.boot', module: 'spring-boot'
exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
*/
}
implementation 'org.grails:grails-encoder', { // StreamCharBuffer, FastStringWriter
/*
// API dependencies in grails-encoder
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'org.apache.groovy', module: 'groovy-json'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.springframework', module: 'spring-web'
*/
}
implementation 'org.grails:grails-web-common', { // GrailsWebRequest
/*
// API dependencies in grails-web-common
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-databinding'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.apache.groovy', module: 'groovy-templates'
//exclude group: 'org.springframework', module: 'spring-webmvc' // DispatcherServletWebRequest
exclude group: 'org.springframework', module: 'spring-context-support'
*/
}

compileOnly 'jakarta.servlet:jakarta.servlet-api' // Provided by servlet container
compileOnly "jakarta.servlet.jsp:jakarta.servlet.jsp-api:$jspApiVersion" // Provided by servlet container
compileOnly "jakarta.el:jakarta.el-api:$elApiVersion" // Provided by servlet container
// api project(':grails-web-gsp'), { // GroovyPagesServlet is used in public API (used in servlet context attribute value)
// // API dependencies in grails-web-gsp
// exclude group: 'org.grails', module: 'grails-gsp'
// exclude group: 'org.grails', module: 'grails-web-common'
// exclude group: 'org.grails', module: 'grails-web-taglib'
// }
//
// implementation project(':grails-gsp'), { // GroovyPage
// // API dependencies in grails-gsp
// //exclude group: 'org.grails', module: 'grails-bootstrap' // Resource is used
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.apache.groovy', module: 'groovy-templates'
// // Implementation dependencies in grails-gsp
// exclude group: 'org.grails', module: 'grails-taglib'
// }
// implementation project(':grails-taglib'), { // GrailsTagLibClass, TagLibArtefactHandler, GrailsTagException
// // API dependencies in grails-taglib
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.springframework', module: 'spring-core'
// }
// implementation 'org.grails:grails-core', { // Holders
// // API dependencies in grails-core
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
// exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
// exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
// //exclude group: 'org.grails', module: 'grails-bootstrap' // Resource is used
// //exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
// exclude group: 'org.grails', module: 'grails-spring'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.yaml', module: 'snakeyaml'
// exclude group: 'org.springframework', module: 'spring-beans'
// exclude group: 'org.springframework', module: 'spring-core'
// exclude group: 'org.springframework', module: 'spring-context'
// exclude group: 'org.springframework', module: 'spring-tx'
// exclude group: 'org.springframework.boot', module: 'spring-boot'
// exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
// }
// implementation 'org.grails:grails-encoder', { // StreamCharBuffer, FastStringWriter
// // API dependencies in grails-encoder
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'org.apache.groovy', module: 'groovy-json'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.springframework', module: 'spring-web'
// }
// implementation 'org.grails:grails-web-common', { // GrailsWebRequest
// // API dependencies in grails-web-common
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-databinding'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.apache.groovy', module: 'groovy-templates'
// //exclude group: 'org.springframework', module: 'spring-webmvc' // DispatcherServletWebRequest
// exclude group: 'org.springframework', module: 'spring-context-support'
// }
//
// compileOnly 'jakarta.servlet:jakarta.servlet-api' // Provided by servlet container
// compileOnly "jakarta.servlet.jsp:jakarta.servlet.jsp-api:$jspApiVersion" // Provided by servlet container
// compileOnly "jakarta.el:jakarta.el-api:$elApiVersion" // Provided by servlet container
}

apply from: rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
124 changes: 59 additions & 65 deletions grails-web-taglib/build.gradle
Original file line number Diff line number Diff line change
@@ -9,72 +9,66 @@ group = 'org.grails'
dependencies {

implementation platform("org.grails:grails-bom:$grailsVersion")
compileOnlyApi "jakarta.servlet:jakarta.servlet-api" // api needed for TagLibrary trait
api "org.grails:grails-web-common"
api project(":grails-taglib")
compileOnly project(":grails-gsp")

compileOnlyApi 'jakarta.annotation:jakarta.annotation-api'
compileOnlyApi 'jakarta.servlet:jakarta.servlet-api' // Needed downstream to compile for TagLibrary trait

api 'org.grails:grails-core', { // ArtefactTypeAstTransformation
/*
// API dependencies in grails-core
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
//exclude group: 'org.grails', module: 'grails-bootstrap' // Resource
//exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
exclude group: 'org.grails', module: 'grails-spring'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.yaml', module: 'snakeyaml'
exclude group: 'org.springframework', module: 'spring-beans'
exclude group: 'org.springframework', module: 'spring-core'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.springframework', module: 'spring-tx'
exclude group: 'org.springframework.boot', module: 'spring-boot'
exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
*/
}
api project(':grails-taglib'), { // TagLibArtefactHandler, TagOutput, OutputContextLookupHelper, AbstractTemplateVariableBinding, TemplateVariableBinding, OutputContextLookup, OutputContext, OutputEncodingStack, AbstractTemplateVariableBinding
/*
// API dependencies in grails-taglib
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.springframework', module: 'spring-core'
*/
}
api 'org.grails:grails-encoder', { // EncodingStateRegistry
/*
// API dependencies in grails-encoder
exclude group: 'org.apache.groovy', module: 'groovy'
exclude group: 'org.apache.groovy', module: 'groovy-json'
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.springframework', module: 'spring-web'
*/
}
api 'org.grails:grails-web-common', { // WrappedResponseHolder, GrailsWebRequest, GrailsApplicationAttributes, WebUtils
/*
// API dependencies in grails-web-common
exclude group: 'org.grails', module: 'grails-core'
exclude group: 'org.grails', module: 'grails-databinding'
exclude group: 'org.grails', module: 'grails-encoder'
exclude group: 'org.apache.groovy', module: 'groovy-templates'
//exclude group: 'org.springframework', module: 'spring-webmvc' // DispatcherServlet
exclude group: 'org.springframework', module: 'spring-context-support'
*/
}

implementation 'org.springframework:spring-context' // ApplicationContext

compileOnly project(':grails-gsp'), { // ResourceAwareTemplateEngine
/*
// API dependencies in grails-gsp
exclude group: 'org.grails', module: 'grails-bootstrap'
exclude group: 'org.apache.groovy', module: 'groovy-templates'
*/
}

// compileOnlyApi 'jakarta.annotation:jakarta.annotation-api'
// compileOnlyApi 'jakarta.servlet:jakarta.servlet-api' // Needed downstream to compile for TagLibrary trait
//
// api 'org.grails:grails-core', { // ArtefactTypeAstTransformation
// // API dependencies in grails-core
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
// exclude group: 'jakarta.persistence', module: 'jakarta.persistence-api'
// exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
// //exclude group: 'org.grails', module: 'grails-bootstrap' // Resource
// //exclude group: 'org.grails', module: 'grails-datastore-core' // MappingContext
// exclude group: 'org.grails', module: 'grails-spring'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.yaml', module: 'snakeyaml'
// exclude group: 'org.springframework', module: 'spring-beans'
// exclude group: 'org.springframework', module: 'spring-core'
// exclude group: 'org.springframework', module: 'spring-context'
// exclude group: 'org.springframework', module: 'spring-tx'
// exclude group: 'org.springframework.boot', module: 'spring-boot'
// exclude group: 'org.springframework.boot', module: 'spring-boot-autoconfigure'
// }
// api project(':grails-taglib'), { // TagLibArtefactHandler, TagOutput, OutputContextLookupHelper, AbstractTemplateVariableBinding, TemplateVariableBinding, OutputContextLookup, OutputContext, OutputEncodingStack, AbstractTemplateVariableBinding
// // API dependencies in grails-taglib
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.springframework', module: 'spring-core'
// }
// api 'org.grails:grails-encoder', { // EncodingStateRegistry
// // API dependencies in grails-encoder
// exclude group: 'org.apache.groovy', module: 'groovy'
// exclude group: 'org.apache.groovy', module: 'groovy-json'
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.slf4j', module: 'jcl-over-slf4j'
// exclude group: 'org.slf4j', module: 'slf4j-api'
// exclude group: 'org.springframework', module: 'spring-web'
// }
// api 'org.grails:grails-web-common', { // WrappedResponseHolder, GrailsWebRequest, GrailsApplicationAttributes, WebUtils
// // API dependencies in grails-web-common
// exclude group: 'org.grails', module: 'grails-core'
// exclude group: 'org.grails', module: 'grails-databinding'
// exclude group: 'org.grails', module: 'grails-encoder'
// exclude group: 'org.apache.groovy', module: 'groovy-templates'
// //exclude group: 'org.springframework', module: 'spring-webmvc' // DispatcherServlet
// exclude group: 'org.springframework', module: 'spring-context-support'
// }
//
// implementation 'org.springframework:spring-context' // ApplicationContext
//
// compileOnly project(':grails-gsp'), { // ResourceAwareTemplateEngine
// // API dependencies in grails-gsp
// exclude group: 'org.grails', module: 'grails-bootstrap'
// exclude group: 'org.apache.groovy', module: 'groovy-templates'
// }
//
testImplementation project(':grails-gsp')
testImplementation 'org.spockframework:spock-core'
testImplementation 'org.springframework:spring-test'

0 comments on commit dd9e941

Please sign in to comment.