Skip to content

Commit 04b2dd1

Browse files
committed
HHH-19317 - Mark org.hibernate.boot.models as incubating
1 parent 00e552e commit 04b2dd1

File tree

17 files changed

+151
-117
lines changed

17 files changed

+151
-117
lines changed

hibernate-core/src/main/java/org/hibernate/boot/model/process/spi/MetadataBuildingProcess.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.hibernate.boot.model.source.internal.hbm.ModelBinder;
5050
import org.hibernate.boot.model.source.spi.MetadataSourceProcessor;
5151
import org.hibernate.boot.models.internal.DomainModelCategorizationCollector;
52+
import org.hibernate.boot.models.xml.spi.PersistenceUnitMetadata;
5253
import org.hibernate.boot.models.xml.spi.XmlPreProcessingResult;
5354
import org.hibernate.boot.models.xml.spi.XmlPreProcessor;
5455
import org.hibernate.boot.models.xml.spi.XmlProcessingResult;
@@ -373,14 +374,13 @@ public static DomainModelSource processManagedResources(
373374
// - allKnownClassNames (technically could be included in xmlPreProcessingResult)
374375
// - sourceModelBuildingContext
375376

377+
final PersistenceUnitMetadata aggregatedPersistenceUnitMetadata = metadataCollector.getPersistenceUnitMetadata();
376378
final SourceModelBuildingContext modelsContext = bootstrapContext.getModelsContext();
377379
final XmlPreProcessingResult xmlPreProcessingResult = XmlPreProcessor.preProcessXmlResources(
378380
managedResources,
379-
metadataCollector.getPersistenceUnitMetadata()
381+
aggregatedPersistenceUnitMetadata
380382
);
381383

382-
assert metadataCollector.getPersistenceUnitMetadata() == xmlPreProcessingResult.getPersistenceUnitMetadata();
383-
384384
final List<String> allKnownClassNames = mutableJoin(
385385
managedResources.getAnnotatedClassReferences().stream().map( Class::getName ).collect( Collectors.toList() ),
386386
managedResources.getAnnotatedClassNames(),
@@ -413,22 +413,20 @@ public static DomainModelSource processManagedResources(
413413
// - mappedSuperClasses
414414
// - embeddables
415415

416-
// JPA id generator global-ity thing
417-
final boolean areIdGeneratorsGlobal = true;
418416
final ClassDetailsRegistry classDetailsRegistry = modelsContext.getClassDetailsRegistry();
419417
final DomainModelCategorizationCollector modelCategorizationCollector = new DomainModelCategorizationCollector(
420-
areIdGeneratorsGlobal,
421418
metadataCollector.getGlobalRegistrations(),
422419
modelsContext
423420
);
424421

425422
final RootMappingDefaults rootMappingDefaults = new RootMappingDefaults(
426423
optionDefaults,
427-
xmlPreProcessingResult.getPersistenceUnitMetadata()
424+
aggregatedPersistenceUnitMetadata
428425
);
429426
final XmlProcessingResult xmlProcessingResult = XmlProcessor.processXml(
430427
xmlPreProcessingResult,
431-
modelCategorizationCollector,
428+
aggregatedPersistenceUnitMetadata,
429+
modelCategorizationCollector::apply,
432430
modelsContext,
433431
bootstrapContext,
434432
rootMappingDefaults
@@ -448,14 +446,14 @@ public static DomainModelSource processManagedResources(
448446
modelCategorizationCollector
449447
) );
450448

451-
xmlProcessingResult.apply( xmlPreProcessingResult.getPersistenceUnitMetadata() );
449+
xmlProcessingResult.apply();
452450

453451
return new DomainModelSource(
454452
classDetailsRegistry,
455453
allKnownClassNames,
456454
modelCategorizationCollector.getGlobalRegistrations(),
457455
rootMappingDefaults,
458-
xmlPreProcessingResult.getPersistenceUnitMetadata()
456+
aggregatedPersistenceUnitMetadata
459457
);
460458
}
461459

hibernate-core/src/main/java/org/hibernate/boot/models/internal/DomainModelCategorizationCollector.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@
2929
* @author Steve Ebersole
3030
*/
3131
public class DomainModelCategorizationCollector {
32-
private final boolean areIdGeneratorsGlobal;
33-
3432
private final GlobalRegistrationsImpl globalRegistrations;
3533
private final SourceModelBuildingContext modelsContext;
3634

@@ -39,10 +37,8 @@ public class DomainModelCategorizationCollector {
3937
private final Map<String,ClassDetails> embeddables = new HashMap<>();
4038

4139
public DomainModelCategorizationCollector(
42-
boolean areIdGeneratorsGlobal,
4340
GlobalRegistrations globalRegistrations,
4441
SourceModelBuildingContext modelsContext) {
45-
this.areIdGeneratorsGlobal = areIdGeneratorsGlobal;
4642
this.globalRegistrations = (GlobalRegistrationsImpl) globalRegistrations;
4743
this.modelsContext = modelsContext;
4844
}

hibernate-core/src/main/java/org/hibernate/boot/models/package-info.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
* building the {@code hibernate-models} model ({@linkplain org.hibernate.models.spi.ClassDetails}, etc.)
1010
* to ultimately be bound into Hibernate's {@linkplain org.hibernate.mapping boot-time model}.
1111
*
12+
* @apiNote This entire package is considered incubating
13+
*
1214
* @author Steve Ebersole
1315
*/
16+
@Incubating
1417
package org.hibernate.boot.models;
18+
19+
import org.hibernate.Incubating;

hibernate-core/src/main/java/org/hibernate/boot/models/spi/JpaEventListener.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@
4141
* @see JaxbEntityListenerImpl
4242
* @see GlobalRegistrations#getEntityListenerRegistrations()
4343
*
44+
* @see jakarta.persistence.PostLoad
45+
* @see jakarta.persistence.PostPersist
46+
* @see jakarta.persistence.PostRemove
47+
* @see jakarta.persistence.PostUpdate
48+
* @see jakarta.persistence.PrePersist
49+
* @see jakarta.persistence.PreRemove
50+
* @see jakarta.persistence.PreUpdate
51+
*
4452
* @author Steve Ebersole
4553
*/
4654
public class JpaEventListener {
@@ -59,7 +67,7 @@ public class JpaEventListener {
5967

6068
private final MethodDetails postLoadMethod;
6169

62-
private JpaEventListener(
70+
public JpaEventListener(
6371
JpaEventListenerStyle consumerType,
6472
ClassDetails listenerClass,
6573
MethodDetails prePersistMethod,

hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/XmlDocumentImpl.java

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@
44
*/
55
package org.hibernate.boot.models.xml.internal;
66

7-
import java.util.Collections;
8-
import java.util.HashMap;
9-
import java.util.List;
10-
import java.util.Map;
11-
7+
import jakarta.persistence.AccessType;
8+
import org.hibernate.boot.jaxb.Origin;
129
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmNamedNativeQueryType;
1310
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmNamedQueryType;
1411
import org.hibernate.boot.jaxb.mapping.spi.JaxbCollectionUserTypeRegistrationImpl;
@@ -22,22 +19,28 @@
2219
import org.hibernate.boot.jaxb.mapping.spi.JaxbJavaTypeRegistrationImpl;
2320
import org.hibernate.boot.jaxb.mapping.spi.JaxbJdbcTypeRegistrationImpl;
2421
import org.hibernate.boot.jaxb.mapping.spi.JaxbMappedSuperclassImpl;
25-
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedNativeQueryImpl;
2622
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedHqlQueryImpl;
23+
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedNativeQueryImpl;
2724
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedStoredProcedureQueryImpl;
2825
import org.hibernate.boot.jaxb.mapping.spi.JaxbUserTypeRegistrationImpl;
26+
import org.hibernate.boot.jaxb.spi.Binding;
2927
import org.hibernate.boot.models.xml.spi.PersistenceUnitMetadata;
3028
import org.hibernate.boot.models.xml.spi.XmlDocument;
3129
import org.hibernate.internal.util.NullnessHelper;
3230

33-
import jakarta.persistence.AccessType;
31+
import java.util.Collections;
32+
import java.util.HashMap;
33+
import java.util.List;
34+
import java.util.Map;
3435

3536
import static org.hibernate.internal.util.collections.CollectionHelper.isEmpty;
3637

3738
/**
3839
* @author Steve Ebersole
3940
*/
4041
public class XmlDocumentImpl implements XmlDocument {
42+
private final Origin origin;
43+
private final JaxbEntityMappingsImpl root;
4144
private final DefaultsImpl defaults;
4245
private final List<JaxbEntityImpl> entityMappings;
4346
private final List<JaxbMappedSuperclassImpl> mappedSuperclassMappings;
@@ -57,6 +60,8 @@ public class XmlDocumentImpl implements XmlDocument {
5760
private final Map<String, JaxbNamedStoredProcedureQueryImpl> namedStoredProcedureQueries;
5861

5962
private XmlDocumentImpl(
63+
Origin origin,
64+
JaxbEntityMappingsImpl root,
6065
DefaultsImpl defaults,
6166
List<JaxbEntityImpl> entityMappings,
6267
List<JaxbMappedSuperclassImpl> mappedSuperclassMappings,
@@ -74,6 +79,8 @@ private XmlDocumentImpl(
7479
Map<String, JaxbNamedStoredProcedureQueryImpl> namedStoredProcedureQueries,
7580
Map<String, JaxbHbmNamedQueryType> hibernateNamedQueries,
7681
Map<String, JaxbHbmNamedNativeQueryType> hibernateNamedNativeQueries) {
82+
this.origin = origin;
83+
this.root = root;
7784
this.defaults = defaults;
7885
this.entityMappings = entityMappings;
7986
this.mappedSuperclassMappings = mappedSuperclassMappings;
@@ -93,6 +100,16 @@ private XmlDocumentImpl(
93100
this.hibernateNamedNativeQueries = hibernateNamedNativeQueries;
94101
}
95102

103+
@Override
104+
public Origin getOrigin() {
105+
return origin;
106+
}
107+
108+
@Override
109+
public JaxbEntityMappingsImpl getRoot() {
110+
return root;
111+
}
112+
96113
@Override
97114
public Defaults getDefaults() {
98115
return defaults;
@@ -252,8 +269,11 @@ static DefaultsImpl consume(JaxbEntityMappingsImpl jaxbRoot, PersistenceUnitMeta
252269
}
253270
}
254271

255-
public static XmlDocumentImpl consume(JaxbEntityMappingsImpl jaxbRoot, PersistenceUnitMetadata metadata) {
272+
public static XmlDocumentImpl consume(Binding<JaxbEntityMappingsImpl> xmlBinding, PersistenceUnitMetadata metadata) {
273+
final JaxbEntityMappingsImpl jaxbRoot = xmlBinding.getRoot();
256274
return new XmlDocumentImpl(
275+
xmlBinding.getOrigin(),
276+
xmlBinding.getRoot(),
257277
DefaultsImpl.consume( jaxbRoot, metadata ),
258278
jaxbRoot.getEntities(),
259279
jaxbRoot.getMappedSuperclasses(),

hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/XmlPreProcessingResultImpl.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
import java.util.List;
99

1010
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
11+
import org.hibernate.boot.jaxb.spi.Binding;
1112
import org.hibernate.boot.models.xml.spi.PersistenceUnitMetadata;
13+
import org.hibernate.boot.models.xml.spi.XmlDocument;
1214
import org.hibernate.boot.models.xml.spi.XmlPreProcessingResult;
1315
import org.hibernate.internal.util.StringHelper;
1416

@@ -17,7 +19,7 @@
1719
*/
1820
public class XmlPreProcessingResultImpl implements XmlPreProcessingResult {
1921
private final PersistenceUnitMetadataImpl persistenceUnitMetadata;
20-
private final List<JaxbEntityMappingsImpl> documents = new ArrayList<>();
22+
private final List<XmlDocument> documents = new ArrayList<>();
2123
private final List<String> managedClasses = new ArrayList<>();
2224
private final List<String> managedNames = new ArrayList<>();
2325

@@ -36,13 +38,12 @@ public XmlPreProcessingResultImpl() {
3638
this( new PersistenceUnitMetadataImpl() );
3739
}
3840

39-
@Override
4041
public PersistenceUnitMetadataImpl getPersistenceUnitMetadata() {
4142
return persistenceUnitMetadata;
4243
}
4344

4445
@Override
45-
public List<JaxbEntityMappingsImpl> getDocuments() {
46+
public List<XmlDocument> getDocuments() {
4647
return documents;
4748
}
4849

@@ -56,23 +57,26 @@ public List<String> getMappedNames() {
5657
return managedNames;
5758
}
5859

59-
public void addDocument(JaxbEntityMappingsImpl document) {
60-
persistenceUnitMetadata.apply( document.getPersistenceUnitMetadata() );
61-
documents.add( document );
62-
document.getEmbeddables().forEach( (jaxbEmbeddable) -> {
60+
public void addDocument(Binding<JaxbEntityMappingsImpl> binding) {
61+
final XmlDocumentImpl xmlDocument = XmlDocumentImpl.consume( binding, persistenceUnitMetadata );
62+
documents.add( xmlDocument );
63+
64+
final JaxbEntityMappingsImpl jaxbRoot = binding.getRoot();
65+
persistenceUnitMetadata.apply( jaxbRoot.getPersistenceUnitMetadata() );
66+
jaxbRoot.getEmbeddables().forEach( (jaxbEmbeddable) -> {
6367
if ( StringHelper.isNotEmpty( jaxbEmbeddable.getClazz() ) ) {
64-
managedClasses.add( XmlProcessingHelper.determineClassName( document, jaxbEmbeddable ) );
68+
managedClasses.add( XmlProcessingHelper.determineClassName( jaxbRoot, jaxbEmbeddable ) );
6569
}
6670
else if ( StringHelper.isNotEmpty( jaxbEmbeddable.getName() ) ) {
6771
managedNames.add( jaxbEmbeddable.getName() );
6872
}
6973
} );
70-
document.getMappedSuperclasses().forEach( (jaxbMappedSuperclass) -> {
71-
managedClasses.add( XmlProcessingHelper.determineClassName( document, jaxbMappedSuperclass ) );
74+
jaxbRoot.getMappedSuperclasses().forEach( (jaxbMappedSuperclass) -> {
75+
managedClasses.add( XmlProcessingHelper.determineClassName( jaxbRoot, jaxbMappedSuperclass ) );
7276
} );
73-
document.getEntities().forEach( (jaxbEntity) -> {
77+
jaxbRoot.getEntities().forEach( (jaxbEntity) -> {
7478
if ( StringHelper.isNotEmpty( jaxbEntity.getClazz() ) ) {
75-
managedClasses.add( XmlProcessingHelper.determineClassName( document, jaxbEntity ) );
79+
managedClasses.add( XmlProcessingHelper.determineClassName( jaxbRoot, jaxbEntity ) );
7680
}
7781
else if ( StringHelper.isNotEmpty( jaxbEntity.getName() ) ) {
7882
managedNames.add( jaxbEntity.getName() );

hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/XmlProcessingResultImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.hibernate.boot.jaxb.mapping.spi.JaxbEmbeddableImpl;
1111
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityImpl;
1212
import org.hibernate.boot.jaxb.mapping.spi.JaxbMappedSuperclassImpl;
13-
import org.hibernate.boot.models.xml.spi.PersistenceUnitMetadata;
1413
import org.hibernate.boot.models.xml.spi.XmlProcessingResult;
1514

1615
/**
@@ -34,7 +33,7 @@ public void addEmbeddableOverride(OverrideTuple<JaxbEmbeddableImpl> overrideTupl
3433
}
3534

3635
@Override
37-
public void apply(PersistenceUnitMetadata metadata) {
36+
public void apply() {
3837
ManagedTypeProcessor.processOverrideEmbeddable( getEmbeddableOverrides() );
3938

4039
ManagedTypeProcessor.processOverrideMappedSuperclass( getMappedSuperclassesOverrides() );

hibernate-core/src/main/java/org/hibernate/boot/models/xml/spi/XmlDocument.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
*/
55
package org.hibernate.boot.models.xml.spi;
66

7-
import java.util.List;
8-
import java.util.Map;
9-
7+
import jakarta.persistence.AccessType;
8+
import org.hibernate.boot.jaxb.Origin;
109
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmNamedNativeQueryType;
1110
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmNamedQueryType;
1211
import org.hibernate.boot.jaxb.mapping.spi.JaxbCollectionUserTypeRegistrationImpl;
@@ -16,20 +15,26 @@
1615
import org.hibernate.boot.jaxb.mapping.spi.JaxbEmbeddableImpl;
1716
import org.hibernate.boot.jaxb.mapping.spi.JaxbEmbeddableInstantiatorRegistrationImpl;
1817
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityImpl;
18+
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
1919
import org.hibernate.boot.jaxb.mapping.spi.JaxbJavaTypeRegistrationImpl;
2020
import org.hibernate.boot.jaxb.mapping.spi.JaxbJdbcTypeRegistrationImpl;
2121
import org.hibernate.boot.jaxb.mapping.spi.JaxbMappedSuperclassImpl;
22-
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedNativeQueryImpl;
2322
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedHqlQueryImpl;
23+
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedNativeQueryImpl;
2424
import org.hibernate.boot.jaxb.mapping.spi.JaxbNamedStoredProcedureQueryImpl;
2525
import org.hibernate.boot.jaxb.mapping.spi.JaxbUserTypeRegistrationImpl;
2626

27-
import jakarta.persistence.AccessType;
27+
import java.util.List;
28+
import java.util.Map;
2829

2930
/**
3031
* @author Steve Ebersole
3132
*/
3233
public interface XmlDocument {
34+
Origin getOrigin();
35+
36+
JaxbEntityMappingsImpl getRoot();
37+
3338
List<JaxbEntityImpl> getEntityMappings();
3439

3540
List<JaxbMappedSuperclassImpl> getMappedSuperclassMappings();

hibernate-core/src/main/java/org/hibernate/boot/models/xml/spi/XmlPreProcessingResult.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,21 @@
44
*/
55
package org.hibernate.boot.models.xml.spi;
66

7-
import java.util.List;
8-
9-
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
107
import org.hibernate.boot.jaxb.mapping.spi.JaxbManagedType;
118

9+
import java.util.List;
10+
1211
/**
1312
* Result of {@linkplain XmlPreProcessor#preProcessXmlResources}
1413
*
1514
* @author Steve Ebersole
1615
*/
1716
public interface XmlPreProcessingResult {
18-
/**
19-
* Aggregated persistence unit defaults and metadata
20-
*/
21-
PersistenceUnitMetadata getPersistenceUnitMetadata();
2217

2318
/**
2419
* All XML documents (JAXB roots)
2520
*/
26-
List<JaxbEntityMappingsImpl> getDocuments();
21+
List<XmlDocument> getDocuments();
2722

2823
/**
2924
* All classes named across all XML mappings

0 commit comments

Comments
 (0)