Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01YPgGH6aMbSLANL3E2HHmS6
24 lines
1.1 KiB
Bash
Executable File
24 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Compiles src/compat/*.java against Hibernate 5.6.15 (h5/) and 7.4.14 (h7/) and records javac's answer in output/.
|
|
set -u
|
|
cd "$(dirname "$0")/.."
|
|
mkdir -p target output
|
|
compile() { # version dir file outfile
|
|
local v=$1 dir=$2 f=$3 out=$4
|
|
rm -rf target/classes-$f-$v; mkdir -p target/classes-$f-$v
|
|
{
|
|
echo "Hibernate $v, compiling $f.java"
|
|
javac -Xlint:deprecation -proc:none -d target/classes-$f-$v -cp "$(cat target/cp-$v.txt)" src/compat/$f.java 2>&1 | grep -v "^Picked up"
|
|
echo "javac exit status: ${PIPESTATUS[0]}"
|
|
} >> $out
|
|
}
|
|
for pair in "h5:5.6.15" "h7:7.4.14"; do
|
|
dir=${pair%%:*}; v=${pair##*:}
|
|
(cd $dir && mvn -q -B dependency:build-classpath -Dmdep.outputFile=../target/cp-$v.txt >/dev/null) || { echo "classpath failed for $v"; exit 1; }
|
|
for spec in "OldHibernate:03-old-hibernate-apis" "NewHibernate:04-new-hibernate-apis" "OldAnnotations:05-old-annotations" "NewAnnotations:06-new-annotations" "JavaxNamespace:09-namespace-javax" "JakartaNamespace:09-namespace-jakarta"; do
|
|
f=${spec%%:*}; n=${spec##*:}
|
|
out=output/$n-$v.txt; : > $out
|
|
compile $v $dir $f $out
|
|
done
|
|
done
|