diff --git a/gradle/publish-config.gradle b/gradle/publish-config.gradle index cba34af5b0..776a2bca97 100644 --- a/gradle/publish-config.gradle +++ b/gradle/publish-config.gradle @@ -24,7 +24,7 @@ publishing { publications { maven(MavenPublication) { - artifactId = project.name + artifactId = project.findProperty('artifactId') ?: project.name groupId = project.group version = project.version diff --git a/grails-gsp/build.gradle b/grails-gsp/build.gradle index b4ed6fa55c..db7fcab63e 100644 --- a/grails-gsp/build.gradle +++ b/grails-gsp/build.gradle @@ -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' diff --git a/grails-plugin-gsp/build.gradle b/grails-plugin-gsp/build.gradle index d45c115119..973ff31c35 100644 --- a/grails-plugin-gsp/build.gradle +++ b/grails-plugin-gsp/build.gradle @@ -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" diff --git a/grails-plugin-sitemesh3/build.gradle b/grails-plugin-sitemesh3/build.gradle index dd0a061dfe..d1bed6cb32 100644 --- a/grails-plugin-sitemesh3/build.gradle +++ b/grails-plugin-sitemesh3/build.gradle @@ -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 } diff --git a/grails-taglib/build.gradle b/grails-taglib/build.gradle index 38e6c55555..f2b0da0650 100644 --- a/grails-taglib/build.gradle +++ b/grails-taglib/build.gradle @@ -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' diff --git a/grails-web-gsp-taglib/build.gradle b/grails-web-gsp-taglib/build.gradle index 7706bcc48c..c630e38e0a 100644 --- a/grails-web-gsp-taglib/build.gradle +++ b/grails-web-gsp-taglib/build.gradle @@ -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') diff --git a/grails-web-gsp/build.gradle b/grails-web-gsp/build.gradle index d59bc384d2..edc7aed23f 100644 --- a/grails-web-gsp/build.gradle +++ b/grails-web-gsp/build.gradle @@ -7,90 +7,81 @@ 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' @@ -98,7 +89,6 @@ dependencies { 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' diff --git a/grails-web-jsp/build.gradle b/grails-web-jsp/build.gradle index 9a98ab3cf1..ebd36b2bef 100644 --- a/grails-web-jsp/build.gradle +++ b/grails-web-jsp/build.gradle @@ -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') diff --git a/grails-web-taglib/build.gradle b/grails-web-taglib/build.gradle index 481e16f370..292258461a 100644 --- a/grails-web-taglib/build.gradle +++ b/grails-web-taglib/build.gradle @@ -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'