File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -9,14 +9,24 @@ ARG VALIDATOR_REF=main
99
1010FROM maven:3.9-eclipse-temurin-17 AS build
1111ARG VALIDATOR_REF
12+ COPY relax-danubetech-checksums.awk /tmp/relax-danubetech-checksums.awk
1213RUN git clone --depth 1 --branch "${VALIDATOR_REF}" \
1314 https://github.com/1EdTech/digital-credentials-public-validator.git /src
1415WORKDIR /src
1516# libsodium is needed by the crypto libs even during test-compile; skip tests
1617# for image build speed (we exercise the service through its REST API instead).
18+ #
19+ # DanubeTech's public Nexus (verifiable-credentials-java, uni-resolver-client)
20+ # serves the artifacts but no .sha1/.md5 companions. The upstream POM pins
21+ # checksumPolicy=fail on that repo, so Maven 3.9+ aborts with
22+ # "Checksum validation failed, no checksums available". Relax only that
23+ # repository; 1EdTech's own Nexus stays strict. --lax-checksums is a second
24+ # belt if a future POM reformats the XML and the awk no longer matches.
1725RUN apt-get update && apt-get install -y --no-install-recommends libsodium23 \
1826 && rm -rf /var/lib/apt/lists/* \
19- && mvn -q -DskipTests package
27+ && awk -f /tmp/relax-danubetech-checksums.awk pom.xml > pom.xml.new \
28+ && mv pom.xml.new pom.xml \
29+ && mvn --lax-checksums -q -DskipTests package
2030
2131FROM eclipse-temurin:17-jdk
2232RUN apt-get update && apt-get install -y --no-install-recommends libsodium23 \
Original file line number Diff line number Diff line change @@ -74,7 +74,12 @@ header) so verification needs no DID resolution or outbound network. Results:
7474
7575- ` docker-compose.yml ` — both validators as services.
7676- ` Dockerfile.ob3 ` — multi-stage (Maven build + runtime) for the OB 3.0
77- validator, whose upstream Dockerfile assumes a pre-built jar.
77+ validator, whose upstream Dockerfile assumes a pre-built jar. The Maven
78+ stage rewrites ` checksumPolicy ` on the ` danubetech-public ` repository to
79+ ` ignore ` : that Nexus serves ` verifiable-credentials-java ` / ` uni-resolver-client `
80+ without ` .sha1 ` /` .md5 ` companions, and the upstream POM pins ` fail ` , which
81+ makes Maven 3.9+ abort the image build.
82+ - ` relax-danubetech-checksums.awk ` — the POM rewrite used by ` Dockerfile.ob3 ` .
7883- ` conftest.py ` — service-URL fixtures (skip if down) + an ephemeral static
7984 file server.
8085- ` test_official_validators.py ` — the opt-in tests.
Original file line number Diff line number Diff line change 1+ # Rewrite checksumPolicy=fail -> ignore only inside the danubetech-public
2+ # <repository> block. DanubeTech's Nexus serves the jars but no .sha1/.md5
3+ # companions, so Maven 3.9+ otherwise aborts with
4+ # "Checksum validation failed, no checksums available".
5+ BEGIN { in_repo = 0 ; buf = " " }
6+ /<repository> / {
7+ in_repo = 1
8+ buf = $0
9+ next
10+ }
11+ in_repo {
12+ buf = buf " \n " $0
13+ if ($0 ~ /<\/ repository> /) {
14+ if (buf ~ /<id>danubetech-public<\/ id> /) {
15+ gsub (/<checksumPolicy>fail<\/ checksumPolicy> /, \
16+ " <checksumPolicy>ignore</checksumPolicy>" , buf)
17+ }
18+ print buf
19+ buf = " "
20+ in_repo = 0
21+ }
22+ next
23+ }
24+ { print }
You can’t perform that action at this time.
0 commit comments