@Test public void testReloadableResourceBundleMessageSourceWithCacheSeconds() throws InterruptedException { ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource(); ms.setBasename("org/springframework/context/support/messages"); ms.setCacheSeconds(1); // Initial cache attempt assertEquals("message1", ms.getMessage("code1", null, Locale.ENGLISH)); assertEquals("nachricht2", ms.getMessage("code2", null, Locale.GERMAN)); Thread.sleep(1100); // Late enough for a re-cache attempt assertEquals("message1", ms.getMessage("code1", null, Locale.ENGLISH)); assertEquals("nachricht2", ms.getMessage("code2", null, Locale.GERMAN)); }
@Override public void setCacheSeconds(int cacheSeconds) { this.cacheMilliseconds = cacheSeconds * 1000; super.setCacheSeconds(cacheSeconds); }
@Test public void testReloadableResourceBundleMessageSourceWithNonConcurrentRefresh() throws InterruptedException { ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource(); ms.setBasename("org/springframework/context/support/messages"); ms.setCacheSeconds(1); ms.setConcurrentRefresh(false); // Initial cache attempt assertEquals("message1", ms.getMessage("code1", null, Locale.ENGLISH)); assertEquals("nachricht2", ms.getMessage("code2", null, Locale.GERMAN)); Thread.sleep(1100); // Late enough for a re-cache attempt assertEquals("message1", ms.getMessage("code1", null, Locale.ENGLISH)); assertEquals("nachricht2", ms.getMessage("code2", null, Locale.GERMAN)); }
/** * Gets the reloadable resource bundle message source. * * @return the reloadable resource bundle message source */ @Bean(name = "messageSource") public MessageSource getMessageSource() { logger.debug("Instantiated reloadableResourceBundleMessageSource"); ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource(); source.setBasename("/WEB-INF/messages"); source.setCacheSeconds(1); source.setFallbackToSystemLocale(false); return source; }
@Override @Autowired public void setCacheSeconds(@Value("${message.bundle.cacheseconds:180}") final int cacheSeconds) { super.setCacheSeconds(cacheSeconds); }
@Bean(name = "messageSource") public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename(MESSAGE_SOURCE); messageSource.setCacheSeconds(5); return messageSource; }
@Bean public ReloadableResourceBundleMessageSource messageSource() { ReloadableResourceBundleMessageSource resourceBundleMessageSource = new ReloadableResourceBundleMessageSource(); resourceBundleMessageSource.setBasename("classpath:i18n/messages"); // Checks for new messages every 30 minutes resourceBundleMessageSource.setCacheSeconds(1800); return resourceBundleMessageSource; }
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:error_message"); messageSource.setCacheSeconds(3600); //reload messages every hour messageSource.setDefaultEncoding("UTF-8"); return messageSource; } }
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:error_message"); messageSource.setCacheSeconds(3600); //reload messages every hour messageSource.setDefaultEncoding("UTF-8"); return messageSource; } }
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:error_message"); messageSource.setCacheSeconds(3600); //reload messages every hour messageSource.setDefaultEncoding("UTF-8"); return messageSource; }
@PostConstruct public void initMessageSource() { ReloadableResourceBundleMessageSource reloadableMessageSource = new ReloadableResourceBundleMessageSource(); reloadableMessageSource.setDefaultEncoding("UTF-8"); reloadableMessageSource.setBasename(config.getI18nBundleBase()); reloadableMessageSource.setCacheSeconds(config.getI18nCacheSeconds()); this.messageSource = reloadableMessageSource; }
// create the real bean ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setDefaultEncoding("UTF-8"); messageSource.setCacheSeconds(-1); messageSource.setBasenames("classpath:conf-test/messages"); // this folder is just for testing and it contains a messages_en.properties file // inject the bean into the class I wanted to test ReflectionTestUtils.setField(service, "messageSource", messageSource);
@Bean public MessageSource messageSource() { // TODO database MessageSource ReloadableResourceBundleMessageSource bean = new ReloadableResourceBundleMessageSource(); bean.addBasenames("classpath:message", "classpath:ValidationMessages"); for (String s : MessageResources.DEFAULT_MESSAGE_RESOURCE_BASES.split("[,;\\s]+")) { bean.addBasenames(fetchBasenames(s)); } bean.setUseCodeAsDefaultMessage(false);//true bean.setDefaultEncoding("UTF-8"); bean.setCacheSeconds(60); return bean; }
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("messages"); messageSource.setFallbackToSystemLocale(false); messageSource.setCacheSeconds(0); messageSource.setDefaultEncoding("UTF-8"); return messageSource; }
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:messages"); messageSource.setFallbackToSystemLocale(false); messageSource.setCacheSeconds(0); messageSource.setDefaultEncoding("UTF-8"); return messageSource; }
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasenames( "classpath:messages" ); // if true, the key of the message will be displayed if the key is not // found, instead of throwing a NoSuchMessageException messageSource.setUseCodeAsDefaultMessage( true ); messageSource.setDefaultEncoding( "UTF-8" ); // # -1 : never reload, 0 always reload messageSource.setCacheSeconds( 0 ); return messageSource; }
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("validation"); messageSource.setCacheSeconds(1); return messageSource; } @Bean LocalValidatorFactoryBean getValidator() { LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean(); validator.setValidationMessageSource(messageSource()); validator.setParameterNameDiscoverer(new LocalVariableTableParameterNameDiscoverer()); return validator; } @Bean @Autowired MethodValidationPostProcessor getValidationPostProcessor(LocalValidatorFactoryBean validator) { MethodValidationPostProcessor processor = new MethodValidationPostProcessor(); processor.setValidator(validator); return processor; }
messageSource.setCacheSeconds( 0 ); return messageSource;