Add h8-preview module: hibernate-demo suite against Hibernate 8.0.0.Beta3 and Jakarta Persistence 4.0.0-M7
Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Gth99spB1CzQmBFofXmU4Z
This commit is contained in:
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
# Facts read from jars: the Jakarta Persistence SPI change and whether Spring implements it.
|
||||
set -uo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
W=$(mktemp -d); R="$HOME/.m2/repository"
|
||||
for a in jakarta.persistence:jakarta.persistence-api:3.2.0 jakarta.persistence:jakarta.persistence-api:4.0.0-M7 org.springframework:spring-orm:7.0.9 org.springframework:spring-orm:7.1.0-M2; do
|
||||
mvn -B -q dependency:get -Dartifact=$a >/dev/null 2>&1
|
||||
done
|
||||
{
|
||||
echo "# persistence-spi (javap on jakarta.persistence.spi.PersistenceUnitInfo, and on Spring's implementation)"
|
||||
for v in 3.2.0 4.0.0-M7; do
|
||||
javap -cp "$R/jakarta/persistence/jakarta.persistence-api/$v/jakarta.persistence-api-$v.jar" jakarta.persistence.spi.PersistenceUnitInfo 2>/dev/null \
|
||||
| grep -E 'public abstract|public default' | sed 's/^ *//; s/jakarta.persistence.spi.//g; s/java.util.//g; s/java.lang.//g; s/jakarta.persistence.//g' | sort > "$W/spi-$v.txt"
|
||||
done
|
||||
echo "--- methods that exist in Jakarta Persistence 4.0.0-M7 but not in 3.2.0"
|
||||
comm -13 "$W/spi-3.2.0.txt" "$W/spi-4.0.0-M7.txt" | sed 's/^/ /'
|
||||
for v in 7.0.9 7.1.0-M2; do
|
||||
echo "--- org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo $v: methods mentioning those names"
|
||||
all=$(javap -cp "$R/org/springframework/spring-orm/$v/spring-orm-$v.jar" org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo 2>/dev/null | grep -c '(' || true)
|
||||
n=$(javap -cp "$R/org/springframework/spring-orm/$v/spring-orm-$v.jar" org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo 2>/dev/null | grep -c -E 'AllPackageDescriptors|DefaultToOneFetchType|AllClassNames|ModuleDescriptors|ManagedPackageDescriptors' || true)
|
||||
echo " class found, $all methods and constructors listed; matches for the six new names: $n"
|
||||
done
|
||||
} > output/06-persistence-spi.txt
|
||||
{
|
||||
echo "# dependency-versions (hibernate-core 8.0.0.Beta3 POM: what it declares)"
|
||||
curl -s https://repo1.maven.org/maven2/org/hibernate/orm/hibernate-core/8.0.0.Beta3/hibernate-core-8.0.0.Beta3.pom \
|
||||
| grep -B1 -A2 -E '<artifactId>(hibernate-models|jakarta.persistence-api|byte-buddy|jandex)</artifactId>' | grep -E 'artifactId|version' | sed 's/^ *//' | paste -sd' ' - | sed 's#</version>#</version>\n#g' | sed 's/^ *//' | grep -v '^$'
|
||||
} > output/07-hibernate-core-pom.txt
|
||||
Reference in New Issue
Block a user