From e0cd1cae14e6b6f8275c26a31980802d9842f67d Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" Date: Mon, 1 Jul 2024 14:53:55 -0500 Subject: [PATCH] Add support for bundling JAX-RS 2.0 API The RPM spec has been updated such that by default it will bundle JAX-RS 2.0 API. --- Dockerfile | 2 +- base/CMakeLists.txt | 36 ++++++++++++++++++++++++++++-------- base/common/CMakeLists.txt | 2 +- pki.spec | 19 +++++++++++++++++++ 4 files changed, 49 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 998d12ac8aa..cc87b832991 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,7 +34,7 @@ RUN if [ -n "$COPR_REPO" ]; then dnf copr enable -y $COPR_REPO; fi # Install PKI runtime dependencies RUN dnf install -y dogtag-pki \ - && rpm -e --nodeps $(rpm -qa | grep -E "^java-|^dogtag-|^python3-dogtag-|^pki-resteasy-|^jboss-logging-") \ + && rpm -e --nodeps $(rpm -qa | grep -E "^java-|^dogtag-|^python3-dogtag-|^pki-resteasy-|^jboss-logging-|^jboss-jaxrs-2.0-api-") \ && dnf clean all \ && rm -rf /var/cache/dnf diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index 04700a97c63..62fea75e0b2 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -8,14 +8,34 @@ find_file(SERVLET_JAR /usr/share/java ) -find_file(JAXRS_API_JAR - NAMES - jaxrs-api.jar - jboss-jaxrs-2.0-api.jar - javax.ws.rs-api.jar - PATHS - /usr/share/java -) + +if (EXISTS "${CMAKE_SOURCE_DIR}/lib") + # use imported JARs + + execute_process( + COMMAND ls ${CMAKE_SOURCE_DIR}/lib + COMMAND sed -n "s/^jboss-jaxrs-2.0-api-\\(.*\\)\\.jar\$/\\1/p" + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE JAXRS_API_VERSION + ) + message("JAXRS_API_VERSION: ${JAXRS_API_VERSION}") + + set(JAXRS_API_JAR "${CMAKE_SOURCE_DIR}/lib/jboss-jaxrs-2.0-api-${JAXRS_API_VERSION}.jar") + set(JAXRS_API_LINK "jboss-jaxrs-2.0-api-${JAXRS_API_VERSION}.jar") + +else() + # use system JARs + + find_file(JAXRS_API_JAR + NAMES + jaxrs-api.jar + jboss-jaxrs-2.0-api.jar + javax.ws.rs-api.jar + PATHS + /usr/share/java + ) + set(JAXRS_API_LINK "../../../..${JAXRS_API_JAR}") +endif (EXISTS "${CMAKE_SOURCE_DIR}/lib") find_file(SLF4J_API_JAR NAMES diff --git a/base/common/CMakeLists.txt b/base/common/CMakeLists.txt index 392c7f4f880..e9a6ac2e1ad 100644 --- a/base/common/CMakeLists.txt +++ b/base/common/CMakeLists.txt @@ -133,7 +133,7 @@ add_custom_command( COMMAND ln -sf ../../../..${JAVAX_ACTIVATION_JAR} lib/javax.activation.jar COMMAND ln -sf ../../../..${JAVAX_ANNOTATIONS_API_JAR} lib/javax.annotations-api.jar COMMAND ln -sf ../../../..${JAXB_API_JAR} lib/jaxb-api.jar - COMMAND ln -sf ../../../..${JAXRS_API_JAR} lib/jaxrs-api.jar + COMMAND ln -sf ${JAXRS_API_LINK} lib/jaxrs-api.jar COMMAND ln -sf ${JBOSS_LOGGING_LINK} lib/jboss-logging.jar COMMAND ln -sf ../../../..${JSS_JAR} lib/jss.jar COMMAND ln -sf ../../../..${LDAPJDK_JAR} lib/ldapjdk.jar diff --git a/pki.spec b/pki.spec index 6e6e2afd4cf..6725f80fb7d 100644 --- a/pki.spec +++ b/pki.spec @@ -454,6 +454,7 @@ Requires: mvn(commons-logging:commons-logging) Requires: mvn(commons-net:commons-net) Requires: mvn(org.slf4j:slf4j-api) Requires: mvn(org.slf4j:slf4j-jdk14) +Requires: mvn(jakarta.annotation:jakarta.annotation-api) Requires: mvn(com.fasterxml.jackson.core:jackson-annotations) Requires: mvn(com.fasterxml.jackson.core:jackson-core) @@ -916,6 +917,12 @@ if [ ! -d lib ] then mkdir lib + JAXRS_VERSION=$(rpm -q jboss-jaxrs-2.0-api | sed -n 's/^jboss-jaxrs-2.0-api-\([^-]*\)-.*$/\1.Final/p') + echo "Importing JAX-RS 2.0 API $JAXRS_VERSION from RPM" + + cp /usr/share/java/jboss-jaxrs-2.0-api.jar \ + lib/jboss-jaxrs-2.0-api-$JAXRS_VERSION.jar + JBOSS_LOGGING_VERSION=$(rpm -q jboss-logging | sed -n 's/^jboss-logging-\([^-]*\)-.*$/\1.Final/p') echo "Importing JBoss Logging $JBOSS_LOGGING_VERSION from RPM" @@ -1180,6 +1187,7 @@ pkgs=base\ %if %{with meta} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki.xml @@ -1187,6 +1195,7 @@ xmlstarlet edit --inplace \ %if %{with base} echo "Installing JAR deps into %{buildroot}%{_datadir}/pki/lib" +cp lib/jboss-jaxrs-2.0-api-*.jar %{buildroot}%{_datadir}/pki/lib cp lib/jboss-logging-*.jar %{buildroot}%{_datadir}/pki/lib cp lib/resteasy-jaxrs-*.jar %{buildroot}%{_datadir}/pki/lib cp lib/resteasy-client-*.jar %{buildroot}%{_datadir}/pki/lib @@ -1195,12 +1204,14 @@ ls -l %{buildroot}%{_datadir}/pki/lib echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-java.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-java.xml echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-tools.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-tools.xml @@ -1213,6 +1224,7 @@ ls -l %{buildroot}%{_datadir}/pki/server/common/lib echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-server.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-server.xml @@ -1221,6 +1233,7 @@ xmlstarlet edit --inplace \ %if %{with ca} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-ca.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-ca.xml @@ -1229,6 +1242,7 @@ xmlstarlet edit --inplace \ %if %{with kra} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-kra.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-kra.xml @@ -1237,6 +1251,7 @@ xmlstarlet edit --inplace \ %if %{with ocsp} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-ocsp.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-ocsp.xml @@ -1245,6 +1260,7 @@ xmlstarlet edit --inplace \ %if %{with tks} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-tks.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-tks.xml @@ -1253,6 +1269,7 @@ xmlstarlet edit --inplace \ %if %{with tps} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-tps.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-tps.xml @@ -1261,6 +1278,7 @@ xmlstarlet edit --inplace \ %if %{with acme} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-acme.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-acme.xml @@ -1269,6 +1287,7 @@ xmlstarlet edit --inplace \ %if %{with est} echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki-pki-est.xml" xmlstarlet edit --inplace \ + -d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \ -d "//_:dependency[_:groupId='org.jboss.logging']" \ -d "//_:dependency[_:groupId='org.jboss.resteasy']" \ %{buildroot}%{_datadir}/maven-metadata/pki-pki-est.xml