@Override public ResourceBundle findBundle(String baseName, Locale locale, ClassLoader loader) { baseName = normalizeBasename(baseName); BundleSupport support = moduleBundlesMap.get(baseName); if (support != null) { // classloaders and bundle controls dont work for named modules --> fallback to bundle support return getBundle(support, locale); } else { ResourceBundle.Control control = getControl(baseName); return control == null ? ResourceBundle.getBundle(baseName, locale, loader) : ResourceBundle.getBundle(baseName, locale, loader, control); } }
@Override public void clearCache() { super.clearCache(); bundleMap.clear(); }
/** * Creates the bundle factory. */ public DefaultBundleFactory() { providers = createProviders(); controlMap = new ConcurrentHashMap<>(); moduleBundlesMap = new HashMap<>(); for (BundleSupport support : BundleSupport.getBundles(getClass().getClassLoader())) { if (support.getModuleInfo() != null) { moduleBundlesMap.put(support.getBundleName(), support); moduleBundlesMap.put(support.getClassName(), support); } } }
@Override public ResourceBundle findBundle(String baseName, Locale locale) { baseName = normalizeBasename(baseName); BundleSupport support = moduleBundlesMap.get(baseName); if (support != null) { // classloaders and bundle controls dont work for named modules --> fallback to bundle support return getBundle(support, locale); } else { ResourceBundle.Control control = getControl(baseName); if (classLoader == null) { return control == null ? ResourceBundle.getBundle(baseName, locale) : ResourceBundle.getBundle(baseName, locale, control); } return control == null ? ResourceBundle.getBundle(baseName, locale, classLoader) : ResourceBundle.getBundle(baseName, locale, classLoader, control); } }