1616
1717import org .hibernate .Session ;
1818import org .hibernate .event .spi .EventType ;
19+ import org .hibernate .id .uuid .UuidVersion6Strategy ;
20+ import org .hibernate .id .uuid .UuidVersion7Strategy ;
1921import org .hibernate .internal .util .ReflectHelper ;
2022import org .hibernate .persister .collection .CollectionPersister ;
2123import org .hibernate .persister .entity .EntityPersister ;
@@ -37,6 +39,38 @@ public static void index() throws IOException {
3739 hibernateIndex = JandexTestUtils .indexJar ( Session .class );
3840 }
3941
42+ @ Nested
43+ // Related Jira issue: https://hibernate.atlassian.net/browse/HHH-18974
44+ class TypesNeedingRuntimeInitialization {
45+ @ ParameterizedTest
46+ @ EnumSource (TypesNeedingRuntimeInitialization_Category .class )
47+ void containsAllExpectedClasses (TypesNeedingRuntimeInitialization_Category category ) {
48+ assertThat ( StaticClassLists .typesNeedingRuntimeInitialization () )
49+ .containsAll ( category .classes ().collect ( Collectors .toSet () ) );
50+ }
51+
52+ @ Test
53+ void meta_noMissingTestCategory () {
54+ assertThat ( Arrays .stream ( TypesNeedingRuntimeInitialization_Category .values () ).flatMap ( TypesNeedingRuntimeInitialization_Category ::classes ) )
55+ .as ( "If this fails, a category is missing in " + TypesNeedingRuntimeInitialization_Category .class )
56+ .contains ( StaticClassLists .typesNeedingRuntimeInitialization () );
57+ }
58+ }
59+
60+ enum TypesNeedingRuntimeInitialization_Category {
61+ UUID_STRATGY_HOLDERS_USING_SECURE_RANDOM {
62+ @ Override
63+ Stream <Class <?>> classes () {
64+ return Stream .of (
65+ UuidVersion6Strategy .Holder .class ,
66+ UuidVersion7Strategy .Holder .class
67+ );
68+ }
69+ };
70+
71+ abstract Stream <Class <?>> classes ();
72+ }
73+
4074 @ Nested
4175 class TypesNeedingAllConstructorsAccessible {
4276 @ ParameterizedTest
0 commit comments