Top Description Fields Constructors Methods
org.hibernate.validator.messageinterpolation

public Class ResourceBundleMessageInterpolator

extends AbstractMessageInterpolator
Class Inheritance
Imports
java.lang.invoke.MethodHandles, java.security.AccessController, .PrivilegedAction, java.util.Collections, .Locale, .Set, org.hibernate.validator.Incubating, org.hibernate.validator.internal.IgnoreForbiddenApisErrors, org.hibernate.validator.internal.engine.messageinterpolation.DefaultLocaleResolver, .InterpolationTerm, org.hibernate.validator.internal.util.logging.Log, .LoggerFactory, org.hibernate.validator.internal.util.privilegedactions.GetClassLoader, .SetContextClassLoader, org.hibernate.validator.spi.messageinterpolation.LocaleResolver, org.hibernate.validator.spi.resourceloading.ResourceBundleLocator, com.sun.el.ExpressionFactoryImpl, jakarta.el.ELManager, .ExpressionFactory

Resource bundle backed message interpolator.
Authors
Emmanuel Bernard, Hardy Ferentschik, Gunnar Morling, Kevin Pollet <[email protected]> (C) 2011 SERLI, Adam Stawicki, Guillaume Smet

Field Summary

Modifier and TypeField and Description
private final ExpressionFactory
private static final Log
Inherited from org.hibernate.validator.messageinterpolation.AbstractMessageInterpolator:
CONTRIBUTOR_VALIDATION_MESSAGESDEFAULT_VALIDATION_MESSAGESUSER_VALIDATION_MESSAGES

Constructor Summary

AccessConstructor and Description
public
public
public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator, boolean cachingEnabled)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, boolean cachingEnabled)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, boolean cachingEnabled, ExpressionFactory expressionFactory)

public
ResourceBundleMessageInterpolator(Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles, boolean cachingEnabled)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles, boolean cachingEnabled)

public
ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles, boolean cachingEnabled, ExpressionFactory expressionFactory)

Method Summary

Modifier and TypeMethod and Description
private static ExpressionFactory

Returns:

the ExpressionFactory
buildExpressionFactory
()

The jakarta.el FactoryFinder uses the TCCL to load the ExpressionFactory implementation so we need to be extra careful when initializing it.

private static boolean
canLoadExpressionFactory()

Instead of testing the different class loaders via ELManager, we directly access the ExpressionFactory.

protected String
private static <T> T
run(PrivilegedAction<T> action)

Runs the given privileged action, using a privileged block if required.

Inherited from org.hibernate.validator.messageinterpolation.AbstractMessageInterpolator:
interpolateinterpolate

Field Detail

expressionFactoryback to summary
private final ExpressionFactory expressionFactory
LOGback to summary
private static final Log LOG

Hides org.hibernate.validator.messageinterpolation.AbstractMessageInterpolator.LOG.

Constructor Detail

ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator()
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator)
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator)
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator, boolean cachingEnabled)
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, boolean cachingEnabled)
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, boolean cachingEnabled, ExpressionFactory expressionFactory)
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles)
Annotations
@Incubating
Since
6.1.1
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles)
Annotations
@Incubating
Since
6.1.1
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles)
Annotations
@Incubating
Since
6.1.1
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, ResourceBundleLocator contributorResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles, boolean cachingEnabled)
Annotations
@Incubating
Since
6.1.1
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles, boolean cachingEnabled)
Annotations
@Incubating
Since
6.1.1
ResourceBundleMessageInterpolatorback to summary
public ResourceBundleMessageInterpolator(ResourceBundleLocator userResourceBundleLocator, Set<Locale> locales, Locale defaultLocale, LocaleResolver localeResolver, boolean preloadResourceBundles, boolean cachingEnabled, ExpressionFactory expressionFactory)
Annotations
@Incubating
Since
6.1.1

Method Detail

buildExpressionFactoryback to summary
private static ExpressionFactory buildExpressionFactory()

The jakarta.el FactoryFinder uses the TCCL to load the ExpressionFactory implementation so we need to be extra careful when initializing it.

Returns:ExpressionFactory

the ExpressionFactory

canLoadExpressionFactoryback to summary
private static boolean canLoadExpressionFactory()

Instead of testing the different class loaders via ELManager, we directly access the ExpressionFactory. This avoids issues with loading the ELUtil class (used by ELManager) after a failed attempt.

interpolateback to summary
protected String interpolate(MessageInterpolator.Context context, Locale locale, String term)

Implements abstract org.hibernate.validator.messageinterpolation.AbstractMessageInterpolator.interpolate.

Annotations
@Override
runback to summary
private static <T> T run(PrivilegedAction<T> action)

Runs the given privileged action, using a privileged block if required.

Note

This must never be changed into a publicly available method to avoid execution of arbitrary privileged actions within HV's protection domain.

Annotations
@IgnoreForbiddenApisErrors
reason:SecurityManager is deprecated in JDK17