Java 类org.springframework.context.HierarchicalMessageSource 实例源码

项目:configx    文件:ConfigMessageSourceConfigurer.java   
/**
 * 配置基于配置的MessageSource
 */
private void configureMessageSource() {
    // MessageSource bean name
    String messageSourceBeanName = AbstractApplicationContext.MESSAGE_SOURCE_BEAN_NAME;

    // Config MessageSource bean name
    String configMessageSourceBeanName = CONFIG_MESSAGE_SOURCE_BEAN_NAME;

    // 基于配置服务的MessageSource
    ConfigMessageSource configMessageSource = beanFactory.getBean(configMessageSourceBeanName, ConfigMessageSource.class);

    // 如果已经存在MessageSource bean,则将ConfigMessageSource设置为messageSource的parent,将messageSource原来的parent设置为ConfigMessageSource的parent
    if (beanFactory.containsLocalBean(messageSourceBeanName)) {
        MessageSource messageSource = beanFactory.getBean(messageSourceBeanName, MessageSource.class);
        if (messageSource instanceof HierarchicalMessageSource) {
            HierarchicalMessageSource hms = (HierarchicalMessageSource) messageSource;
            MessageSource pms = hms.getParentMessageSource();

            hms.setParentMessageSource(configMessageSource);
            configMessageSource.setParentMessageSource(pms);
        }
    } else {
        beanFactory.registerSingleton(messageSourceBeanName, configMessageSource);
    }
}
项目:cas-5.1.0    文件:CasCoreWebConfiguration.java   
@RefreshScope
@Bean
public HierarchicalMessageSource messageSource() {
    final CasReloadableMessageBundle bean = new CasReloadableMessageBundle();
    bean.setDefaultEncoding(casProperties.getMessageBundle().getEncoding());
    bean.setCacheSeconds(casProperties.getMessageBundle().getCacheSeconds());
    bean.setFallbackToSystemLocale(casProperties.getMessageBundle().isFallbackSystemLocale());
    bean.setUseCodeAsDefaultMessage(casProperties.getMessageBundle().isUseCodeMessage());
    bean.setBasenames(casProperties.getMessageBundle().getBaseNames());
    return bean;
}
项目:lams    文件:AbstractApplicationContext.java   
/**
 * Initialize the MessageSource.
 * Use parent's if none defined in this context.
 */
protected void initMessageSource() {
    ConfigurableListableBeanFactory beanFactory = getBeanFactory();
    if (beanFactory.containsLocalBean(MESSAGE_SOURCE_BEAN_NAME)) {
        this.messageSource = beanFactory.getBean(MESSAGE_SOURCE_BEAN_NAME, MessageSource.class);
        // Make MessageSource aware of parent MessageSource.
        if (this.parent != null && this.messageSource instanceof HierarchicalMessageSource) {
            HierarchicalMessageSource hms = (HierarchicalMessageSource) this.messageSource;
            if (hms.getParentMessageSource() == null) {
                // Only set parent context as parent MessageSource if no parent MessageSource
                // registered already.
                hms.setParentMessageSource(getInternalParentMessageSource());
            }
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Using MessageSource [" + this.messageSource + "]");
        }
    }
    else {
        // Use empty MessageSource to be able to accept getMessage calls.
        DelegatingMessageSource dms = new DelegatingMessageSource();
        dms.setParentMessageSource(getInternalParentMessageSource());
        this.messageSource = dms;
        beanFactory.registerSingleton(MESSAGE_SOURCE_BEAN_NAME, this.messageSource);
        if (logger.isDebugEnabled()) {
            logger.debug("Unable to locate MessageSource with name '" + MESSAGE_SOURCE_BEAN_NAME +
                    "': using default [" + this.messageSource + "]");
        }
    }
}
项目:lams    文件:ResourceBundleThemeSource.java   
/**
 * Initialize the MessageSource of the given theme with the
 * one from the corresponding parent of this ThemeSource.
 * @param theme the Theme to (re-)initialize
 */
protected void initParent(Theme theme) {
    if (theme.getMessageSource() instanceof HierarchicalMessageSource) {
        HierarchicalMessageSource messageSource = (HierarchicalMessageSource) theme.getMessageSource();
        if (getParentThemeSource() != null && messageSource.getParentMessageSource() == null) {
            Theme parentTheme = getParentThemeSource().getTheme(theme.getName());
            if (parentTheme != null) {
                messageSource.setParentMessageSource(parentTheme.getMessageSource());
            }
        }
    }
}
项目:spring4-understanding    文件:AbstractApplicationContext.java   
/**
 * Initialize the MessageSource.
 * Use parent's if none defined in this context.
 */
protected void initMessageSource() {
    ConfigurableListableBeanFactory beanFactory = getBeanFactory();
    if (beanFactory.containsLocalBean(MESSAGE_SOURCE_BEAN_NAME)) {
        this.messageSource = beanFactory.getBean(MESSAGE_SOURCE_BEAN_NAME, MessageSource.class);
        // Make MessageSource aware of parent MessageSource.
        if (this.parent != null && this.messageSource instanceof HierarchicalMessageSource) {
            HierarchicalMessageSource hms = (HierarchicalMessageSource) this.messageSource;
            if (hms.getParentMessageSource() == null) {
                // Only set parent context as parent MessageSource if no parent MessageSource
                // registered already.
                hms.setParentMessageSource(getInternalParentMessageSource());
            }
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Using MessageSource [" + this.messageSource + "]");
        }
    }
    else {
        // Use empty MessageSource to be able to accept getMessage calls.
        DelegatingMessageSource dms = new DelegatingMessageSource();
        dms.setParentMessageSource(getInternalParentMessageSource());
        this.messageSource = dms;
        beanFactory.registerSingleton(MESSAGE_SOURCE_BEAN_NAME, this.messageSource);
        if (logger.isDebugEnabled()) {
            logger.debug("Unable to locate MessageSource with name '" + MESSAGE_SOURCE_BEAN_NAME +
                    "': using default [" + this.messageSource + "]");
        }
    }
}
项目:spring4-understanding    文件:ResourceBundleThemeSource.java   
/**
 * Initialize the MessageSource of the given theme with the
 * one from the corresponding parent of this ThemeSource.
 * @param theme the Theme to (re-)initialize
 */
protected void initParent(Theme theme) {
    if (theme.getMessageSource() instanceof HierarchicalMessageSource) {
        HierarchicalMessageSource messageSource = (HierarchicalMessageSource) theme.getMessageSource();
        if (getParentThemeSource() != null && messageSource.getParentMessageSource() == null) {
            Theme parentTheme = getParentThemeSource().getTheme(theme.getName());
            if (parentTheme != null) {
                messageSource.setParentMessageSource(parentTheme.getMessageSource());
            }
        }
    }
}
项目:my-spring-cache-redis    文件:AbstractApplicationContext.java   
/**
 * Initialize the MessageSource.
 * Use parent's if none defined in this context.
 */
protected void initMessageSource() {
    ConfigurableListableBeanFactory beanFactory = getBeanFactory();
    if (beanFactory.containsLocalBean(MESSAGE_SOURCE_BEAN_NAME)) {
        this.messageSource = beanFactory.getBean(MESSAGE_SOURCE_BEAN_NAME, MessageSource.class);
        // Make MessageSource aware of parent MessageSource.
        if (this.parent != null && this.messageSource instanceof HierarchicalMessageSource) {
            HierarchicalMessageSource hms = (HierarchicalMessageSource) this.messageSource;
            if (hms.getParentMessageSource() == null) {
                // Only set parent context as parent MessageSource if no parent MessageSource
                // registered already.
                hms.setParentMessageSource(getInternalParentMessageSource());
            }
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Using MessageSource [" + this.messageSource + "]");
        }
    }
    else {
        // Use empty MessageSource to be able to accept getMessage calls.
        DelegatingMessageSource dms = new DelegatingMessageSource();
        dms.setParentMessageSource(getInternalParentMessageSource());
        this.messageSource = dms;
        beanFactory.registerSingleton(MESSAGE_SOURCE_BEAN_NAME, this.messageSource);
        if (logger.isDebugEnabled()) {
            logger.debug("Unable to locate MessageSource with name '" + MESSAGE_SOURCE_BEAN_NAME +
                    "': using default [" + this.messageSource + "]");
        }
    }
}
项目:my-spring-cache-redis    文件:ResourceBundleThemeSource.java   
/**
 * Initialize the MessageSource of the given theme with the
 * one from the corresponding parent of this ThemeSource.
 * @param theme the Theme to (re-)initialize
 */
protected void initParent(Theme theme) {
    if (theme.getMessageSource() instanceof HierarchicalMessageSource) {
        HierarchicalMessageSource messageSource = (HierarchicalMessageSource) theme.getMessageSource();
        if (getParentThemeSource() != null && messageSource.getParentMessageSource() == null) {
            Theme parentTheme = getParentThemeSource().getTheme(theme.getName());
            if (parentTheme != null) {
                messageSource.setParentMessageSource(parentTheme.getMessageSource());
            }
        }
    }
}
项目:spring    文件:AbstractApplicationContext.java   
/**
 * Initialize the MessageSource.
 * Use parent's if none defined in this context.
 */
protected void initMessageSource() {
    ConfigurableListableBeanFactory beanFactory = getBeanFactory();
    if (beanFactory.containsLocalBean(MESSAGE_SOURCE_BEAN_NAME)) {
        this.messageSource = beanFactory.getBean(MESSAGE_SOURCE_BEAN_NAME, MessageSource.class);
        // Make MessageSource aware of parent MessageSource.
        if (this.parent != null && this.messageSource instanceof HierarchicalMessageSource) {
            HierarchicalMessageSource hms = (HierarchicalMessageSource) this.messageSource;
            if (hms.getParentMessageSource() == null) {
                // Only set parent context as parent MessageSource if no parent MessageSource
                // registered already.
                hms.setParentMessageSource(getInternalParentMessageSource());
            }
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Using MessageSource [" + this.messageSource + "]");
        }
    }
    else {
        // Use empty MessageSource to be able to accept getMessage calls.
        DelegatingMessageSource dms = new DelegatingMessageSource();
        dms.setParentMessageSource(getInternalParentMessageSource());
        this.messageSource = dms;
        beanFactory.registerSingleton(MESSAGE_SOURCE_BEAN_NAME, this.messageSource);
        if (logger.isDebugEnabled()) {
            logger.debug("Unable to locate MessageSource with name '" + MESSAGE_SOURCE_BEAN_NAME +
                    "': using default [" + this.messageSource + "]");
        }
    }
}
项目:spring    文件:ResourceBundleThemeSource.java   
/**
 * Initialize the MessageSource of the given theme with the
 * one from the corresponding parent of this ThemeSource.
 * @param theme the Theme to (re-)initialize
 */
protected void initParent(Theme theme) {
    if (theme.getMessageSource() instanceof HierarchicalMessageSource) {
        HierarchicalMessageSource messageSource = (HierarchicalMessageSource) theme.getMessageSource();
        if (getParentThemeSource() != null && messageSource.getParentMessageSource() == null) {
            Theme parentTheme = getParentThemeSource().getTheme(theme.getName());
            if (parentTheme != null) {
                messageSource.setParentMessageSource(parentTheme.getMessageSource());
            }
        }
    }
}
项目:class-guard    文件:AbstractApplicationContext.java   
/**
 * Initialize the MessageSource.
 * Use parent's if none defined in this context.
 */
protected void initMessageSource() {
    ConfigurableListableBeanFactory beanFactory = getBeanFactory();
    if (beanFactory.containsLocalBean(MESSAGE_SOURCE_BEAN_NAME)) {
        this.messageSource = beanFactory.getBean(MESSAGE_SOURCE_BEAN_NAME, MessageSource.class);
        // Make MessageSource aware of parent MessageSource.
        if (this.parent != null && this.messageSource instanceof HierarchicalMessageSource) {
            HierarchicalMessageSource hms = (HierarchicalMessageSource) this.messageSource;
            if (hms.getParentMessageSource() == null) {
                // Only set parent context as parent MessageSource if no parent MessageSource
                // registered already.
                hms.setParentMessageSource(getInternalParentMessageSource());
            }
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Using MessageSource [" + this.messageSource + "]");
        }
    }
    else {
        // Use empty MessageSource to be able to accept getMessage calls.
        DelegatingMessageSource dms = new DelegatingMessageSource();
        dms.setParentMessageSource(getInternalParentMessageSource());
        this.messageSource = dms;
        beanFactory.registerSingleton(MESSAGE_SOURCE_BEAN_NAME, this.messageSource);
        if (logger.isDebugEnabled()) {
            logger.debug("Unable to locate MessageSource with name '" + MESSAGE_SOURCE_BEAN_NAME +
                    "': using default [" + this.messageSource + "]");
        }
    }
}
项目:class-guard    文件:ResourceBundleThemeSource.java   
/**
 * Initialize the MessageSource of the given theme with the
 * one from the corresponding parent of this ThemeSource.
 * @param theme the Theme to (re-)initialize
 */
protected void initParent(Theme theme) {
    if (theme.getMessageSource() instanceof HierarchicalMessageSource) {
        HierarchicalMessageSource messageSource = (HierarchicalMessageSource) theme.getMessageSource();
        if (getParentThemeSource() != null && messageSource.getParentMessageSource() == null) {
            Theme parentTheme = getParentThemeSource().getTheme(theme.getName());
            if (parentTheme != null) {
                messageSource.setParentMessageSource(parentTheme.getMessageSource());
            }
        }
    }
}
项目:spring-rest-exception-handler    文件:RestHandlerExceptionResolverBuilder.java   
HierarchicalMessageSource resolveRootMessageSource(MessageSource messageSource) {

        if (messageSource instanceof HierarchicalMessageSource) {
            MessageSource parent = ((HierarchicalMessageSource) messageSource).getParentMessageSource();

            return parent != null ? resolveRootMessageSource(parent) : (HierarchicalMessageSource) messageSource;

        } else {
            return null;
        }
    }
项目:spring-rest-exception-handler    文件:RestHandlerExceptionResolverBuilder.java   
public RestHandlerExceptionResolver build() {

        if (withDefaultMessageSource) {
            if (messageSource != null) {
                // set default message source as top parent
                HierarchicalMessageSource messages = resolveRootMessageSource(messageSource);
                if (messages != null) {
                    messages.setParentMessageSource(createDefaultMessageSource());
                }
            } else {
                messageSource = createDefaultMessageSource();
            }
        }

        if (withDefaultHandlers) {
            // add default handlers
            putAllIfAbsent(exceptionHandlers, getDefaultHandlers());
        }

        // initialize handlers
        for (RestExceptionHandler handler : exceptionHandlers.values()) {
            if (messageSource != null && handler instanceof MessageSourceAware) {
                ((MessageSourceAware) handler).setMessageSource(messageSource);
            }
            if (messageInterpolator != null && handler instanceof MessageInterpolatorAware) {
                ((MessageInterpolatorAware) handler).setMessageInterpolator(messageInterpolator);
            }
        }

        RestHandlerExceptionResolver resolver = new RestHandlerExceptionResolver();
        resolver.setExceptionHandlers((Map) exceptionHandlers);

        if (httpMessageConverters != null) {
            resolver.setMessageConverters(httpMessageConverters);
        }
        if (contentNegotiationManager != null) {
            resolver.setContentNegotiationManager(contentNegotiationManager);
        }
        if (defaultContentType != null) {
            resolver.setDefaultContentType(defaultContentType);
        }
        resolver.afterPropertiesSet();

        return resolver;
    }