This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch 4.0.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/4.0.x-fixes by this push:
new aca5b5be11 CXF-9038: Run Jakarta RESTful Web Services 3.0 TCK
aca5b5be11 is described below
commit aca5b5be11eef71eb087aa36fefdf83d3da46128
Author: Andriy Redko <[email protected]>
AuthorDate: Sat Jul 13 14:03:42 2024 -0400
CXF-9038: Run Jakarta RESTful Web Services 3.0 TCK
---
tck/Jenkinsfile | 51 ++++++++++++++++++++++++++++++---------------------
tck/ts.jte.template | 38 +++++++++++++++++++++++++-------------
2 files changed, 55 insertions(+), 34 deletions(-)
diff --git a/tck/Jenkinsfile b/tck/Jenkinsfile
index 05ec0b5b03..92a827d0eb 100644
--- a/tck/Jenkinsfile
+++ b/tck/Jenkinsfile
@@ -10,14 +10,14 @@ pipeline {
}
environment {
- ANT_OPTS = "-Djavax.xml.accessExternalSchema=all"
+ ANT_OPTS = "-Xmx2G -Djava.endorsed.dirs=${JAKARTA_JARS}/endorsed
-Djavax.xml.accessExternalStylesheet=all -Djavax.xml.accessExternalSchema=all
-DenableExternalEntityProcessing=true -Djavax.xml.accessExternalDTD=file,http"
}
stages {
stage("Initialization") {
steps {
script {
- currentBuild.displayName = "#${BUILD_NUMBER} CXF
${params.Version} JAX-RS 2.1 TCK"
+ currentBuild.displayName = "#${BUILD_NUMBER} CXF
${params.Version} JAX-RS 3.0 TCK"
}
}
}
@@ -43,29 +43,29 @@ pipeline {
stage('Download JakartaEE TCK') {
steps {
checkout([$class: 'GitSCM',
- branches: [[name: 'refs/tags/8.0.2']],
+ branches: [[name: 'refs/tags/9.1.x']],
userRemoteConfigs: [[url:
'https://github.com/eclipse-ee4j/jakartaee-tck']],
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'jakartaee-tck']]
])
}
}
- stage('Download Glassfish 5.1.0') { // for display purposes
+ stage('Download Glassfish 6.2.5') { // for display purposes
steps {
- sh 'wget
https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/5.1.0/glassfish-5.1.0.zip'
- sh 'unzip glassfish-5.1.0.zip'
- sh 'rm glassfish-5.1.0.zip'
+ sh 'wget
https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/6.2.5/glassfish-6.2.5.zip'
+ sh 'unzip glassfish-6.2.5.zip'
+ sh 'rm glassfish-6.2.5.zip'
}
}
stage('Download Apache CXF bits') {
steps {
echo "Using Apache CXF version: " + params.Version
- sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-core:${params.Version}:jar -Dtransitive=false
-Ddest=glassfish5/glassfish/lib"
- sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-frontend-jaxrs:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish5/glassfish/lib"
- sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-rs-client:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish5/glassfish/lib"
- sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-rs-sse:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish5/glassfish/lib"
- sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-transports-http:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish5/glassfish/lib"
+ sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-core:${params.Version}:jar -Dtransitive=false
-Ddest=glassfish6/glassfish/lib"
+ sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-frontend-jaxrs:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish6/glassfish/lib"
+ sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-rs-client:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish6/glassfish/lib"
+ sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-rs-sse:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish6/glassfish/lib"
+ sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-rt-transports-http:${params.Version}:jar
-Dtransitive=false -Ddest=glassfish6/glassfish/lib"
echo "Including additional dependencies (woodstox, stax2, ...)"
sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.apache.cxf:cxf-parent:${params.Version}:pom -Dtransitive=false
-Ddest=."
@@ -76,8 +76,8 @@ pipeline {
woodstox_version = sh(returnStdout: true, script: "grep
'<cxf.woodstox.core.version>'
cxf-parent-${params.Version}.pom").replaceAll("[\n\r]",
"").replaceAll(".+[>](.+)[<].+", '$1')
staxapi_version = sh(returnStdout: true, script: "grep
'<cxf.woodstox.stax2-api.version>'
cxf-parent-${params.Version}.pom").replaceAll("[\n\r]",
"").replaceAll(".+[>](.+)[<].+", '$1')
- sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=com.fasterxml.woodstox:woodstox-core:${woodstox_version}:jar
-Dtransitive=false -Ddest=glassfish5/glassfish/lib"
- sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.codehaus.woodstox:stax2-api:${staxapi_version}:jar
-Dtransitive=false -Ddest=glassfish5/glassfish/lib"
+ sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=com.fasterxml.woodstox:woodstox-core:${woodstox_version}:jar
-Dtransitive=false -Ddest=glassfish6/glassfish/lib"
+ sh "mvn
org.apache.maven.plugins:maven-dependency-plugin:2.8:get
-DremoteRepositories=https://repository.apache.org/snapshots,https://repository.apache.org
-Dartifact=org.codehaus.woodstox:stax2-api:${staxapi_version}:jar
-Dtransitive=false -Ddest=glassfish6/glassfish/lib"
}
sh "rm cxf-parent-${params.Version}.pom"
@@ -87,11 +87,11 @@ pipeline {
stage('Prepare JAX-RS TCK build configuration') {
steps {
withEnv(["WORKSPACE = ${PWD}"]) {
- sh "wget
https://raw.githubusercontent.com/apache/cxf/main/tck/ts.jte.template"
+ sh "wget
https://raw.githubusercontent.com/apache/cxf/4.0.x-fixes/tck/ts.jte.template"
sh "sed -i '" + 's/${version}/' + params.Version + "/g'
ts.jte.template"
sh "sed -i '" + 's/${woodstox_version}/' + woodstox_version +
"/g' ts.jte.template"
sh "sed -i '" + 's/${staxapi_version}/' + staxapi_version +
"/g' ts.jte.template"
- sh "sed -i '" + 's#${GF_HOME}#' +
"${WORKSPACE}/glassfish5/glassfish" + "#g' ts.jte.template"
+ sh "sed -i '" + 's#${GF_HOME}#' +
"${WORKSPACE}/glassfish6/glassfish" + "#g' ts.jte.template"
sh "cp jakartaee-tck/bin/xml/impl/glassfish/jersey.xml
jakartaee-tck/bin/xml/impl/glassfish/cxf.xml"
}
}
@@ -102,13 +102,19 @@ pipeline {
withEnv([
"WORKSPACE=${pwd()}",
"TS_HOME=${WORKSPACE}/jakartaee-tck",
- "javaee_home=${WORKSPACE}/glassfish5",
- "GF_HOME=${WORKSPACE}/glassfish5/glassfish",
+ "JAKARTA_JARS=${TS_HOME}/jakartaeetck-bundles",
+ "javaee_home=${WORKSPACE}/glassfish6",
+ "GF_HOME=${WORKSPACE}/glassfish6/glassfish",
"AS_JAVA=$JAVA_HOME",
"deliverabledir=jaxrs"
]) {
sh 'yes | cp -vr ts.jte.template
jakartaee-tck/install/jaxrs/bin/ts.jte'
+ mkdir -p ${JAKARTA_JARS}
+ mkdir -p ${JAKARTA_JARS}/modules
+ mkdir -p ${JAKARTA_JARS}/endorsed
+ mvn -f ${TS_HOME}/docker/pom.xml
dependency:copy-dependencies -DoutputDirectory="${JAKARTA_JARS}/modules"
-Dmdep.stripVersion=true
+
dir("${TS_HOME}/install/${deliverabledir}/bin") {
sh "ant build.all"
sh "ant update.jaxrs.wars"
@@ -122,12 +128,15 @@ pipeline {
}
stage('Run JAX-RS TCK') {
+ tools {
+ jdk 'jdk_11_latest'
+ }
steps {
withEnv([
"WORKSPACE=${pwd()}",
"TS_HOME=${WORKSPACE}/restful-ws-tck",
- "javaee_home=${WORKSPACE}/glassfish5",
- "GF_HOME=${WORKSPACE}/glassfish5/glassfish",
+ "javaee_home=${WORKSPACE}/glassfish6",
+ "GF_HOME=${WORKSPACE}/glassfish6/glassfish",
"AS_JAVA=$JAVA_HOME",
"deliverabledir=jaxrs"
]) {
@@ -138,7 +147,7 @@ pipeline {
// interferes with Apache CXF, as such some tests cases
are failing. Modifying the Jersey
// manifest to exclude 'javax.ws.rs.ext.RuntimeDelegate'
from Jersey so the Apache CXF
// implementation will be used reliably all the time.
- sh 'zip -d
${WORKSPACE}/glassfish5/glassfish/modules/jersey-server.jar
META-INF/services/javax.ws.rs.ext.RuntimeDelegate'
+ sh 'zip -d
${WORKSPACE}/glassfish6/glassfish/modules/jersey-server.jar
META-INF/services/javax.ws.rs.ext.RuntimeDelegate'
dir("${TS_HOME}/bin") {
sh "ant config.vi"
diff --git a/tck/ts.jte.template b/tck/ts.jte.template
index 7bfbc3d7a7..c0a4fc4712 100644
--- a/tck/ts.jte.template
+++ b/tck/ts.jte.template
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009, 2018 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2020, 2021 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
@@ -15,12 +15,12 @@
#
#########################################################################
-# #
+# #
# JavaTest Environment file for JAX-RS Compatibility Test Suite #
# #
-# Environment specific properties in this file will likely #
-# have to be modified prior to running the JAX-RS TCK. Instructions #
-# for modifying these properties are contained in this file. #
+# Environment specific properties in this file will likely #
+# have to be modified prior to running the JAX-RS TCK. Instructions #
+# for modifying these properties are contained in this file. #
# #
#########################################################################
@@ -116,7 +116,7 @@ alt.schema.dir=${ts.home}/lib/schemas
###############################################################
ts.run.classpath=${jaxrs_impl.classes}${pathsep}${jaxrs.classes}${pathsep}${servlet.classes}
-ts.harness.classpath=${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/javatest.jar${pathsep}${ant.home}/lib/ant.jar${pathsep}${ts.home}/lib/jaxrstck.jar${pathsep}${ts.home}/lib/jaxb-xjc.jar
+ts.harness.classpath=${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/javatest.jar${pathsep}${ant.home}/lib/ant.jar${pathsep}${ts.home}/lib/jaxrstck.jar${pathsep}${ts.home}/lib/jaxb-xjc.jar${pathsep}${ts.home}/jakartaeetck-bundles/modules/jakarta.validation-api.jar${pathsep}${ts.home}/jakartaeetck-bundles/modules/jakarta.annotation-api.jar${pathsep}${ts.home}/jakartaeetck-bundles/modules/jakarta.activation-api.jar${pathsep}${ts.home}/jakartaeetck-bundles/modules/jakarta.xml.bind-api.
[...]
apache.commons.classes=${pathsep}${ts.home}/lib/commons-httpclient-3.1.jar${pathsep}${ts.home}/lib/commons-logging-1.1.3.jar${pathsep}${ts.home}/lib/commons-codec-1.9.jar
local.classes=${ts.harness.classpath}${pathsep}${ts.home}/lib/jaxrstck.jar${pathsep}${ts.home}/classes${pathsep}${ts.home}/lib/sigtest.jar${pathsep}${apache.commons.classes}
@@ -150,7 +150,6 @@ command.testExecute=com.sun.ts.lib.harness.ExecTSTestCmd \
PATH="${javaee.home}/nativelib" \
${JAVA_HOME}/bin/java \
-Dcts.tmp=$harness.temp.directory \
- -Djava.endorsed.dirs=${s1as.java.endorsed.dirs} \
-Ddeliverable.class=${deliverable.class} $testExecuteClass
$testExecuteArgs
@@ -180,12 +179,18 @@ env.ts_win32.menu=true
##env.ts_win32.command.testExecuteAppClient2=
##########################################################################
+# @jimage.dir: This property specifies the directory where Java 11+
+# modules will be expanded by the jimage tool for use
+# in sigTestClasspath
+#
# @sigTestClasspath: This property must be set when running signature tests.
#
# The sigTestClasspath specifies a list of classes/jar files
# which contains jaxrs implementation and Java SE classes.
##########################################################################
-sigTestClasspath=${java.home}/lib/rt.jar${pathsep}${jaxrs.classes}
+jimage.dir=${ts.home}/tmp/jdk-bundles
+
+sigTestClasspath=${jaxrs.classes}${pathsep}${web.home}/modules/jakarta.xml.bind-api.jar${pathsep}${jimage.dir}/java.base${pathsep}${jimage.dir}/java.rmi${pathsep}${jimage.dir}/java.sql${pathsep}${jimage.dir}/java.naming
########################################################################
@@ -371,10 +376,10 @@ s1as.admin.port=${glassfish.admin.port}
# Default to
${web.home}/modules/jersey-container-servlet-core.jar
#
# @jaxrs.classes -- The classes for the JAX-RS api's
-# Default to
${web.home}/modules/javax.ws.rs-api.jar
+# Default to
${web.home}/modules/jakarta.ws.rs-api.jar
#
# @servlet.classes -- The classes for the Servlet api's
-# Default to ${web.home}/modules/javax.servlet.jar
+# Default to
${web.home}/modules/jakarta.servlet.jar
#
# @servlet_adaptor -- servlet adaptor class provided by vendor,
# used to package resource in .war file and
@@ -397,10 +402,10 @@ s1as.admin.port=${glassfish.admin.port}
# Default to jersey
##########################################################################
web.home=${GF_HOME}
-jaxrs_impl.classes=${web.home}/lib/cxf-rt-rs-client-${version}.jar:${web.home}/lib/cxf-core-${version}.jar:${web.home}/lib/cxf-rt-transports-http-${version}.jar:${web.home}/lib/cxf-rt-frontend-jaxrs-${version}.jar:${web.home}/lib/cxf-rt-rs-sse-${version}.jar
-jaxrs.classes=${web.home}/modules/jakarta.ws.rs-api.jar:${web.home}/modules/endorsed/jakarta.annotation-api.jar:${web.home}/modules/bean-validator.jar:${web.home}/modules/jakarta.json.jar:${web.home}/modules/jakarta.interceptor-api.jar:${web.home}/modules/jakarta.ejb-api.jar:${web.home}/modules/jakarta.inject.jar:${web.home}/modules/cdi-api.jar:${web.home}/modules/jakarta.json.bind-api.jar:${web.home}/lib/woodstox-core-${woodstox_version}.jar:${web.home}/lib/stax2-api-${staxapi_version}.jar
+jaxrs_impl.classes=${web.home}/domains/domain1/lib/cxf-rt-rs-client-${version}.jar:${web.home}/domains/domain1/lib/cxf-core-${version}.jar:${web.home}/domains/domain1/lib/cxf-rt-transports-http-${version}.jar:${web.home}/domains/domain1/lib/cxf-rt-frontend-jaxrs-${version}.jar:${web.home}/domains/domain1/lib/cxf-rt-rs-sse-${version}.jar
+jaxrs.classes=${web.home}/modules/jakarta.ws.rs-api.jar:${web.home}/modules/jakarta.annotation-api.jar:${web.home}/modules/bean-validator.jar:${web.home}/modules/jakarta.json.jar:${web.home}/modules/jakarta.interceptor-api.jar:${web.home}/modules/jakarta.ejb-api.jar:${web.home}/modules/jakarta.inject.jar:${web.home}/modules/jakarta.activation.jar:${web.home}/modules/cdi-api.jar:${web.home}/modules/jakarta.json.bind-api.jar:${web.home}/lib/woodstox-core-6.2.6.jar:${web.home}/lib/stax2-api
[...]
-jaxrs_impl_lib=${web.home}/modules/cxf-rt-frontend-jaxrs-${version}.jar:${web.home}/modules/cxf-rt-rs-sse-${version}.jar
+jaxrs_impl_lib=${web.home}/domains/domain1/lib/cxf-rt-frontend-jaxrs-${version}.jar:${web.home}/domains/domain1/lib/cxf-rt-rs-sse-${version}.jar
servlet_adaptor=org/apache/cxf/jaxrs/servlet/CXFNonSpringJaxrsServlet.class
jaxrs_impl_name=cxf
@@ -412,3 +417,10 @@ impl.vi.deploy.dir=${web.home}/domains/domain1/autodeploy
tslib.name=jaxrstck
+
+###############################################################
+# @extension.dir - The extension directory of RI.
+# The CTS config.vi target will copy the CTS library
+# jars to this location, used only for RI.
+###############################################################
+extension.dir=${web.home}/domains/domain1/lib/ext