Skip to content

Commit a1b1be4

Browse files
committed
Reorganize all Service Initializers
1 parent 80b119b commit a1b1be4

File tree

1 file changed

+68
-33
lines changed

1 file changed

+68
-33
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/provider/impl/ReactiveServiceInitiators.java

Lines changed: 68 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -50,93 +50,128 @@
5050
/**
5151
* Provides the list of service initiators that Hibernate Reactive needs to integrate with Hibernate ORM.
5252
*/
53-
// FIXME: We need to double check this class because I've deleted some services
5453
public final class ReactiveServiceInitiators {
5554

5655
private ReactiveServiceInitiators() {
5756
}
5857

5958
public static final List<StandardServiceInitiator<?>> LIST = buildInitialServiceInitiatorList();
6059

61-
// Note that Quarkus uses a different list for the initialization of the services.
62-
// If you update this list makes sure to check that reactive still works with Quarkus
63-
// in native mode.
60+
// Note that Quarkus uses a different list for the initialization of the services:
61+
// If you update this list makes sure to check that reactive still works with Quarkus.
62+
// Also: please try to maintain the same order as Hibernate ORM for sake of comparisons.
6463
private static List<StandardServiceInitiator<?>> buildInitialServiceInitiatorList() {
6564
final ArrayList<StandardServiceInitiator<?>> serviceInitiators = new ArrayList<>();
6665

67-
serviceInitiators.add( SqlScriptExtractorInitiator.INSTANCE );
68-
69-
serviceInitiators.add( ReactiveMutationExecutorServiceInitiator.INSTANCE );
70-
71-
// Definitely exclusive to Hibernate Reactive, as it marks the registry as Reactive:
72-
serviceInitiators.add( ReactiveMarkerServiceInitiator.INSTANCE );
73-
74-
// Exclusive to Hibernate Reactive:
75-
serviceInitiators.add( VertxInstanceInitiator.INSTANCE );
76-
serviceInitiators.add( VertxContextInitiator.INSTANCE );
77-
78-
// Exclusive to Hibernate Reactive:
79-
serviceInitiators.add( SqlClientPoolConfigurationInitiator.INSTANCE );
80-
serviceInitiators.add( ReactiveConnectionPoolInitiator.INSTANCE );
81-
82-
// Custom for Hibernate Reactive:
66+
// Custom for Hibernate Reactive: SessionFactoryBuilderService
8367
serviceInitiators.add( ReactiveSessionFactoryBuilderInitiator.INSTANCE );
8468

69+
// Custom for Hibernate Reactive: IdentifierGeneratorFactory
70+
serviceInitiators.add( ReactiveIdentifierGeneratorFactoryInitiator.INSTANCE);
71+
72+
// [standard] BytecodeProvider
8573
serviceInitiators.add( BytecodeProviderInitiator.INSTANCE );
74+
75+
// [standard] ProxyFactoryFactory
8676
serviceInitiators.add( ProxyFactoryFactoryInitiator.INSTANCE );
8777

78+
// [standard] CfgXmlAccessService
8879
serviceInitiators.add( CfgXmlAccessServiceInitiator.INSTANCE );
80+
81+
// [standard] ConfigurationService
8982
serviceInitiators.add( ConfigurationServiceInitiator.INSTANCE );
83+
84+
// [standard] PropertyAccessStrategyResolver
9085
serviceInitiators.add( PropertyAccessStrategyResolverInitiator.INSTANCE );
9186

92-
// Custom for Hibernate Reactive:
87+
// [standard] SqlScriptCommandExtractor
88+
serviceInitiators.add( SqlScriptExtractorInitiator.INSTANCE );
89+
90+
// Custom for Hibernate Reactive: SchemaManagementTool
91+
serviceInitiators.add( ReactiveSchemaManagementToolInitiator.INSTANCE );
92+
93+
// Custom for Hibernate Reactive: JdbcEnvironment
9394
serviceInitiators.add( NoJdbcEnvironmentInitiator.INSTANCE );
9495

96+
// [standard] JndiService
9597
serviceInitiators.add( JndiServiceInitiator.INSTANCE );
9698

97-
// Custom for Hibernate Reactive:
99+
// Custom for Hibernate Reactive: PersisterClassResolver
98100
serviceInitiators.add( ReactivePersisterClassResolverInitiator.INSTANCE );
101+
102+
// [standard] PersisterFactory
99103
serviceInitiators.add( PersisterFactoryInitiator.INSTANCE );
100104

101-
// Custom for Hibernate Reactive:
105+
// Custom for Hibernate Reactive: ConnectionProvider [disabled]
102106
serviceInitiators.add( NoJdbcConnectionProviderInitiator.INSTANCE );
107+
108+
// Custom for Hibernate Reactive: MultiTenantConnectionProvider [disabled]
103109
serviceInitiators.add( NoJdbcMultiTenantConnectionProviderInitiator.INSTANCE );
104110

111+
// [standard] DialectResolver
105112
serviceInitiators.add( DialectResolverInitiator.INSTANCE );
106113

107-
//Custom for Hibernate Reactive:
114+
// Custom for Hibernate Reactive: DialectFactory ; wraps the standard Dialects with ReactiveDialectWrapper
108115
serviceInitiators.add( ReactiveDialectFactoryInitiator.INSTANCE );
116+
117+
// Custom for Hibernate Reactive: MutationExecutorService
118+
serviceInitiators.add( ReactiveMutationExecutorServiceInitiator.INSTANCE );
119+
120+
// [standard] BatchBuilder
109121
serviceInitiators.add( BatchBuilderInitiator.INSTANCE );
122+
123+
// [standard] JdbcServices
110124
serviceInitiators.add( JdbcServicesInitiator.INSTANCE );
111-
serviceInitiators.add( RefCursorSupportInitiator.INSTANCE );
112125

113-
// Custom for Hibernate Reactive:
114-
serviceInitiators.add( ReactiveSchemaManagementToolInitiator.INSTANCE );
126+
// [standard] RefCursorSupport
127+
serviceInitiators.add( RefCursorSupportInitiator.INSTANCE );
115128

116-
// Custom for Hibernate Reactive:
117-
serviceInitiators.add( ReactiveIdentifierGeneratorFactoryInitiator.INSTANCE);
129+
// JtaPlatformResolver: REMOVED
118130

119-
// Custom for Hibernate Reactive:
131+
// Custom for Hibernate Reactive: JtaPlatform [disabled]
120132
serviceInitiators.add( NoJtaPlatformInitiator.INSTANCE );
121133

134+
// [standard] SessionFactoryServiceRegistryFactory
122135
serviceInitiators.add( SessionFactoryServiceRegistryFactoryInitiator.INSTANCE );
123136

137+
// [standard] RegionFactory
124138
serviceInitiators.add( RegionFactoryInitiator.INSTANCE );
125139

140+
// [standard] TransactionCoordinatorBuilder
126141
serviceInitiators.add( TransactionCoordinatorBuilderInitiator.INSTANCE );
127142

143+
// [standard] ManagedBeanRegistry
128144
serviceInitiators.add( ManagedBeanRegistryInitiator.INSTANCE );
145+
146+
// [standard] EntityCopyObserverFactory
129147
serviceInitiators.add( EntityCopyObserverFactoryInitiator.INSTANCE );
130148

131-
//Custom for Hibernate Reactive:
149+
// Custom for Hibernate Reactive: JdbcValuesMappingProducerProvider
132150
serviceInitiators.add( ReactiveValuesMappingProducerProviderInitiator.INSTANCE );
133151

134-
//Custom for Hibernate Reactive:
152+
//Custom for Hibernate Reactive: SqmMultiTableMutationStrategyProvider
135153
serviceInitiators.add( ReactiveSqmMultiTableMutationStrategyProviderInitiator.INSTANCE );
136154

137-
// Default implementation
155+
// [standard] JdbcParameterRenderer FIXME this will need to be replaced
138156
serviceInitiators.add( JdbcParameterRendererInitiator.INSTANCE );
139157

158+
// --- end of services defined by Hibernate ORM
159+
160+
// --- custom ones follow:
161+
162+
// Definitely exclusive to Hibernate Reactive, as it marks this particular registry as Reactive:
163+
serviceInitiators.add( ReactiveMarkerServiceInitiator.INSTANCE );
164+
165+
// Exclusive to Hibernate Reactive:
166+
serviceInitiators.add( VertxInstanceInitiator.INSTANCE );
167+
serviceInitiators.add( VertxContextInitiator.INSTANCE );
168+
169+
// Exclusive to Hibernate Reactive:
170+
serviceInitiators.add( SqlClientPoolConfigurationInitiator.INSTANCE );
171+
serviceInitiators.add( ReactiveConnectionPoolInitiator.INSTANCE );
172+
173+
// --- end of custom services.
174+
140175
serviceInitiators.trimToSize();
141176

142177
return unmodifiableList( serviceInitiators );

0 commit comments

Comments
 (0)