Skip to content

Commit

Permalink
Add support for bundling Jackson
Browse files Browse the repository at this point in the history
The RPM spec has been updated such that by default it will bundle
Jackson library.
  • Loading branch information
edewata committed Jul 3, 2024
1 parent e0cd1ca commit b3e5b57
Show file tree
Hide file tree
Showing 4 changed files with 141 additions and 47 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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-|^jboss-jaxrs-2.0-api-") \
&& rpm -e --nodeps $(rpm -qa | grep -E "^java-|^dogtag-|^python3-dogtag-|^pki-resteasy-|^jboss-logging-|^jboss-jaxrs-2.0-api-|^jackson-") \
&& dnf clean all \
&& rm -rf /var/cache/dnf

Expand Down
117 changes: 78 additions & 39 deletions base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -126,50 +126,89 @@ find_file(HTTPCORE_JAR
/usr/share/java
)

find_file(JACKSON_CORE_JAR
NAMES
jackson-core.jar
PATHS
/usr/share/java
)
if (EXISTS "${CMAKE_SOURCE_DIR}/lib")
# use imported JARs

find_file(JACKSON_DATABIND_JAR
NAMES
jackson-databind.jar
PATHS
/usr/share/java
)
execute_process(
COMMAND ls ${CMAKE_SOURCE_DIR}/lib
COMMAND sed -n "s/^jackson-annotations-\\(.*\\)\\.jar\$/\\1/p"
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE JACKSON_VERSION
)
message("JACKSON_VERSION: ${JACKSON_VERSION}")

find_file(JACKSON_ANNOTATIONS_JAR
NAMES
jackson-annotations.jar
PATHS
/usr/share/java
)
set(JACKSON_ANNOTATIONS_JAR "${CMAKE_SOURCE_DIR}/lib/jackson-annotations-${JACKSON_VERSION}.jar")
set(JACKSON_ANNOTATIONS_LINK "jackson-annotations-${JACKSON_VERSION}.jar")

find_file(JACKSON_JAXRS_BASE_JAR
NAMES
jackson-jaxrs-base.jar
PATHS
/usr/share/java/jackson-jaxrs-providers
/usr/share/java
)
set(JACKSON_CORE_JAR "${CMAKE_SOURCE_DIR}/lib/jackson-core-${JACKSON_VERSION}.jar")
set(JACKSON_CORE_LINK "jackson-core-${JACKSON_VERSION}.jar")

find_file(JACKSON_JAXRS_JSON_PROVIDER_JAR
NAMES
jackson-jaxrs-json-provider.jar
PATHS
/usr/share/java/jackson-jaxrs-providers
/usr/share/java
)
set(JACKSON_DATABIND_JAR "${CMAKE_SOURCE_DIR}/lib/jackson-databind-${JACKSON_VERSION}.jar")
set(JACKSON_DATABIND_LINK "jackson-databind-${JACKSON_VERSION}.jar")

find_file(JACKSON_MODULE_JAXB_ANNOTATIONS_JAR
NAMES
jackson-module-jaxb-annotations.jar
PATHS
/usr/share/java/jackson-modules
/usr/share/java
)
set(JACKSON_JAXRS_BASE_JAR "${CMAKE_SOURCE_DIR}/lib/jackson-jaxrs-base-${JACKSON_VERSION}.jar")
set(JACKSON_JAXRS_BASE_LINK "jackson-jaxrs-base-${JACKSON_VERSION}.jar")

set(JACKSON_JAXRS_JSON_PROVIDER_JAR "${CMAKE_SOURCE_DIR}/lib/jackson-jaxrs-json-provider-${JACKSON_VERSION}.jar")
set(JACKSON_JAXRS_JSON_PROVIDER_LINK "jackson-jaxrs-json-provider-${JACKSON_VERSION}.jar")

set(JACKSON_MODULE_JAXB_ANNOTATIONS_JAR "${CMAKE_SOURCE_DIR}/lib/jackson-module-jaxb-annotations-${JACKSON_VERSION}.jar")
set(JACKSON_MODULE_JAXB_ANNOTATIONS_LINK "jackson-module-jaxb-annotations-${JACKSON_VERSION}.jar")

else()
# use system JARs

find_file(JACKSON_ANNOTATIONS_JAR
NAMES
jackson-annotations.jar
PATHS
/usr/share/java
)
set(JACKSON_ANNOTATIONS_LINK "../../../..${JACKSON_ANNOTATIONS_JAR}")

find_file(JACKSON_CORE_JAR
NAMES
jackson-core.jar
PATHS
/usr/share/java
)
set(JACKSON_CORE_LINK "../../../..${JACKSON_CORE_JAR}")

find_file(JACKSON_DATABIND_JAR
NAMES
jackson-databind.jar
PATHS
/usr/share/java
)
set(JACKSON_DATABIND_LINK "../../../..${JACKSON_DATABIND_JAR}")

find_file(JACKSON_JAXRS_BASE_JAR
NAMES
jackson-jaxrs-base.jar
PATHS
/usr/share/java/jackson-jaxrs-providers
/usr/share/java
)
set(JACKSON_JAXRS_BASE_LINK "../../../..${JACKSON_JAXRS_BASE_JAR}")

find_file(JACKSON_JAXRS_JSON_PROVIDER_JAR
NAMES
jackson-jaxrs-json-provider.jar
PATHS
/usr/share/java/jackson-jaxrs-providers
/usr/share/java
)
set(JACKSON_JAXRS_JSON_PROVIDER_LINK "../../../..${JACKSON_JAXRS_JSON_PROVIDER_JAR}")

find_file(JACKSON_MODULE_JAXB_ANNOTATIONS_JAR
NAMES
jackson-module-jaxb-annotations.jar
PATHS
/usr/share/java/jackson-modules
/usr/share/java
)
set(JACKSON_MODULE_JAXB_ANNOTATIONS_LINK "../../../..${JACKSON_MODULE_JAXB_ANNOTATIONS_JAR}")
endif (EXISTS "${CMAKE_SOURCE_DIR}/lib")

execute_process(
COMMAND awk -F= "$1==\"ID\" { print $2 ;}" /etc/os-release
Expand Down
12 changes: 6 additions & 6 deletions base/common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,12 @@ add_custom_command(
COMMAND ln -sf ../../../..${COMMONS_NET_JAR} lib/commons-net.jar
COMMAND ln -sf ../../../..${HTTPCLIENT_JAR} lib/httpclient.jar
COMMAND ln -sf ../../../..${HTTPCORE_JAR} lib/httpcore.jar
COMMAND ln -sf ../../../..${JACKSON_ANNOTATIONS_JAR} lib/jackson-annotations.jar
COMMAND ln -sf ../../../..${JACKSON_CORE_JAR} lib/jackson-core.jar
COMMAND ln -sf ../../../..${JACKSON_DATABIND_JAR} lib/jackson-databind.jar
COMMAND ln -sf ../../../..${JACKSON_JAXRS_BASE_JAR} lib/jackson-jaxrs-base.jar
COMMAND ln -sf ../../../..${JACKSON_JAXRS_JSON_PROVIDER_JAR} lib/jackson-jaxrs-json-provider.jar
COMMAND ln -sf ../../../..${JACKSON_MODULE_JAXB_ANNOTATIONS_JAR} lib/jackson-module-jaxb-annotations.jar
COMMAND ln -sf ${JACKSON_ANNOTATIONS_LINK} lib/jackson-annotations.jar
COMMAND ln -sf ${JACKSON_CORE_LINK} lib/jackson-core.jar
COMMAND ln -sf ${JACKSON_DATABIND_LINK} lib/jackson-databind.jar
COMMAND ln -sf ${JACKSON_JAXRS_BASE_LINK} lib/jackson-jaxrs-base.jar
COMMAND ln -sf ${JACKSON_JAXRS_JSON_PROVIDER_LINK} lib/jackson-jaxrs-json-provider.jar
COMMAND ln -sf ${JACKSON_MODULE_JAXB_ANNOTATIONS_LINK} lib/jackson-module-jaxb-annotations.jar
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
Expand Down
57 changes: 56 additions & 1 deletion pki.spec
Original file line number Diff line number Diff line change
Expand Up @@ -456,12 +456,12 @@ Requires: mvn(org.slf4j:slf4j-api)
Requires: mvn(org.slf4j:slf4j-jdk14)
Requires: mvn(jakarta.annotation:jakarta.annotation-api)

%if %{without deps}
Requires: mvn(com.fasterxml.jackson.core:jackson-annotations)
Requires: mvn(com.fasterxml.jackson.core:jackson-core)
Requires: mvn(com.fasterxml.jackson.core:jackson-databind)
Requires: mvn(com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider)

%if %{without deps}
Requires: mvn(org.jboss.resteasy:resteasy-client)
Requires: mvn(org.jboss.resteasy:resteasy-jackson2-provider)
Requires: mvn(org.jboss.resteasy:resteasy-jaxrs)
Expand Down Expand Up @@ -917,6 +917,22 @@ if [ ! -d lib ]
then
mkdir lib

JACKSON_VERSION=$(rpm -q jackson-annotations | sed -n 's/^jackson-annotations-\([^-]*\)-.*$/\1/p')
echo "Importing Jackson $JACKSON_VERSION from RPM"

cp /usr/share/java/jackson-annotations.jar \
lib/jackson-annotations-$JACKSON_VERSION.jar
cp /usr/share/java/jackson-core.jar \
lib/jackson-core-$JACKSON_VERSION.jar
cp /usr/share/java/jackson-databind.jar \
lib/jackson-databind-$JACKSON_VERSION.jar
cp /usr/share/java/jackson-jaxrs-providers/jackson-jaxrs-base.jar \
lib/jackson-jaxrs-base-$JACKSON_VERSION.jar
cp /usr/share/java/jackson-jaxrs-providers/jackson-jaxrs-json-provider.jar \
lib/jackson-jaxrs-json-provider-$JACKSON_VERSION.jar
cp /usr/share/java/jackson-modules/jackson-module-jaxb-annotations.jar \
lib/jackson-module-jaxb-annotations-$JACKSON_VERSION.jar

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"

Expand Down Expand Up @@ -1187,6 +1203,9 @@ pkgs=base\
%if %{with meta}
echo "Removing RPM deps from %{buildroot}%{_datadir}/maven-metadata/pki.xml"
xmlstarlet edit --inplace \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1195,6 +1214,12 @@ xmlstarlet edit --inplace \

%if %{with base}
echo "Installing JAR deps into %{buildroot}%{_datadir}/pki/lib"
cp lib/jackson-annotations-*.jar %{buildroot}%{_datadir}/pki/lib
cp lib/jackson-core-*.jar %{buildroot}%{_datadir}/pki/lib
cp lib/jackson-databind-*.jar %{buildroot}%{_datadir}/pki/lib
cp lib/jackson-jaxrs-base-*.jar %{buildroot}%{_datadir}/pki/lib
cp lib/jackson-jaxrs-json-provider-*.jar %{buildroot}%{_datadir}/pki/lib
cp lib/jackson-module-jaxb-annotations-*.jar %{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
Expand All @@ -1204,13 +1229,19 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1224,6 +1255,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1233,6 +1267,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1242,6 +1279,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1251,6 +1291,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1260,6 +1303,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1269,6 +1315,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1278,6 +1327,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand All @@ -1287,6 +1339,9 @@ 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='com.fasterxml.jackson.core']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.module']" \
-d "//_:dependency[_:groupId='com.fasterxml.jackson.jaxrs']" \
-d "//_:dependency[_:groupId='org.jboss.spec.javax.ws.rs']" \
-d "//_:dependency[_:groupId='org.jboss.logging']" \
-d "//_:dependency[_:groupId='org.jboss.resteasy']" \
Expand Down

0 comments on commit b3e5b57

Please sign in to comment.