diff --git a/ci/jpa-2.2-tck.Jenkinsfile b/ci/jpa-2.2-tck.Jenkinsfile new file mode 100644 index 0000000000..fbc97668e0 --- /dev/null +++ b/ci/jpa-2.2-tck.Jenkinsfile @@ -0,0 +1,72 @@ +@Library('hibernate-jenkins-pipeline-helpers@1.5') _ + +pipeline { + agent { + label 'LongDuration' + } + tools { + jdk 'OpenJDK 8 Latest' + } + stages { + stage('Build') { + steps { + script { + docker.withRegistry('https://index.docker.io/v1/', 'hibernateci.hub.docker.com') { + docker.image('openjdk:8-jdk').pull() + } + } + dir('hibernate') { + checkout scm + sh """ \ + ./gradlew publishToMavenLocal + """ + script { + env.HIBERNATE_VERSION = sh ( + script: "grep hibernateVersion gradle/version.properties|cut -d'=' -f2", + returnStdout: true + ).trim() + } + } + dir('tck') { + checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[url: 'https://github.com/hibernate/jakarta-tck-runner.git']]] + sh """ \ + cd jpa-2.2; docker build -t jakarta-tck-runner . + """ + } + } + } + stage('Run TCK') { + steps { + sh """ \ + docker rm -f tck + docker run -v ~/.m2/repository/org/hibernate:/root/.m2/repository/org/hibernate:z -e NO_SLEEP=true -e HIBERNATE_VERSION=$HIBERNATE_VERSION --name tck jakarta-tck-runner + docker cp tck:/tck/persistence-tck/tmp/JTreport/ ./JTreport + """ + archiveArtifacts artifacts: 'JTreport/**' + script { + failures = sh ( + script: """ \ + while read line; do + if [[ "$line" != "*Passed." ]]; then + echo "$line" + fi + done = 9 ) { - // See org.hibernate.boot.model.naming.NamingHelperTest.DefaultCharset.set - jvmArgs( ['--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED'] ) - // Weld needs this to generate proxies - jvmArgs( ['--add-opens', 'java.base/java.security=ALL-UNNAMED'] ) - jvmArgs( ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] ) - } -} \ No newline at end of file +// todo: enable again when we can finally use the Jakarta JARs from narayana +//task unpackTestJar(type: Copy) { +// dependsOn jar +// fileTree(project.buildDir).matching { include 'libs/*-test.jar' }.each { +// def outputDir = file("${buildDir}/unpacked/" + it.name) +// from zipTree(it) +// into outputDir +// } +//} +// +//task copyBundleResources (type: Copy) { +// dependsOn unpackTestJar +// File unpackedDir = new File(project.buildDir, "libs/hibernate-core-jakarta-${project.version}-test.jar") +// ext { +// bundlesTargetDir = file( "${buildDir}/bundles" ) +// bundleTokens = dbBundle[db] +// ext.bundleTokens['buildDirName'] = buildDir.absolutePath +// } +// +// from file("${buildDir}/unpacked/${unpackedDir.name}/templates") +// into ext.bundlesTargetDir +// filter( ReplaceTokens, tokens: ext.bundleTokens) +// doFirst { +// ext.bundlesTargetDir.mkdirs() +// } +//} +// +//processTestResources.dependsOn copyBundleResources +// +//artifacts { +// tests new File(project.buildDir, "libs/hibernate-core-jakarta-${project.version}-test.jar") +//} +// +//test { +// fileTree(project.buildDir).matching { include 'libs/*-test.jar' }.each { +// def outputDir = file("${buildDir}/unpacked/" + it.name) +// testClassesDirs += files(outputDir) +// classpath += files(outputDir) +// } +// systemProperty 'file.encoding', 'utf-8' +// +// if ( gradle.ext.javaVersions.test.launcher.asInt() >= 9 ) { +// // See org.hibernate.boot.model.naming.NamingHelperTest.DefaultCharset.set +// jvmArgs( ['--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED'] ) +// // Weld needs this to generate proxies +// jvmArgs( ['--add-opens', 'java.base/java.security=ALL-UNNAMED'] ) +// jvmArgs( ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] ) +// } +//} \ No newline at end of file diff --git a/hibernate-envers-jakarta/hibernate-envers-jakarta.gradle b/hibernate-envers-jakarta/hibernate-envers-jakarta.gradle index 66f4b74493..ac4963b0b4 100644 --- a/hibernate-envers-jakarta/hibernate-envers-jakarta.gradle +++ b/hibernate-envers-jakarta/hibernate-envers-jakarta.gradle @@ -28,9 +28,10 @@ dependencies { 'org.eclipse.transformer:org.eclipse.transformer:0.2.0', 'org.eclipse.transformer:org.eclipse.transformer.cli:0.2.0' - testCompile( project( ':hibernate-testing-jakarta' ) ) testCompile( project( ':hibernate-envers-jakarta' ) ) - testCompile( project( path: ':hibernate-core-jakarta', configuration: 'tests' ) ) +// todo: enable again when we can finally use the Jakarta JARs from narayana +// testCompile( project( ':hibernate-testing-jakarta' ) ) +// testCompile( project( path: ':hibernate-core-jakarta', configuration: 'tests' ) ) } jar { @@ -75,29 +76,30 @@ jar { } } -task unpackTestJar(type: Copy) { - dependsOn jar - fileTree(project.buildDir).matching { include 'libs/*-test.jar' }.each { - def outputDir = file("${buildDir}/unpacked/" + it.name) - from zipTree(it) - into outputDir - } -} - -test { - dependsOn unpackTestJar - fileTree(project.buildDir).matching { include 'libs/*-test.jar' }.each { - def outputDir = file("${buildDir}/unpacked/" + it.name) - testClassesDirs += files(outputDir) - classpath += files(outputDir) - } - systemProperty 'file.encoding', 'utf-8' - - if ( gradle.ext.javaVersions.test.launcher.asInt() >= 9 ) { - // See org.hibernate.boot.model.naming.NamingHelperTest.DefaultCharset.set - jvmArgs( ['--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED'] ) - // Weld needs this to generate proxies - jvmArgs( ['--add-opens', 'java.base/java.security=ALL-UNNAMED'] ) - jvmArgs( ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] ) - } -} \ No newline at end of file +// todo: enable again when we can finally use the Jakarta JARs from narayana +//task unpackTestJar(type: Copy) { +// dependsOn jar +// fileTree(project.buildDir).matching { include 'libs/*-test.jar' }.each { +// def outputDir = file("${buildDir}/unpacked/" + it.name) +// from zipTree(it) +// into outputDir +// } +//} +// +//test { +// dependsOn unpackTestJar +// fileTree(project.buildDir).matching { include 'libs/*-test.jar' }.each { +// def outputDir = file("${buildDir}/unpacked/" + it.name) +// testClassesDirs += files(outputDir) +// classpath += files(outputDir) +// } +// systemProperty 'file.encoding', 'utf-8' +// +// if ( gradle.ext.javaVersions.test.launcher.asInt() >= 9 ) { +// // See org.hibernate.boot.model.naming.NamingHelperTest.DefaultCharset.set +// jvmArgs( ['--add-opens', 'java.base/java.nio.charset=ALL-UNNAMED'] ) +// // Weld needs this to generate proxies +// jvmArgs( ['--add-opens', 'java.base/java.security=ALL-UNNAMED'] ) +// jvmArgs( ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] ) +// } +//} \ No newline at end of file diff --git a/hibernate-jboss-jta/hibernate-jboss-jta.gradle b/hibernate-jboss-jta/hibernate-jboss-jta.gradle index e0331957af..bc3ebb694f 100644 --- a/hibernate-jboss-jta/hibernate-jboss-jta.gradle +++ b/hibernate-jboss-jta/hibernate-jboss-jta.gradle @@ -7,7 +7,13 @@ description = 'JBoss JTA transformed to be JTA 2.0 compatible' -apply from: rootProject.file( 'gradle/java-module.gradle' ) +apply from: rootProject.file( 'gradle/published-java-module.gradle' ) + +tasks.withType(PublishToMavenRepository) { + onlyIf { + repository == publishing.repositories.mavenLocal + } +} configurations { jakartaeeTransformJars @@ -16,7 +22,7 @@ configurations { dependencies { compile( libraries.jakarta_jta ) compile( libraries.jakarta_resource ) - compile( project(':hibernate-transaction-spi') ) + compile( libraries.jboss_tx_spi_jakarta ) jakartaeeTransformJars 'biz.aQute.bnd:biz.aQute.bnd.transform:5.1.1', 'commons-cli:commons-cli:1.4', diff --git a/hibernate-testing-jakarta/hibernate-testing-jakarta.gradle b/hibernate-testing-jakarta/hibernate-testing-jakarta.gradle index 34aa2bed41..a018244827 100644 --- a/hibernate-testing-jakarta/hibernate-testing-jakarta.gradle +++ b/hibernate-testing-jakarta/hibernate-testing-jakarta.gradle @@ -7,9 +7,13 @@ description = 'Support for testing Hibernate ORM Jakarta functionality' -// todo (jakarta): replace this when the jakarta artifact is released -apply from: rootProject.file( 'gradle/java-module.gradle' ) -//apply from: rootProject.file( 'gradle/published-java-module.gradle' ) +apply from: rootProject.file( 'gradle/published-java-module.gradle' ) + +tasks.withType(PublishToMavenRepository) { + onlyIf { + repository == publishing.repositories.mavenLocal + } +} configurations { jakartaeeTransformJars @@ -26,9 +30,9 @@ dependencies { compile( libraries.log4j ) // todo (jakarta): replace this when the jakarta artifacts are released compile project( ':hibernate-jboss-jta' ) -// compile( libraries.jboss_tx_spi_jakarta ) { -// transitive=false; -// } + compile( libraries.jboss_tx_spi_jakarta ) { + transitive=false; + } // compile ( libraries.jboss_jta_jakarta ) { // transitive=false; // } diff --git a/hibernate-transaction-client/hibernate-transaction-client.gradle b/hibernate-transaction-client/hibernate-transaction-client.gradle index bd3cb0430b..591d8367ea 100644 --- a/hibernate-transaction-client/hibernate-transaction-client.gradle +++ b/hibernate-transaction-client/hibernate-transaction-client.gradle @@ -7,7 +7,13 @@ description = 'Wildfly Transaction Client transformed to be JTA 2.0 compatible' -apply from: rootProject.file( 'gradle/java-module.gradle' ) +apply from: rootProject.file( 'gradle/published-java-module.gradle' ) + +tasks.withType(PublishToMavenRepository) { + onlyIf { + repository == publishing.repositories.mavenLocal + } +} configurations { jakartaeeTransformJars diff --git a/hibernate-transaction-spi/hibernate-transaction-spi.gradle b/hibernate-transaction-spi/hibernate-transaction-spi.gradle deleted file mode 100644 index 57aced585f..0000000000 --- a/hibernate-transaction-spi/hibernate-transaction-spi.gradle +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Hibernate, Relational Persistence for Idiomatic Java - * - * License: GNU Lesser General Public License (LGPL), version 2.1 or later. - * See the lgpl.txt file in the root directory or . - */ - -description = 'Wildfly Transaction SPI transformed to be JTA 2.0 compatible' - -apply from: rootProject.file( 'gradle/java-module.gradle' ) - -configurations { - jakartaeeTransformJars -} - -dependencies { - compile( libraries.jakarta_jta ) - - jakartaeeTransformJars 'biz.aQute.bnd:biz.aQute.bnd.transform:5.1.1', - 'commons-cli:commons-cli:1.4', - 'org.slf4j:slf4j-simple:1.7.30', - 'org.slf4j:slf4j-api:1.7.26', - 'org.eclipse.transformer:org.eclipse.transformer:0.2.0', - 'org.eclipse.transformer:org.eclipse.transformer.cli:0.2.0' - testCompile ( libraries.jboss_tx_spi ) { - transitive=false; - } -} - -jar { - def sourceJarPath = project.configurations.testCompile.find { it.name.startsWith("jboss-transaction-spi-") } - inputs.files(sourceJarPath).skipWhenEmpty() - outputs.dir project.buildDir - doLast { - new File(project.buildDir, "libs").mkdirs() - fileTree(project.buildDir).matching { include 'libs/*.jar' }.each { delete it } - - println 'Initial bundle jar name [ ' + sourceJarPath + ' ]' - - def finalBundleJarName = project.buildDir.path + '/libs/hibernate-transaction-spi-' + project.version + ".jar" - println 'Default jakarta final bundle jar name [ ' + finalBundleJarName + ' ]' - - def transformerArgs = [ - sourceJarPath, finalBundleJarName, - '-q', // quiet output - '-tr', new File(getProjectDir().getParentFile(), 'rules/jakarta-renames.properties').path, - '-tv', new File(getProjectDir().getParentFile(), 'rules/jakarta-versions.properties').path, - '-td', new File(getProjectDir().getParentFile(), 'rules/jakarta-direct.properties').path, - ] - - println 'Transformer options:' - transformerArgs.each { - println ' [ ' + it + ' ]' - } - - javaexec { - classpath configurations.jakartaeeTransformJars - main = 'org.eclipse.transformer.jakarta.JakartaTransformer' - args = transformerArgs - } - } -} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index ca6903e25c..af1d875e26 100644 --- a/settings.gradle +++ b/settings.gradle @@ -90,11 +90,11 @@ include 'hibernate-core' include 'hibernate-core-jakarta' include 'hibernate-entitymanager' include 'hibernate-testing' -include 'hibernate-testing-jakarta' +// todo: enable again when we can finally use the Jakarta JARs from narayana +//include 'hibernate-testing-jakarta' // todo (jakarta): remove these three when the jakarta artifacts are released -include 'hibernate-jboss-jta' -include 'hibernate-transaction-client' -include 'hibernate-transaction-spi' +//include 'hibernate-jboss-jta' +//include 'hibernate-transaction-client' include 'hibernate-envers' include 'hibernate-envers-jakarta'