44 */
55package org .hibernate .jpa ;
66
7- import java .net .URL ;
87import java .util .Collection ;
9- import java .util .Collections ;
108import java .util .List ;
119import java .util .Map ;
1210import jakarta .persistence .EntityManagerFactory ;
2321import org .hibernate .jpa .boot .spi .Bootstrap ;
2422import org .hibernate .jpa .boot .spi .EntityManagerFactoryBuilder ;
2523import org .hibernate .jpa .boot .spi .PersistenceUnitDescriptor ;
26- import org .hibernate .jpa .boot .spi .ProviderChecker ;
2724import org .hibernate .jpa .internal .util .PersistenceUtilHelper ;
25+ import org .hibernate .jpa .internal .util .PersistenceUtilHelper .MetadataCache ;
2826
29- import static org .hibernate .internal .CoreMessageLogger .CORE_LOGGER ;
27+ import static java .util .Collections .emptyMap ;
28+ import static java .util .Collections .unmodifiableMap ;
29+ import static org .hibernate .jpa .boot .spi .ProviderChecker .isProvider ;
30+ import static org .hibernate .jpa .internal .JpaLogger .JPA_LOGGER ;
3031
3132/**
3233 * The best-ever implementation of a JPA {@link PersistenceProvider}.
3738 */
3839public class HibernatePersistenceProvider implements PersistenceProvider {
3940
40- private final PersistenceUtilHelper . MetadataCache cache = new PersistenceUtilHelper . MetadataCache ();
41+ private final MetadataCache cache = new MetadataCache ();
4142
4243 /**
4344 * {@inheritDoc}
@@ -46,13 +47,15 @@ public class HibernatePersistenceProvider implements PersistenceProvider {
4647 */
4748 @ Override
4849 public EntityManagerFactory createEntityManagerFactory (String persistenceUnitName , Map properties ) {
49- CORE_LOGGER . tracef ( "Starting createEntityManagerFactory for persistenceUnitName %s" , persistenceUnitName );
50- final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull ( persistenceUnitName , properties );
50+ JPA_LOGGER . startingCreateEntityManagerFactory ( persistenceUnitName );
51+ final var builder = getEntityManagerFactoryBuilderOrNull ( persistenceUnitName , properties );
5152 if ( builder == null ) {
52- CORE_LOGGER . trace ( "Could not obtain matching EntityManagerFactoryBuilder, returning null" );
53+ JPA_LOGGER . couldNotObtainEmfBuilder ( " null" );
5354 return null ;
5455 }
55- return builder .build ();
56+ else {
57+ return builder .build ();
58+ }
5659 }
5760
5861 protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull (String persistenceUnitName , Map <?,?> properties ) {
@@ -71,22 +74,18 @@ protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(Strin
7174
7275 private EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull (String persistenceUnitName , Map <?,?> properties ,
7376 ClassLoader providedClassLoader , ClassLoaderService providedClassLoaderService ) {
74- CORE_LOGGER .tracef ( "Attempting to obtain correct EntityManagerFactoryBuilder for persistenceUnitName : %s" , persistenceUnitName );
75-
76- final Map <?,?> integration = wrap ( properties );
77- final Collection <PersistenceUnitDescriptor > units = locatePersistenceUnits ( integration , providedClassLoader , providedClassLoaderService );
78-
79- CORE_LOGGER .tracef ( "Located and parsed %s persistence units; checking each" , units .size () );
80-
77+ JPA_LOGGER .attemptingToObtainEmfBuilder ( persistenceUnitName );
78+ final var integration = wrap ( properties );
79+ final var units = locatePersistenceUnits ( integration , providedClassLoader , providedClassLoaderService );
80+ JPA_LOGGER .locatedAndParsedPersistenceUnits ( units .size () );
8181 if ( persistenceUnitName == null && units .size () > 1 ) {
82- // no persistence-unit name to look for was given and we found multiple persistence-units
82+ // no persistence-unit name was specified, and we found multiple persistence-units
8383 throw new PersistenceException ( "No name provided and multiple persistence units found" );
8484 }
8585
86- for ( PersistenceUnitDescriptor persistenceUnit : units ) {
87- if ( CORE_LOGGER .isTraceEnabled () ) {
88- CORE_LOGGER .tracef (
89- "Checking persistence-unit [name=%s, explicit-provider=%s] against incoming persistence unit name [%s]" ,
86+ for ( var persistenceUnit : units ) {
87+ if ( JPA_LOGGER .isTraceEnabled () ) {
88+ JPA_LOGGER .checkingPersistenceUnitName (
9089 persistenceUnit .getName (),
9190 persistenceUnit .getProviderClassName (),
9291 persistenceUnitName
@@ -95,52 +94,47 @@ private EntityManagerFactoryBuilder getEntityManagerFactoryBuilderOrNull(String
9594
9695 final boolean matches = persistenceUnitName == null || persistenceUnit .getName ().equals ( persistenceUnitName );
9796 if ( !matches ) {
98- CORE_LOGGER . tracef ( "Excluding from consideration due to name mismatch" );
97+ JPA_LOGGER . excludingDueToNameMismatch ( );
9998 continue ;
10099 }
101100
102101 // See if we (Hibernate) are the persistence provider
103- if ( ! ProviderChecker . isProvider ( persistenceUnit , properties ) ) {
104- CORE_LOGGER . tracef ( "Excluding from consideration due to provider mismatch" );
102+ if ( !isProvider ( persistenceUnit , properties ) ) {
103+ JPA_LOGGER . excludingDueToProviderMismatch ( );
105104 continue ;
106105 }
107106
108- if ( providedClassLoaderService != null ) {
109- return getEntityManagerFactoryBuilder ( persistenceUnit , integration , providedClassLoaderService );
110- }
111- else {
112- return getEntityManagerFactoryBuilder ( persistenceUnit , integration , providedClassLoader );
113- }
107+ return providedClassLoaderService == null
108+ ? getEntityManagerFactoryBuilder ( persistenceUnit , integration , providedClassLoader )
109+ : getEntityManagerFactoryBuilder ( persistenceUnit , integration , providedClassLoaderService );
114110 }
115111
116- CORE_LOGGER . debug ( "Found no matching persistence units" );
112+ JPA_LOGGER . foundNoMatchingPersistenceUnits ( );
117113 return null ;
118114 }
119115
120116 protected static Map <?,?> wrap (Map <?,?> properties ) {
121- return properties == null ? Collections . emptyMap () : Collections . unmodifiableMap ( properties );
117+ return properties == null ? emptyMap () : unmodifiableMap ( properties );
122118 }
123119
124120 // Check before changing: may be overridden in Quarkus
125121 protected Collection <PersistenceUnitDescriptor > locatePersistenceUnits (Map <?, ?> integration , ClassLoader providedClassLoader ,
126122 ClassLoaderService providedClassLoaderService ) {
127- final Collection <PersistenceUnitDescriptor > units ;
128123 try {
129124 var parser = PersistenceXmlParser .create ( integration , providedClassLoader , providedClassLoaderService );
130- final List < URL > xmlUrls = parser .getClassLoaderService ().locateResources ( "META-INF/persistence.xml" );
125+ final var xmlUrls = parser .getClassLoaderService ().locateResources ( "META-INF/persistence.xml" );
131126 if ( xmlUrls .isEmpty () ) {
132- CORE_LOGGER .unableToFindPersistenceXmlInClasspath ();
133- units = List .of ();
127+ JPA_LOGGER .unableToFindPersistenceXmlInClasspath ();
128+ return List .of ();
134129 }
135130 else {
136- units = parser .parse ( xmlUrls ).values ();
131+ return parser .parse ( xmlUrls ).values ();
137132 }
138133 }
139134 catch (Exception e ) {
140- CORE_LOGGER . debug ( "Unable to locate persistence units" , e );
135+ JPA_LOGGER . unableToLocatePersistenceUnits ( e );
141136 throw new PersistenceException ( "Unable to locate persistence units" , e );
142137 }
143- return units ;
144138 }
145139
146140 /**
@@ -150,34 +144,28 @@ protected Collection<PersistenceUnitDescriptor> locatePersistenceUnits(Map<?, ?>
150144 */
151145 @ Override
152146 public EntityManagerFactory createContainerEntityManagerFactory (PersistenceUnitInfo info , Map properties ) {
153- if ( CORE_LOGGER .isTraceEnabled () ) {
154- CORE_LOGGER .tracef ( "Starting createContainerEntityManagerFactory : %s" , info .getPersistenceUnitName () );
155- }
156-
147+ JPA_LOGGER .startingCreateContainerEntityManagerFactory ( info .getPersistenceUnitName () );
157148 return getEntityManagerFactoryBuilder ( info , properties ).build ();
158149 }
159150
160151 @ Override
161152 public void generateSchema (PersistenceUnitInfo info , Map map ) {
162- if ( CORE_LOGGER .isTraceEnabled () ) {
163- CORE_LOGGER .tracef ( "Starting generateSchema : PUI.name=%s" , info .getPersistenceUnitName () );
164- }
165-
166- final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilder ( info , map );
167- builder .generateSchema ();
153+ JPA_LOGGER .startingGenerateSchemaForPuiName ( info .getPersistenceUnitName () );
154+ getEntityManagerFactoryBuilder ( info , map ).generateSchema ();
168155 }
169156
170157 @ Override
171158 public boolean generateSchema (String persistenceUnitName , Map map ) {
172- CORE_LOGGER .tracef ( "Starting generateSchema for persistenceUnitName %s" , persistenceUnitName );
173-
174- final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilderOrNull ( persistenceUnitName , map );
159+ JPA_LOGGER .startingGenerateSchema ( persistenceUnitName );
160+ final var builder = getEntityManagerFactoryBuilderOrNull ( persistenceUnitName , map );
175161 if ( builder == null ) {
176- CORE_LOGGER . trace ( "Could not obtain matching EntityManagerFactoryBuilder, returning false" );
162+ JPA_LOGGER . couldNotObtainEmfBuilder ( " false" );
177163 return false ;
178164 }
179- builder .generateSchema ();
180- return true ;
165+ else {
166+ builder .generateSchema ();
167+ return true ;
168+ }
181169 }
182170
183171 protected EntityManagerFactoryBuilder getEntityManagerFactoryBuilder (PersistenceUnitInfo info , Map <?,?> integration ) {
@@ -211,12 +199,15 @@ public LoadState isLoaded(Object object) {
211199
212200 @ Override
213201 public EntityManagerFactory createEntityManagerFactory (PersistenceConfiguration configuration ) {
214- final EntityManagerFactoryBuilder builder = getEntityManagerFactoryBuilder (
202+ return getEntityManagerFactoryBuilder ( configuration ).build ();
203+ }
204+
205+ private EntityManagerFactoryBuilder getEntityManagerFactoryBuilder (PersistenceConfiguration configuration ) {
206+ return getEntityManagerFactoryBuilder (
215207 new PersistenceConfigurationDescriptor ( configuration ),
216- Collections . emptyMap (),
208+ emptyMap (),
217209 HibernatePersistenceProvider .class .getClassLoader ()
218210 );
219- return builder .build ();
220211 }
221212
222213 @ Override
0 commit comments