return existingHolder; return refreshProperties(filename, propHolder);
return existingHolder; return refreshProperties(filename, propHolder);
/** * {@inheritDoc} * <p> * Consider {@code classpath*:} prefix to search for messageSources within jar files. */ @Override protected PropertiesHolder refreshProperties(String filename, PropertiesHolder propHolder) { if (filename.startsWith(PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX)) { return refreshClassPathProperties(filename, propHolder); } else { return super.refreshProperties(filename, propHolder); } }
/** * Intercept the refreshProperties call to handle "classpath*:" syntax. * * @see org.springframework.context.support.ReloadableResourceBundleMessageSource#refreshProperties(java.lang.String, * org.springframework.context.support.ReloadableResourceBundleMessageSource.PropertiesHolder) */ @Override protected PropertiesHolder refreshProperties(String filename, PropertiesHolder propHolder) { if (filename.startsWith(PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX)) { return refreshClassPathProperties(filename, propHolder); } else { return super.refreshProperties(filename, propHolder); } }
/** * Intercept the refreshProperties call to handle "classpath*:" syntax. * * @see org.springframework.context.support.ReloadableResourceBundleMessageSource#refreshProperties(java.lang.String, * org.springframework.context.support.ReloadableResourceBundleMessageSource.PropertiesHolder) */ @Override protected PropertiesHolder refreshProperties(String filename, PropertiesHolder propHolder) { if (filename.startsWith(PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX)) { return refreshClassPathProperties(filename, propHolder); } else { return super.refreshProperties(filename, propHolder); } }
@Override protected PropertiesHolder refreshProperties(String filename, PropertiesHolder propHolder) { if (filename.startsWith(PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX)) { PropertiesHolder existingHolder = this.cachedClasspathProperties.get(filename); if (existingHolder != null && existingHolder.getRefreshTimestamp() > ( System.currentTimeMillis() - getCacheMillis())) { return existingHolder; } return refreshClassPathProperties(filename, propHolder); } else { return super.refreshProperties(filename, propHolder); } }
@Override protected PropertiesHolder refreshProperties(final String filename, final PropertiesHolder propHolder) { final Properties properties = new Properties(); long lastModified = -1; if (!(resourceLoader instanceof ResourcePatternResolver)) { LOGGER.warn( "Resource Loader {} doensn't support getting multiple resources. Default properties mechanism will used", resourceLoader.getClass().getName()); return super.refreshProperties(filename, propHolder); } try { final Resource[] resources = ((ResourcePatternResolver) resourceLoader) .getResources(filename + PROPERTIES_SUFFIX); for (final Resource resource : resources) { final String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); final PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); if (lastModified < resource.lastModified()) { lastModified = resource.lastModified(); } } } catch (final IOException ignored) { LOGGER.warn("Resource with filname " + filename + " couldn't load", ignored); } return new PropertiesHolder(properties, lastModified); }
@Override protected PropertiesHolder refreshProperties(final String filename, final PropertiesHolder propHolder) { final Properties properties = new Properties(); long lastModified = -1; if (!(resourceLoader instanceof ResourcePatternResolver)) { LOGGER.warn( "Resource Loader {} doensn't support getting multiple resources. Default properties mechanism will used", resourceLoader.getClass().getName()); return super.refreshProperties(filename, propHolder); } try { final Resource[] resources = ((ResourcePatternResolver) resourceLoader) .getResources(filename + PROPERTIES_SUFFIX); for (final Resource resource : resources) { final String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); final PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); if (lastModified < resource.lastModified()) { lastModified = resource.lastModified(); } } } catch (final IOException ignored) { LOGGER.warn("Resource with filname " + filename + " couldn't load", ignored); } return new PropertiesHolder(properties, lastModified); }
/** * Handle classpath syntax. * * @param filename "classpath*:"-prefixed filename. * @param propHolder The properties holder. * @return The new properties holder. */ private PropertiesHolder refreshClassPathProperties(String filename, PropertiesHolder propHolder) { Properties properties = new Properties(); long lastModified = -1; try { Resource[] resources = resolver.getResources(filename + PROPERTIES_SUFFIX); for (Resource resource : resources) { String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); lastModified = Math.min(lastModified, resource.lastModified()); } } catch (Exception e) { log.warn("Error reading message source: " + filename); } return new PropertiesHolder(properties, lastModified); }
@Override protected PropertiesHolder refreshProperties(String filename, PropertiesHolder propHolder) { Properties properties = new Properties(); long lastModified = -1; try { Resource[] resources = resolver.getResources(filename + "*" + PROPERTIES_SUFFIX); for (Resource resource : resources) { String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); if (lastModified < resource.lastModified()) { lastModified = resource.lastModified(); } } } catch (IOException e) { logger.error(e.getMessage(), e); } return new PropertiesHolder(properties, lastModified); } }
private PropertiesHolder refreshClassPathProperties(String filename, PropertiesHolder propHolder) { Properties properties = new Properties(); long lastModified = -1; try { Resource[] resources = resolver.getResources(filename + PROPERTIES_SUFFIX); for (Resource resource : resources) { String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); if (lastModified < resource.lastModified()) lastModified = resource.lastModified(); } } catch (IOException ignored) { } return new PropertiesHolder(properties, lastModified); } }
@Override protected PropertiesHolder refreshProperties(String filename, PropertiesHolder propHolder) { Properties properties = new Properties(); long lastModified = -1; try { Resource[] resources = resolver.getResources(filename + "*" + PROPERTIES_SUFFIX); for (Resource resource : resources) { String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); if (lastModified < resource.lastModified()) { lastModified = resource.lastModified(); } } } catch (IOException e) { logger.error(e.getMessage(), e); } return new PropertiesHolder(properties, lastModified); } }
/** * Handle classpath syntax. * * @param filename "classpath*:"-prefixed filename. * @param propHolder The properties holder. * @return The new properties holder. */ private PropertiesHolder refreshClassPathProperties(String filename, PropertiesHolder propHolder) { Properties properties = new Properties(); long lastModified = -1; try { Resource[] resources = resolver.getResources(filename + PROPERTIES_SUFFIX); for (Resource resource : resources) { String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); lastModified = Math.min(lastModified, resource.lastModified()); } } catch (Exception e) { log.warn(() -> "Error reading message source: " + filename); } return new PropertiesHolder(properties, lastModified); }
private PropertiesHolder refreshClassPathProperties(String filename, PropertiesHolder propHolder) { Properties properties = new Properties(); long lastModified = -1; try { Resource[] resources = resolver.getResources(filename + PROPERTIES_SUFFIX); for (Resource resource : resources) { String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, ""); PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder); properties.putAll(holder.getProperties()); if (lastModified < resource.lastModified()) { lastModified = resource.lastModified(); } } } catch (IOException ignored) { } PropertiesHolder holder = new PropertiesHolder(properties, lastModified); holder.setRefreshTimestamp(getCacheMillis() < 0 ? -1 : System.currentTimeMillis()); cachedClasspathProperties.put(filename, holder); return holder; } }
return existingHolder; return refreshProperties(filename, propHolder);