- From d2e1f79bf845bf7633ce4b82d9cf840e5d76cc94 Mon Sep 17 00:00:00 2001
- From: unknown <karlsnic@.fi.dom>
- Date: Fri, 4 Nov 2011 13:54:36 +0200
- Subject: [PATCH] bundle loader
- ---
- .../international/status/ApplicationBundles.java | 21 ++++++++++++++-----
- .../seam/international/status/BundleLoader.java | 9 ++++++++
- 2 files changed, 24 insertions(+), 6 deletions(-)
- create mode 100644 api/src/main/java/org/jboss/seam/international/status/BundleLoader.java
- diff --git a/api/src/main/java/org/jboss/seam/international/status/ApplicationBundles.java b/api/src/main/java/org/jboss/seam/international/status/ApplicationBundles.java
- index 59048ab..0b32c63 100644
- --- a/api/src/main/java/org/jboss/seam/international/status/ApplicationBundles.java
- +++ b/api/src/main/java/org/jboss/seam/international/status/ApplicationBundles.java
- @@ -25,6 +25,7 @@ import java.util.Set;
- import java.util.concurrent.ConcurrentHashMap;
- import javax.enterprise.context.ApplicationScoped;
- +import javax.enterprise.inject.Instance;
- import javax.inject.Inject;
- /**
- @@ -43,6 +44,9 @@ public class ApplicationBundles implements Serializable {
- @Inject
- Locale appLocale;
- + @Inject
- + Instance<BundleLoader> bundleLoader;
- +
- public ApplicationBundles() {
- }
- @@ -71,12 +75,17 @@ public class ApplicationBundles implements Serializable {
- }
- public ResourceBundle get(final Locale locale, final Object key) {
- - containsLocaleMap(locale);
- - if (!bundles.get(locale).containsKey(key)) {
- - ResourceBundle bundle = ResourceBundle.getBundle(key.toString(), locale);
- - put(locale, key.toString(), bundle);
- - }
- - return bundles.get(locale).get(key);
- + containsLocaleMap(locale);
- + if (!bundles.get(locale).containsKey(key)) {
- + ResourceBundle bundle = null;
- + if (bundleLoader.isUnsatisfied()) {
- + bundle = ResourceBundle.getBundle(key.toString(), locale);
- + } else {
- + bundle = bundleLoader.get().loadBundle(locale, key.toString());
- + }
- + put(locale, key.toString(), bundle);
- + }
- + return bundles.get(locale).get(key);
- }
- public boolean isEmpty(final Locale locale) {
- diff --git a/api/src/main/java/org/jboss/seam/international/status/BundleLoader.java b/api/src/main/java/org/jboss/seam/international/status/BundleLoader.java
- new file mode 100644
- index 0000000..c3c5461
- --- /dev/null
- +++ b/api/src/main/java/org/jboss/seam/international/status/BundleLoader.java
- @@ -0,0 +1,9 @@
- +package org.jboss.seam.international.status;
- +
- +import java.util.Locale;
- +import java.util.ResourceBundle;
- +
- +public interface BundleLoader
- +{
- + public ResourceBundle loadBundle(Locale locale, String key);
- +}
- --
- 1.7.0.2.msysgit.0