Skip to content

Commit 16ae985

Browse files
committed
fix: Add classloader to i18n
1 parent c9718d5 commit 16ae985

File tree

3 files changed

+14
-13
lines changed

3 files changed

+14
-13
lines changed

hivemq-edge/src/main/java/com/hivemq/common/i18n/I18nErrorTemplate.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,13 @@ public final class I18nErrorTemplate {
4545
private static final @NotNull Logger LOGGER = LoggerFactory.getLogger(I18nErrorTemplate.class);
4646
private final @NotNull Map<String, Configuration> configurationMap;
4747
private final @NotNull Function<Locale, String> resourceNameFunction;
48+
private final @NotNull ClassLoader classLoader;
4849

49-
public I18nErrorTemplate(final @NotNull Function<Locale, String> resourceNameFunction) {
50+
public I18nErrorTemplate(
51+
final @NotNull Function<Locale, String> resourceNameFunction,
52+
final @NotNull ClassLoader classLoader) {
5053
configurationMap = new ConcurrentHashMap<>();
54+
this.classLoader = classLoader;
5155
this.resourceNameFunction = resourceNameFunction;
5256
}
5357

@@ -60,7 +64,7 @@ private Configuration createConfiguration(final @NotNull Locale locale) throws I
6064
final Properties properties = new Properties();
6165
final String resourceName = resourceNameFunction.apply(locale);
6266
try (final StringReader stringReader = new StringReader(IOUtils.resourceToString(resourceName,
63-
StandardCharsets.UTF_8))) {
67+
StandardCharsets.UTF_8, classLoader))) {
6468
properties.load(stringReader);
6569
}
6670
for (final Map.Entry<Object, Object> entry : properties.entrySet()) {

hivemq-edge/src/main/java/com/hivemq/common/i18n/I18nHttpError.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ public enum I18nHttpError implements I18nError {
4141
HTTP_ERROR_507_TITLE,
4242
;
4343

44-
private static final @NotNull String RESOURCE_NAME_PREFIX = "/templates/http-errors-";
44+
private static final @NotNull String RESOURCE_NAME_PREFIX = "templates/http-errors-";
4545
private static final @NotNull String RESOURCE_NAME_SUFFIX = ".properties";
46-
private static final I18nErrorTemplate TEMPLATE =
47-
new I18nErrorTemplate(locale -> RESOURCE_NAME_PREFIX + locale + RESOURCE_NAME_SUFFIX);
46+
private static final @NotNull I18nErrorTemplate TEMPLATE =
47+
new I18nErrorTemplate(locale -> RESOURCE_NAME_PREFIX + locale + RESOURCE_NAME_SUFFIX,
48+
I18nHttpError.class.getClassLoader());
4849

4950
private final @NotNull String key;
5051

hivemq-edge/src/test/java/com/hivemq/common/i18n/I18nHttpErrorTest.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,7 @@
2424
import java.io.IOException;
2525
import java.io.StringReader;
2626
import java.nio.charset.StandardCharsets;
27-
import java.util.Arrays;
28-
import java.util.List;
29-
import java.util.Locale;
30-
import java.util.Map;
31-
import java.util.Properties;
32-
import java.util.Set;
27+
import java.util.*;
3328
import java.util.stream.Collectors;
3429

3530
import static org.assertj.core.api.Assertions.assertThat;
@@ -51,8 +46,9 @@ public void whenLocaleIsEnUS_thenErrorCountShouldMatch() throws IOException {
5146
assertThat(errors.size()).isGreaterThan(0);
5247
final Properties properties = new Properties();
5348
try (final StringReader stringReader = new StringReader(IOUtils.resourceToString(
54-
"/templates/http-errors-en_US.properties",
55-
StandardCharsets.UTF_8))) {
49+
"templates/http-errors-en_US.properties",
50+
StandardCharsets.UTF_8,
51+
I18nHttpError.class.getClassLoader()))) {
5652
properties.load(stringReader);
5753
}
5854
final Set<Object> propertyKeySet = properties.keySet();

0 commit comments

Comments
 (0)