This is an automated email from the ASF dual-hosted git repository. benw pushed a commit to branch gradle-improvements in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit 0d1861866a0d5c604a7ea24a0bdee5bdae28d7c6 Author: Ben Weidig <b...@netzgut.net> AuthorDate: Sun Aug 3 16:37:38 2025 +0200 TAP5-2809: build.gradle files streamlined, version catalog --- 5_10_RELEASE_NOTES.md | 6 ++ beanmodel/build.gradle | 13 ++- .../main/groovy/tapestry.java-convention.gradle | 10 +-- .../tapestry.junit4-legacy-convention.gradle | 2 +- .../src/main/groovy/tapestry.ssh-convention.gradle | 2 +- .../main/groovy/tapestry.testng-convention.gradle | 2 +- commons/build.gradle | 10 +-- genericsresolver-guava/build.gradle | 6 +- quickstart/build.gradle | 32 ++++---- tapestry-beanvalidator/build.gradle | 14 ++-- tapestry-cdi/build.gradle | 94 +++++++++++----------- tapestry-clojure/build.gradle | 13 +-- tapestry-core/build.gradle | 8 +- tapestry-hibernate-core/build.gradle | 6 +- tapestry-hibernate/build.gradle | 2 +- tapestry-ioc-jcache/build.gradle | 6 +- tapestry-javadoc/build.gradle | 2 +- tapestry-jmx/build.gradle | 6 +- tapestry-jpa/build.gradle | 10 ++- tapestry-json/build.gradle | 7 +- tapestry-kaptcha/build.gradle | 6 +- tapestry-latest-java-tests/build.gradle | 5 +- tapestry-mongodb/build.gradle | 6 +- tapestry-openapi-viewer/build.gradle | 8 +- tapestry-rest-jackson/build.gradle | 13 +-- tapestry-runner/build.gradle | 2 +- tapestry-spock/build.gradle | 2 - tapestry-spring/build.gradle | 12 ++- tapestry-test/build.gradle | 2 +- tapestry-upload/build.gradle | 6 +- tapestry-version-migrator/build.gradle | 6 +- tapestry-webresources/build.gradle | 10 ++- 32 files changed, 184 insertions(+), 145 deletions(-) diff --git a/5_10_RELEASE_NOTES.md b/5_10_RELEASE_NOTES.md index e7d1c36da..227915b73 100644 --- a/5_10_RELEASE_NOTES.md +++ b/5_10_RELEASE_NOTES.md @@ -22,3 +22,9 @@ Scratch pad for changes destined for the 5.10.0 release notes page. # Overall notes + +* Gradle overhaul + * 8.5 -> 8.14.2 + * Version catalogs + * Conventions + * ... diff --git a/beanmodel/build.gradle b/beanmodel/build.gradle index 09b48b253..3e5ec01fe 100644 --- a/beanmodel/build.gradle +++ b/beanmodel/build.gradle @@ -3,21 +3,20 @@ plugins { id 'antlr' } -description = "Fast class property discovery, reading and writing library based on bytecode generation. Extracted from Apache Tapestry, but not dependent on the Web framework (tapestry-core) nor the IoC one (tapestry-ioc)." - +description = 'Fast class property discovery, reading and writing library based on bytecode generation. Extracted from Apache Tapestry, but not dependent on the Web framework (tapestry-core) nor the IoC one (tapestry-ioc).' dependencies { - implementation project(":plastic") - implementation project(":tapestry5-annotations") - implementation project(":commons") + implementation project(':plastic') + implementation project(':tapestry5-annotations') + implementation project(':commons') implementation libs.slf4j.api antlr libs.antlr // Transitive will bring in the unwanted string template library as well - implementation libs.antlr.runtime, { - exclude group: "org.antlr", module: "stringtemplate" + implementation(libs.antlr.runtime) { + exclude group: 'org.antlr', module: 'stringtemplate' } testImplementation platform(libs.spock.bom) diff --git a/buildSrc/src/main/groovy/tapestry.java-convention.gradle b/buildSrc/src/main/groovy/tapestry.java-convention.gradle index bcb003d4a..b94a82142 100644 --- a/buildSrc/src/main/groovy/tapestry.java-convention.gradle +++ b/buildSrc/src/main/groovy/tapestry.java-convention.gradle @@ -53,14 +53,14 @@ dependencies { tasks.withType(Jar).configureEach { // Include license/notice files in the final JAR. from(project.projectDir) { - include "*.txt" - into "META-INF" + include '*.txt' + into 'META-INF' } // JPMS compatibility manifest { - attributes("Automatic-Module-Name": "org.apache.tapestry." + project.name - .replace("tapestry-", "") - .replace("-", ".")) + attributes("Automatic-Module-Name": "org.apache.tapestry.${project.name}" + .replace('tapestry-', '') + .replace('-', '.')) } } diff --git a/buildSrc/src/main/groovy/tapestry.junit4-legacy-convention.gradle b/buildSrc/src/main/groovy/tapestry.junit4-legacy-convention.gradle index de7f4e9bf..436efdc53 100644 --- a/buildSrc/src/main/groovy/tapestry.junit4-legacy-convention.gradle +++ b/buildSrc/src/main/groovy/tapestry.junit4-legacy-convention.gradle @@ -9,4 +9,4 @@ dependencies { tasks.withType(Test).configureEach { useJUnit() -} \ No newline at end of file +} diff --git a/buildSrc/src/main/groovy/tapestry.ssh-convention.gradle b/buildSrc/src/main/groovy/tapestry.ssh-convention.gradle index 0a66e2636..2f6aa7c8a 100644 --- a/buildSrc/src/main/groovy/tapestry.ssh-convention.gradle +++ b/buildSrc/src/main/groovy/tapestry.ssh-convention.gradle @@ -12,4 +12,4 @@ dependencies { // Configure all SshTask instances to use the files from the configuration tasks.withType(SshTask).configureEach { it.sshAntClasspath = configurations.sshAntTask -} \ No newline at end of file +} diff --git a/buildSrc/src/main/groovy/tapestry.testng-convention.gradle b/buildSrc/src/main/groovy/tapestry.testng-convention.gradle index 2962c3670..90dac3640 100644 --- a/buildSrc/src/main/groovy/tapestry.testng-convention.gradle +++ b/buildSrc/src/main/groovy/tapestry.testng-convention.gradle @@ -24,4 +24,4 @@ tasks.withType(Test).configureEach { testTask -> } else { testTask.useTestNG() } -} \ No newline at end of file +} diff --git a/commons/build.gradle b/commons/build.gradle index cf5bec443..ecc9bf194 100644 --- a/commons/build.gradle +++ b/commons/build.gradle @@ -2,11 +2,11 @@ plugins { id 'tapestry.junit5-spock-convention' } -description = "Project including common classes for tapestry-core, tapestry-ioc and beanmodel." - +description = 'Project including common classes for tapestry-core, tapestry-ioc and beanmodel.' dependencies { - api project(":plastic") - api project(":tapestry5-annotations") - implementation project(":tapestry-func") + api project(':plastic') + api project(':tapestry5-annotations') + + implementation project(':tapestry-func') } diff --git a/genericsresolver-guava/build.gradle b/genericsresolver-guava/build.gradle index 9fa32c2cf..90892270a 100644 --- a/genericsresolver-guava/build.gradle +++ b/genericsresolver-guava/build.gradle @@ -3,14 +3,10 @@ plugins { } description = "Replaces the Tapestry Commons's own Java Generics resolution code with the one from Google Guava's one" -def moduleLibs = [ - guava: 'com.google.guava:guava:27.0.1-jre', -] - dependencies { implementation project(':commons') - provided moduleLibs.guava + provided libs.guava testImplementation project(':tapestry-core') testImplementation project(':tapestry-test') diff --git a/quickstart/build.gradle b/quickstart/build.gradle index 8e6de1418..6d300bb24 100644 --- a/quickstart/build.gradle +++ b/quickstart/build.gradle @@ -15,7 +15,7 @@ task copyGradleWrapper(type: Copy) { task addGradleWrapper(type: Exec) { workingDir "$buildDir/wrapper" - commandLine "${rootProject.projectDir}/gradlew", 'wrapper', '--gradle-version', '7.3' + commandLine "${rootProject.projectDir}/gradlew", 'wrapper', '--gradle-version', '8.14.2' standardOutput = new ByteArrayOutputStream() @@ -24,10 +24,10 @@ task addGradleWrapper(type: Exec) { } doFirst { - def wrapperDirectory = new File(buildDir, "wrapper") + def wrapperDirectory = new File(buildDir, 'wrapper') wrapperDirectory.mkdirs() - def settings = new File(wrapperDirectory, "settings.gradle") + def settings = new File(wrapperDirectory, 'settings.gradle') new FileOutputStream(settings).close() } @@ -50,18 +50,18 @@ task processFiltered(type: Copy) { filter(ReplaceTokens, tokens: [ quickstartVersion: project.parent.version, tapestryVersion: project.parent.version, - springBootVersion: '3.1.3', - junitVersion: '5.8.2', - jacksonVersion: '2.13.1', - jsonVersion: '1.1.4', - log4jVersion: '2.17.2', - yassonVersion: '2.0.4', - servletVersion: '5.0.0', - mavenCompilerVersion: '3.8.1', - mavenSurefireVersion: '3.1', - mavenWarVersion: '3.3.1', - mavenJettyVersion: '11.0.15', - grettyVersion: '3.0.6' + springBootVersion: libs.versions.quickstart.spring.boot.get(), + junitVersion: libs.versions.junit5.get(), + jacksonVersion: libs.versions.jackson.get(), + jsonVersion: libs.versions.quickstart.json.get(), + log4jVersion: libs.versions.quickstart.log4j.get(), + yassonVersion: libs.versions.quickstart.yasson.get(), + servletVersion: libs.versions.jakarta.servlet.api.get(), + mavenCompilerVersion: libs.versions.quickstart.maven.compiler.get(), + mavenSurefireVersion: libs.versions.quickstart.maven.surefire.get(), + mavenWarVersion: libs.versions.quickstart.maven.war.get(), + mavenJettyVersion: libs.versions.quickstart.maven.jetty.get(), + grettyVersion: libs.versions.quickstart.gretty.get() ]) } @@ -69,4 +69,4 @@ processResources.dependsOn([addWrappers, processFiltered]) jar { dependsOn(copyGradleWrapper) -} \ No newline at end of file +} diff --git a/tapestry-beanvalidator/build.gradle b/tapestry-beanvalidator/build.gradle index 26a49253a..ebeaaa127 100644 --- a/tapestry-beanvalidator/build.gradle +++ b/tapestry-beanvalidator/build.gradle @@ -6,19 +6,15 @@ import t5build.* description = 'Support for JSR-303 Bean Validation via the Hibernate validator implementation' -def moduleLibs = [ - hibernateValidator: 'org.hibernate:hibernate-validator:8.0.1.Final', -] - dependencies { implementation project(':tapestry-core') implementation libs.jakarta.validation.api - implementation moduleLibs.hibernateValidator + implementation libs.hibernate.validator - implementation libs.selenium.legrc, { - exclude group: "org.seleniumhq.selenium", module: "jetty-repacked" - exclude group: "org.testng", module: "testng" + implementation(libs.selenium.legrc) { + exclude group: 'org.seleniumhq.selenium', module: 'jetty-repacked' + exclude group: 'org.testng', module: 'testng' } testImplementation project(':tapestry-test') @@ -33,7 +29,7 @@ task compileCoffeeScript(type: CompileCoffeeScript) { // Start up the test app, useful when debugging failing integration tests task runTestApp303(type:JavaExec) { mainClass = 'org.apache.tapestry5.test.JettyRunner' - args "-d", "src/test/webapp", "-p", "8080" + args '-d', 'src/test/webapp', '-p', '8080' classpath += project.sourceSets.test.runtimeClasspath } diff --git a/tapestry-cdi/build.gradle b/tapestry-cdi/build.gradle index fb11d9812..7502e4d61 100644 --- a/tapestry-cdi/build.gradle +++ b/tapestry-cdi/build.gradle @@ -1,28 +1,29 @@ import org.gradle.plugins.ide.idea.model.* import t5build.* -description = "Bridge to CDI for Apache Tapestry 5 Project" +plugins { + id 'tapestry.junit4-legacy-convention' +} + +description = 'Bridge to CDI for Apache Tapestry 5 Project' -apply plugin: JavaPlugin buildDir = 'target/gradle-build' - -project.ext.libraryVersions = [ - javaeeapi: '6.0-4', - tomee: '1.6.0', - ziplock: '1.5.1', - junit: '4.8.1', - commonsHttpclient: '3.1', - arquillian: '1.1.1.Final', - jbossJavaeeSpec: '1.0.0.Final', - arquillianGlassfish: '1.0.0.CR4', - glassfishDistrib: '3.1.1-b04', - jbossDistrib: '7.1.1.Final', - cdi: '1.0-SP4', - jbossAS7: '7.1.1.Final', - shrinkwrapDesc: '2.0.0-alpha-3' -] +def moduleLibs = [ + javaeeapi: '6.0-4', + tomee: 'org.apache.openejb:arquillian-tomee-embedded:1.6.0', + ziplock: 'org.apache.openejb:ziplock:1.5.1', + arquillianJunitContainer: 'org.jboss.arquillian.junit:arquillian-junit-container:1.1.1.Final', + arquillianGlassfish: 'org.jboss.arquillian.container:arquillian-glassfish-managed-3.1:1.0.0.CR4', + glassfishDistrib: 'org.glassfish.distributions:glassfish:3.1.1-b04@zip', + jbossAS7: 'org.jboss.as:jboss-as-arquillian-container-managed:7.1.1.Final', + jbossDistrib: 'org.jboss.as:jboss-as-dist:7.1.1.Final@zip', + jbossJavaeeSpec: 'org.jboss.spec:jboss-javaee-6.0:1.0.0.Final', + cdiApi: 'jakarta.enterprise:cdi-api:1.0-SP4', + shrinkwrapDescriptorsApi: 'org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-api-javaee:2.0.0-alpha-3', + shrinkwrapDescriptorsImpl: 'org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-impl-javaee:2.0.0-alpha-3', +] configurations { compileOnly @@ -36,30 +37,28 @@ configurations { dependencies { compile project(':tapestry-core') compile project(':tapestry-ioc') - testCompile (project(':tapestry-test')){ - transitive = false - } - + testCompile (project(':tapestry-test')) { + transitive = false + } + // replace jakarta.enterprise:cdi-api with group: 'org.jboss.spec', name: 'jboss-javaee-6.0', version: libraryVersions.jbossJavaeeSpec to compile against full Java EE API - compileOnly group: 'jakarta.enterprise', name: 'cdi-api', version: libraryVersions.cdi - - - testCompile group: 'org.apache.openejb', name: 'ziplock', version: libraryVersions.ziplock - testCompile group: 'junit', name: 'junit', version: libraryVersions.junit - testCompile group: 'commons-httpclient', name: 'commons-httpclient', version: libraryVersions.commonsHttpclient + compileOnly moduleLibs.cdiApi + + testCompile moduleLibs.ziplock + testCompile libs.commons.httpclient - testCompile group: 'org.jboss.arquillian.junit', name: 'arquillian-junit-container', version: libraryVersions.arquillian - testCompile group: 'org.jboss.shrinkwrap.descriptors', name: 'shrinkwrap-descriptors-api-javaee', version: libraryVersions.shrinkwrapDesc - testRuntime group: 'org.jboss.shrinkwrap.descriptors', name: 'shrinkwrap-descriptors-impl-javaee', version: libraryVersions.shrinkwrapDesc + testCompile moduleLibs.arquillianJunitContainer + testCompile moduleLibs.shrinkwrapDescriptorsApi + testRuntime moduleLibs.shrinkwrapDescriptorsImpl - tomeeEmbeddedTestRuntime group: 'org.apache.openejb', name: 'arquillian-tomee-embedded', version: libraryVersions.tomee + tomeeEmbeddedTestRuntime mopduleLibs.tomee - jbossAS7ManagedTestRuntime group: 'org.jboss.as', name: 'jboss-as-arquillian-container-managed', version: libraryVersions.jbossAS7 - jbossAS7ManagedTestRuntime group: 'org.jboss.spec', name: 'jboss-javaee-6.0', version: libraryVersions.jbossJavaeeSpec - jboss "org.jboss.as:jboss-as-dist:$libraryVersions.jbossDistrib@zip" + jbossAS7ManagedTestRuntime moduleLibs.jbossAS7 + jbossAS7ManagedTestRuntime moduleLibs.jbossJavaeeSpec + jboss moduleLibs.jbossDistrib - glassfishManagedTestRuntime group: 'org.jboss.arquillian.container', name: 'arquillian-glassfish-managed-3.1', version: libraryVersions.arquillianGlassfish - glassfish "org.glassfish.distributions:glassfish:$libraryVersions.glassfishDistrib@zip" + glassfishManagedTestRuntime moduleLibs.arquillianGlassfish + glassfish moduleLibs.glassfishDistrib } sourceSets { @@ -83,8 +82,8 @@ eclipse { } } -task resolveJBoss(type: Copy) { - destinationDir = file('target') +task resolveJBoss(type: Copy) { + destinationDir = file('target') from { zipTree(configurations.jboss.singleFile) } } @@ -95,16 +94,16 @@ task resolveGlassfish(type: Copy) { task tomeeEmbeddedTest(type: Test) { - systemProperty 'arquillian.launch', "tomee_embedded" + systemProperty 'arquillian.launch', 'tomee_embedded' } task jbossAS7ManagedTest(type: Test) { - systemProperty 'arquillian.launch', "jbossas_managed" + systemProperty 'arquillian.launch', 'jbossas_managed' dependsOn { resolveJBoss } } task glassfishManagedTest(type: Test){ - systemProperty 'arquillian.launch', "glassfish_managed" + systemProperty 'arquillian.launch', 'glassfish_managed' dependsOn { resolveGlassfish } } @@ -118,9 +117,8 @@ test { setEnabled(false) } -jar { - - manifest { - attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.cdi.CDIInjectModule' - } - } +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.cdi.CDIInjectModule' + } +} diff --git a/tapestry-clojure/build.gradle b/tapestry-clojure/build.gradle index dde7f7942..d401b7314 100644 --- a/tapestry-clojure/build.gradle +++ b/tapestry-clojure/build.gradle @@ -1,16 +1,13 @@ plugins { id 'tapestry.junit5-spock-convention' } -description = 'Allows Clojure functions to be injected into Tapestry services and components' -def moduleLibs = [ - clojure: 'org.clojure:clojure:1.6.0', -] +description = 'Allows Clojure functions to be injected into Tapestry services and components' dependencies { implementation project(':tapestry-ioc') - implementation moduleLibs.clojure + implementation libs.clojure // Added just to prove that it works (TAP5-1945) testImplementation project(':tapestry-core') @@ -18,4 +15,8 @@ dependencies { testRuntimeOnly libs.jakarta.servlet.api } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.clojure.modules.ClojureModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.clojure.modules.ClojureModule' + } +} diff --git a/tapestry-core/build.gradle b/tapestry-core/build.gradle index 393700baf..0754de77d 100644 --- a/tapestry-core/build.gradle +++ b/tapestry-core/build.gradle @@ -10,9 +10,6 @@ description = 'Central module for Tapestry, containing all core services and com def mainGeneratedDir = 'src/main/generated' def testGeneratedDir = 'src/test/generated' -def moduleVersions = [ - httpclient: '4.5.14' -] dependencies { api project(':tapestry-ioc') @@ -31,14 +28,13 @@ dependencies { provided libs.jakarta.servlet.api - testImplementation "org.apache.httpcomponents:httpclient:${moduleVersions.httpclient}" + testImplementation libs.httpcomponents.httpclient testImplementation project(":tapestry-spock") testRuntimeOnly("${libs.hsqldb.get().module.group}:${libs.hsqldb.get().module.name}:${libs.hsqldb.get().version}:jdk8") testRuntimeOnly libs.guice } - tasks.register('preprocessCoffeeScript', PreprocessCoffeeScript) tasks.register('compileCoffeeScript', CompileCoffeeScript) { @@ -83,7 +79,7 @@ tasks.register('testWithPrototype', Test) { 'appfolder' ].each { appName -> tasks.register("runTest${appName.capitalize()}", JavaExec) { - group = 'Application' // It's good practice to group custom run tasks + group = 'Application' description = "Starts the ${appName} integration test app, useful when debugging." mainClass = 'org.apache.tapestry5.test.JettyRunner' args '-d', "src/test/${appName}", '-p', '8080' diff --git a/tapestry-hibernate-core/build.gradle b/tapestry-hibernate-core/build.gradle index d90175664..f89144f41 100644 --- a/tapestry-hibernate-core/build.gradle +++ b/tapestry-hibernate-core/build.gradle @@ -19,4 +19,8 @@ dependencies { testRuntimeOnly("${libs.hsqldb.get().module.group}:${libs.hsqldb.get().module.name}:${libs.hsqldb.get().version}:jdk8") } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.hibernate.modules.HibernateCoreModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.hibernate.modules.HibernateCoreModule' + } +} diff --git a/tapestry-hibernate/build.gradle b/tapestry-hibernate/build.gradle index 37892a798..4fb26a60f 100644 --- a/tapestry-hibernate/build.gradle +++ b/tapestry-hibernate/build.gradle @@ -23,6 +23,6 @@ jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.hiberna task runTestApp0(type:JavaExec) { description = 'Start tapestry-hibernate integration test app, useful when debugging failing integration tests' mainClass = 'org.apache.tapestry5.test.JettyRunner' - args "-d", "src/test/webapp", "-p", "8080" + args '-d', 'src/test/webapp', '-p', '8080' classpath += project.sourceSets.test.runtimeClasspath } diff --git a/tapestry-ioc-jcache/build.gradle b/tapestry-ioc-jcache/build.gradle index bab5d7717..c285da968 100644 --- a/tapestry-ioc-jcache/build.gradle +++ b/tapestry-ioc-jcache/build.gradle @@ -23,4 +23,8 @@ dependencies { testRuntimeOnly moduleLibs.infinispanJcache /* Just to be able to run the tests */ } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.jcache.module.JCacheModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.jcache.module.JCacheModule' + } +} diff --git a/tapestry-javadoc/build.gradle b/tapestry-javadoc/build.gradle index 3142737a5..59bd8a2b7 100644 --- a/tapestry-javadoc/build.gradle +++ b/tapestry-javadoc/build.gradle @@ -2,7 +2,7 @@ plugins { id 'tapestry.junit5-convention' } -description = "JavaDoc Plugin for Tapestry that generates component reference documentation for component classes" +description = 'JavaDoc Plugin for Tapestry that generates component reference documentation for component classes' dependencies { implementation project(':tapestry-core') diff --git a/tapestry-jmx/build.gradle b/tapestry-jmx/build.gradle index fa69921ca..00694090c 100644 --- a/tapestry-jmx/build.gradle +++ b/tapestry-jmx/build.gradle @@ -10,4 +10,8 @@ dependencies { testImplementation project(':tapestry-test') } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.jmx.modules.JmxModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.jmx.modules.JmxModule' + } +} diff --git a/tapestry-jpa/build.gradle b/tapestry-jpa/build.gradle index b6dc77069..616244556 100644 --- a/tapestry-jpa/build.gradle +++ b/tapestry-jpa/build.gradle @@ -26,13 +26,17 @@ dependencies { testImplementation libs.testng } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.jpa.modules.JpaModule' - (1..6).each { i -> tasks.register("runTestApp$i", JavaExec) { description = "Start app$i integration test app, useful when debugging failing integration tests" mainClass = 'org.apache.tapestry5.test.JettyRunner' - args "-d", "src/test/app$i", "-p", "8080" + args '-d', "src/test/app$i", '-p', '8080' classpath = project.sourceSets.test.runtimeClasspath } } + +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.jpa.modules.JpaModule' + } +} diff --git a/tapestry-json/build.gradle b/tapestry-json/build.gradle index a937b3dd0..45095cc81 100644 --- a/tapestry-json/build.gradle +++ b/tapestry-json/build.gradle @@ -5,11 +5,14 @@ plugins { description = 'Repackaged, improved (and tested) version of code originally from https://github.com/tdunning/open-json' dependencies { - implementation project(':tapestry5-annotations') implementation project(':commons') testImplementation project(":tapestry-func") } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.json.modules.JSONModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.json.modules.JSONModule' + } +} diff --git a/tapestry-kaptcha/build.gradle b/tapestry-kaptcha/build.gradle index 48848bbf5..4757d2928 100644 --- a/tapestry-kaptcha/build.gradle +++ b/tapestry-kaptcha/build.gradle @@ -17,4 +17,8 @@ dependencies { testImplementation project(':tapestry-test') } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.kaptcha.modules.KaptchaModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.kaptcha.modules.KaptchaModule' + } +} diff --git a/tapestry-latest-java-tests/build.gradle b/tapestry-latest-java-tests/build.gradle index a7e000a73..6954db351 100644 --- a/tapestry-latest-java-tests/build.gradle +++ b/tapestry-latest-java-tests/build.gradle @@ -8,14 +8,13 @@ sourceCompatibility = '17' targetCompatibility = '17' tasks.withType(JavaCompile).configureEach { - options.compilerArgs += "--enable-preview" + options.compilerArgs += '--enable-preview' } tasks.withType(Test).configureEach { - jvmArgs += "--enable-preview" + jvmArgs += '--enable-preview' } - dependencies { testImplementation project(':tapestry-ioc') } diff --git a/tapestry-mongodb/build.gradle b/tapestry-mongodb/build.gradle index 10fe2eb32..bd6e72126 100644 --- a/tapestry-mongodb/build.gradle +++ b/tapestry-mongodb/build.gradle @@ -22,4 +22,8 @@ dependencies { testImplementation moduleLibs.embedMongo } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.mongodb.modules.MongodbModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.mongodb.modules.MongodbModule' + } +} diff --git a/tapestry-openapi-viewer/build.gradle b/tapestry-openapi-viewer/build.gradle index d80c43648..293166257 100644 --- a/tapestry-openapi-viewer/build.gradle +++ b/tapestry-openapi-viewer/build.gradle @@ -1,4 +1,4 @@ -description = "Embedded OpenAPI (Swagger) viewer for Tapestry, based on Swagger UI" +description = 'Embedded OpenAPI (Swagger) viewer for Tapestry, based on Swagger UI' dependencies { implementation project(':tapestry-core') @@ -6,4 +6,8 @@ dependencies { testImplementation libs.jakarta.servlet.api } -jar.manifest .attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.openapiviewer.modules.TapestryOpenApiViewerModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.openapiviewer.modules.TapestryOpenApiViewerModule' + } +} diff --git a/tapestry-rest-jackson/build.gradle b/tapestry-rest-jackson/build.gradle index c40d9f11b..74c390a63 100644 --- a/tapestry-rest-jackson/build.gradle +++ b/tapestry-rest-jackson/build.gradle @@ -1,17 +1,20 @@ -description = "Support for using Jackson Databind with the Tapestry REST support" - def moduleLibs = [ - jacksonDatabind: 'com.fasterxml.jackson.core:jackson-databind:2.13.1', jsonschemaGenerator: 'com.github.victools:jsonschema-generator:4.20.0', ] +description = "Support for using Jackson Databind with the Tapestry REST support" + dependencies { implementation project(':tapestry-core') - implementation moduleLibs.jacksonDatabind + implementation libs.jackson.databind implementation moduleLibs.jsonschemaGenerator provided libs.jakarta.servlet.api } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.rest.jackson.modules.RestJacksonModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.rest.jackson.modules.RestJacksonModule' + } +} diff --git a/tapestry-runner/build.gradle b/tapestry-runner/build.gradle index 315f529c5..8d1c0d51b 100644 --- a/tapestry-runner/build.gradle +++ b/tapestry-runner/build.gradle @@ -19,5 +19,5 @@ dependencies { implementation "org.apache.tomcat:tomcat-jasper:${moduleVersions.tomcat}" implementation "org.apache.tomcat:tomcat-dbcp:${moduleVersions.tomcat}" - implementation "commons-cli:commons-cli:${moduleVersions.commonsCli}" + implementation libs.commons.cli } diff --git a/tapestry-spock/build.gradle b/tapestry-spock/build.gradle index 2bf1f59e0..db63ee1d2 100644 --- a/tapestry-spock/build.gradle +++ b/tapestry-spock/build.gradle @@ -5,8 +5,6 @@ plugins { description = 'Provides support Tapestry injections in Spock specifications' -apply plugin: 'groovy' - dependencies { provided project(':commons') provided project(':tapestry-ioc') diff --git a/tapestry-spring/build.gradle b/tapestry-spring/build.gradle index 57da96e2c..51eb4edc4 100644 --- a/tapestry-spring/build.gradle +++ b/tapestry-spring/build.gradle @@ -23,18 +23,22 @@ dependencies { testImplementation project(':tapestry-test') } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.spring.modules.SpringModule' - task runTestApp(type:JavaExec) { description 'Start tapestry-spring integration test app, useful when debugging failing integration tests' main = 'org.apache.tapestry5.test.JettyRunner' - args "-d", "src/test/webapp", "-p", "8080" + args '-d', 'src/test/webapp', '-p', '8080' classpath += project.sourceSets.test.runtimeClasspath } task runTestApp1(type:JavaExec) { description 'Start tapestry-spring integration test app 1, useful when debugging failing integration tests' main = 'org.apache.tapestry5.test.JettyRunner' - args "-d", "src/test/webapp1", "-p", "8080" + args '-d', 'src/test/webapp1', '-p', '8080' classpath += project.sourceSets.test.runtimeClasspath } + +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.spring.modules.SpringModule' + } +} diff --git a/tapestry-test/build.gradle b/tapestry-test/build.gradle index 3dbc2644f..70b34c377 100644 --- a/tapestry-test/build.gradle +++ b/tapestry-test/build.gradle @@ -13,7 +13,7 @@ dependencies { api libs.selenium.java - api libs.selenium.legrc, { + api(libs.selenium.legrc) { exclude group: 'org.seleniumhq.selenium', module: 'jetty-repacked' exclude group: 'org.testng', module: 'testng' exclude group: 'junit', module: 'junit' diff --git a/tapestry-upload/build.gradle b/tapestry-upload/build.gradle index ad518f74f..ee96ec7c7 100644 --- a/tapestry-upload/build.gradle +++ b/tapestry-upload/build.gradle @@ -20,4 +20,8 @@ dependencies { testImplementation project(':tapestry-test') } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.upload.modules.UploadModule' +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.upload.modules.UploadModule' + } +} diff --git a/tapestry-version-migrator/build.gradle b/tapestry-version-migrator/build.gradle index 43bf2bf69..7a211631d 100644 --- a/tapestry-version-migrator/build.gradle +++ b/tapestry-version-migrator/build.gradle @@ -12,4 +12,8 @@ tasks.withType(Test).configureEach { } } -jar.manifest.attributes 'Main-Class': 'org.apache.tapestry5.versionmigrator.Main' +jar { + manifest { + attributes 'Main-Class': 'org.apache.tapestry5.versionmigrator.Main' + } +} diff --git a/tapestry-webresources/build.gradle b/tapestry-webresources/build.gradle index 4a55e2dcb..38b43a70b 100644 --- a/tapestry-webresources/build.gradle +++ b/tapestry-webresources/build.gradle @@ -35,11 +35,15 @@ dependencies { testImplementation libs.webdrivermanager } -jar.manifest.attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.webresources.modules.WebResourcesModule' - test { systemProperties( 'geb.build.reportsDir': "${reporting.baseDir}/geb", 'tapestry.compiled-asset-cache-dir': "${buildDir}/compiled-asset-cache", - 'tapestry.production-mode': "false") + 'tapestry.production-mode': 'false') +} + +jar { + manifest { + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.webresources.modules.WebResourcesModule' + } }