/** * Returns a list with {@link ValidatedValueUnwrapper}s configured via the * {@link HibernateValidatorConfiguration#VALIDATED_VALUE_HANDLERS} property. * * @param properties the properties used to bootstrap the factory * * @return a list with property-configured {@link ValidatedValueUnwrapper}s; May be empty but never {@code null} */ private static List<ValidatedValueUnwrapper<?>> getPropertyConfiguredValidatedValueHandlers( Map<String, String> properties, ClassLoader externalClassLoader) { String propertyValue = properties.get( HibernateValidatorConfiguration.VALIDATED_VALUE_HANDLERS ); if ( propertyValue == null || propertyValue.isEmpty() ) { return Collections.emptyList(); } String[] handlerNames = propertyValue.split( "," ); List<ValidatedValueUnwrapper<?>> handlers = newArrayList( handlerNames.length ); for ( String handlerName : handlerNames ) { @SuppressWarnings("unchecked") Class<? extends ValidatedValueUnwrapper<?>> handlerType = (Class<? extends ValidatedValueUnwrapper<?>>) run( LoadClass.action( handlerName, externalClassLoader ) ); handlers.add( run( NewInstance.action( handlerType, "validated value handler class" ) ) ); } return handlers; }
private static TimeProvider getTimeProvider(ConfigurationState configurationState, ClassLoader externalClassLoader) { TimeProvider timeProvider = null; // programmatic config if ( configurationState instanceof ConfigurationImpl ) { ConfigurationImpl hvConfig = (ConfigurationImpl) configurationState; timeProvider = hvConfig.getTimeProvider(); } // XML config if ( timeProvider == null ) { String timeProviderClassName = configurationState.getProperties() .get( HibernateValidatorConfiguration.TIME_PROVIDER ); if ( timeProviderClassName != null ) { @SuppressWarnings("unchecked") Class<? extends TimeProvider> handlerType = (Class<? extends TimeProvider>) run( LoadClass .action( timeProviderClassName, externalClassLoader ) ); timeProvider = run( NewInstance.action( handlerType, "time provider class" ) ); } } return timeProvider != null ? timeProvider : DefaultTimeProvider.getInstance(); }
private static ScriptEvaluatorFactory getScriptEvaluatorFactory(ConfigurationState configurationState, Map<String, String> properties, ClassLoader externalClassLoader) { if ( configurationState instanceof ConfigurationImpl ) { ConfigurationImpl hibernateSpecificConfig = (ConfigurationImpl) configurationState; if ( hibernateSpecificConfig.getScriptEvaluatorFactory() != null ) { LOG.usingScriptEvaluatorFactory( hibernateSpecificConfig.getScriptEvaluatorFactory().getClass() ); return hibernateSpecificConfig.getScriptEvaluatorFactory(); } } String scriptEvaluatorFactoryFqcn = properties.get( HibernateValidatorConfiguration.SCRIPT_EVALUATOR_FACTORY_CLASSNAME ); if ( scriptEvaluatorFactoryFqcn != null ) { try { @SuppressWarnings("unchecked") Class<? extends ScriptEvaluatorFactory> clazz = (Class<? extends ScriptEvaluatorFactory>) run( LoadClass.action( scriptEvaluatorFactoryFqcn, externalClassLoader ) ); ScriptEvaluatorFactory scriptEvaluatorFactory = run( NewInstance.action( clazz, "script evaluator factory class" ) ); LOG.usingScriptEvaluatorFactory( clazz ); return scriptEvaluatorFactory; } catch (Exception e) { throw LOG.getUnableToInstantiateScriptEvaluatorFactoryClassException( scriptEvaluatorFactoryFqcn, e ); } } return new DefaultScriptEvaluatorFactory( externalClassLoader ); }
private static Set<DefaultConstraintMapping> getConstraintMappings(TypeResolutionHelper typeResolutionHelper, ConfigurationState configurationState, ClassLoader externalClassLoader) { Set<DefaultConstraintMapping> constraintMappings = newHashSet(); if ( configurationState instanceof ConfigurationImpl ) { ConfigurationImpl hibernateConfiguration = (ConfigurationImpl) configurationState; // programmatic config /* We add these first so that constraint mapping created through DefaultConstraintMappingBuilder will take * these programmatically defined mappings into account when checking for constraint definition uniqueness */ constraintMappings.addAll( hibernateConfiguration.getProgrammaticMappings() ); // service loader based config ConstraintMappingContributor serviceLoaderBasedContributor = new ServiceLoaderBasedConstraintMappingContributor( typeResolutionHelper, externalClassLoader != null ? externalClassLoader : run( GetClassLoader.fromContext() ) ); DefaultConstraintMappingBuilder builder = new DefaultConstraintMappingBuilder( constraintMappings ); serviceLoaderBasedContributor.createConstraintMappings( builder ); } // XML-defined constraint mapping contributors List<ConstraintMappingContributor> contributors = getPropertyConfiguredConstraintMappingContributors( configurationState.getProperties(), externalClassLoader ); for ( ConstraintMappingContributor contributor : contributors ) { DefaultConstraintMappingBuilder builder = new DefaultConstraintMappingBuilder( constraintMappings ); contributor.createConstraintMappings( builder ); } return constraintMappings; }