Files
hibernate-demo/multitenancy/scripts/run-all.sh
T

33 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Regenerates every file under output/. Needs JDK 25, Maven 3.9 with access to Maven Central, and a running Docker daemon
# (Testcontainers starts one postgres:17-alpine container shared by all tests).
set -euo pipefail
cd "$(dirname "$0")/.."
mkdir -p output
CP_FILE="$(mktemp)"
mvn -B -q dependency:build-classpath -Dmdep.outputFile="$CP_FILE" >/dev/null
JAR="$(tr ':' '\n' < "$CP_FILE" | grep 'hibernate-core-')"
BOOT_HIB="$(tr ':' '\n' < "$CP_FILE" | grep 'spring-boot-hibernate-')"
{
echo "# javap of the shipped $(basename "$JAR")"
for c in org.hibernate.annotations.TenantId org.hibernate.context.spi.CurrentTenantIdentifierResolver \
org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider \
org.hibernate.engine.jdbc.connections.spi.AbstractMultiTenantConnectionProvider \
org.hibernate.cfg.MultiTenancySettings; do
echo; echo "\$ javap -cp $(basename "$JAR") $c"
javap -cp "$JAR" "$c" 2>&1 | grep -v '^Picked up'
done
echo; echo "# javap of $(basename "$BOOT_HIB")"
echo "\$ javap -cp $(basename "$BOOT_HIB") org.springframework.boot.hibernate.autoconfigure.HibernatePropertiesCustomizer"
javap -cp "$BOOT_HIB" org.springframework.boot.hibernate.autoconfigure.HibernatePropertiesCustomizer 2>&1 | grep -v '^Picked up'
echo; echo "# does spring-boot-hibernate mention tenants at all? (entries containing 'tenant', case-insensitive)"
rm -rf "$CP_FILE.d"; mkdir "$CP_FILE.d"; (cd "$CP_FILE.d" && unzip -q "$BOOT_HIB")
echo "matching files: $(grep -rli tenant "$CP_FILE.d" | wc -l)"
rm -rf "$CP_FILE.d"
} > output/00-javap.txt
rm -f "$CP_FILE"
mvn -B clean test
ls -1 output