99import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineAllowMultipleCascadedValidationOnReturnValues ;
1010import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineAllowOverridingMethodAlterParameterConstraint ;
1111import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineAllowParallelMethodsDefineParameterConstraints ;
12- import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineConstraintExpressionLanguageFeatureLevel ;
13- import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineCustomViolationExpressionLanguageFeatureLevel ;
1412import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineBeanMetaDataClassNormalizer ;
13+ import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineConstraintExpressionLanguageFeatureLevel ;
1514import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineConstraintMappings ;
1615import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineConstraintValidatorPayload ;
16+ import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineCustomViolationExpressionLanguageFeatureLevel ;
1717import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineExternalClassLoader ;
1818import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineFailFast ;
1919import static org .hibernate .validator .internal .engine .ValidatorFactoryConfigurationHelper .determineScriptEvaluatorFactory ;
4444import org .hibernate .validator .PredefinedScopeHibernateValidatorFactory ;
4545import org .hibernate .validator .internal .cfg .context .DefaultConstraintMapping ;
4646import org .hibernate .validator .internal .engine .constraintvalidation .ConstraintValidatorManager ;
47+ import org .hibernate .validator .internal .engine .constraintvalidation .HibernateConstraintValidatorInitializationContextImpl ;
4748import org .hibernate .validator .internal .engine .constraintvalidation .PredefinedScopeConstraintValidatorManagerImpl ;
4849import org .hibernate .validator .internal .engine .groups .ValidationOrderGenerator ;
50+ import org .hibernate .validator .internal .engine .tracking .PredefinedScopeProcessedBeansTrackingStrategy ;
4951import org .hibernate .validator .internal .engine .valueextraction .ValueExtractorManager ;
5052import org .hibernate .validator .internal .metadata .PredefinedScopeBeanMetaDataManager ;
5153import org .hibernate .validator .internal .metadata .core .ConstraintHelper ;
@@ -112,23 +114,16 @@ public PredefinedScopeValidatorFactoryImpl(ConfigurationState configurationState
112114 determineAllowParallelMethodsDefineParameterConstraints ( hibernateSpecificConfig , properties )
113115 ).build ();
114116
115- this .validatorFactoryScopedContext = new ValidatorFactoryScopedContext (
116- configurationState .getMessageInterpolator (),
117- configurationState .getTraversableResolver (),
118- new ExecutableParameterNameProvider ( configurationState .getParameterNameProvider () ),
119- configurationState .getClockProvider (),
120- determineTemporalValidationTolerance ( configurationState , properties ),
121- determineScriptEvaluatorFactory ( configurationState , properties , externalClassLoader ),
122- determineFailFast ( hibernateSpecificConfig , properties ),
123- determineTraversableResolverResultCacheEnabled ( hibernateSpecificConfig , properties ),
124- determineConstraintValidatorPayload ( hibernateSpecificConfig ),
125- determineConstraintExpressionLanguageFeatureLevel ( hibernateSpecificConfig , properties ),
126- determineCustomViolationExpressionLanguageFeatureLevel ( hibernateSpecificConfig , properties )
127- );
117+ ExecutableParameterNameProvider parameterNameProvider = new ExecutableParameterNameProvider ( configurationState .getParameterNameProvider () );
118+ ScriptEvaluatorFactory scriptEvaluatorFactory = determineScriptEvaluatorFactory ( configurationState , properties , externalClassLoader );
119+ Duration temporalValidationTolerance = determineTemporalValidationTolerance ( configurationState , properties );
120+
121+ HibernateConstraintValidatorInitializationContextImpl constraintValidatorInitializationContext = new HibernateConstraintValidatorInitializationContextImpl (
122+ scriptEvaluatorFactory , configurationState .getClockProvider (), temporalValidationTolerance );
128123
129124 this .constraintValidatorManager = new PredefinedScopeConstraintValidatorManagerImpl (
130125 configurationState .getConstraintValidatorFactory (),
131- this . validatorFactoryScopedContext . getConstraintValidatorInitializationContext ()
126+ constraintValidatorInitializationContext
132127 );
133128
134129 this .validationOrderGenerator = new ValidationOrderGenerator ();
@@ -171,7 +166,7 @@ public PredefinedScopeValidatorFactoryImpl(ConfigurationState configurationState
171166 this .beanMetaDataManager = new PredefinedScopeBeanMetaDataManager (
172167 constraintCreationContext ,
173168 executableHelper ,
174- validatorFactoryScopedContext . getParameterNameProvider () ,
169+ parameterNameProvider ,
175170 javaBeanHelper ,
176171 validationOrderGenerator ,
177172 buildMetaDataProviders ( constraintCreationContext , xmlMetaDataProvider , constraintMappings ),
@@ -180,6 +175,23 @@ public PredefinedScopeValidatorFactoryImpl(ConfigurationState configurationState
180175 hibernateSpecificConfig .getBeanClassesToInitialize ()
181176 );
182177
178+ this .validatorFactoryScopedContext = new ValidatorFactoryScopedContext (
179+ configurationState .getMessageInterpolator (),
180+ configurationState .getTraversableResolver (),
181+ parameterNameProvider ,
182+ configurationState .getClockProvider (),
183+ temporalValidationTolerance ,
184+ scriptEvaluatorFactory ,
185+ determineFailFast ( hibernateSpecificConfig , properties ),
186+ determineTraversableResolverResultCacheEnabled ( hibernateSpecificConfig , properties ),
187+ determineConstraintValidatorPayload ( hibernateSpecificConfig ),
188+ determineConstraintExpressionLanguageFeatureLevel ( hibernateSpecificConfig , properties ),
189+ determineCustomViolationExpressionLanguageFeatureLevel ( hibernateSpecificConfig , properties ),
190+ ( hibernateSpecificConfig != null && hibernateSpecificConfig .getProcessedBeansTrackingStrategy () != null )
191+ ? hibernateSpecificConfig .getProcessedBeansTrackingStrategy ()
192+ : new PredefinedScopeProcessedBeansTrackingStrategy ( beanMetaDataManager ),
193+ constraintValidatorInitializationContext );
194+
183195 if ( LOG .isDebugEnabled () ) {
184196 logValidatorFactoryScopedConfiguration ( validatorFactoryScopedContext );
185197 }
0 commit comments