Remove DistributedResourceBundleMessageSource (#1976)
[release_notes] Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
@@ -1,75 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2015 Bosch Software Innovations GmbH and others
|
|
||||||
*
|
|
||||||
* This program and the accompanying materials are made
|
|
||||||
* available under the terms of the Eclipse Public License 2.0
|
|
||||||
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
|
||||||
*/
|
|
||||||
package org.eclipse.hawkbit;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
|
|
||||||
import org.springframework.core.io.Resource;
|
|
||||||
import org.springframework.core.io.ResourceLoader;
|
|
||||||
import org.springframework.core.io.support.ResourcePatternResolver;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This resource bundles using specified basenames, to resource loading. This
|
|
||||||
* MessageSource implementation supports more than 1 properties file with the
|
|
||||||
* same name. All properties files will be merged.
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
public class DistributedResourceBundleMessageSource extends ReloadableResourceBundleMessageSource {
|
|
||||||
|
|
||||||
private static final String PROPERTIES_SUFFIX = ".properties";
|
|
||||||
private ResourceLoader resourceLoader;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor to set Defaults. Default base name is classpath*:/messages.
|
|
||||||
* So all messages_ will be found.
|
|
||||||
*/
|
|
||||||
public DistributedResourceBundleMessageSource() {
|
|
||||||
setBasename("classpath*:/messages");
|
|
||||||
setDefaultEncoding("UTF-8");
|
|
||||||
setUseCodeAsDefaultMessage(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setResourceLoader(final ResourceLoader resourceLoader) {
|
|
||||||
this.resourceLoader = resourceLoader;
|
|
||||||
super.setResourceLoader(resourceLoader);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected PropertiesHolder refreshProperties(final String filename, final PropertiesHolder propHolder) {
|
|
||||||
final Properties properties = new Properties();
|
|
||||||
long lastModified = -1;
|
|
||||||
if (!(resourceLoader instanceof ResourcePatternResolver)) {
|
|
||||||
log.warn(
|
|
||||||
"Resource Loader {} doesn'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) {
|
|
||||||
log.warn("Resource with filename " + filename + " couldn't load", ignored);
|
|
||||||
}
|
|
||||||
return new PropertiesHolder(properties, lastModified);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user