public void afterPropertiesSet() throws Exception { if (pluginCacheMillis == Long.MIN_VALUE) { pluginCacheMillis = cacheMillis; } if (pluginManager == null || localResourceLoader == null) { return; } for (GrailsPlugin plugin : pluginManager.getAllPlugins()) { for (Resource pluginBundle : getPluginBundles(plugin)) { // If the plugin is an inline plugin, use the abosolute path to the plugin's i18n files. // Otherwise, use the relative path to the plugin from the application's perspective. String basePath; if (isInlinePlugin(plugin)) { basePath = getInlinePluginPath(plugin); } else { basePath = WEB_INF_PLUGINS_PATH.substring(1) + plugin.getFileSystemName(); } final String baseName = GrailsStringUtils.substringBefore( GrailsStringUtils.getFileBasename(pluginBundle.getFilename()), "_"); String pathToAdd = basePath + GRAILS_APP_I18N_PATH_COMPONENT + baseName; if (!pluginBaseNames.contains(pathToAdd)) { pluginBaseNames.add(pathToAdd); } } } }
protected Resource findResourceInBinaryPlugins(PluginResourceInfo info) { if (pluginManager != null) { String fullPluginName = info.pluginName; for (GrailsPlugin plugin : pluginManager.getAllPlugins()) { if (plugin.getFileSystemName().equals(fullPluginName) && (plugin instanceof BinaryGrailsPlugin)) { return ((BinaryGrailsPlugin) plugin).getResource(info.uri); } } } return null; }
protected void mergeBinaryPluginProperties(final Locale locale, Properties mergedProps) { final GrailsPlugin[] allPlugins = pluginManager.getAllPlugins(); for (GrailsPlugin plugin : allPlugins) { if (plugin instanceof BinaryGrailsPlugin) { BinaryGrailsPlugin binaryPlugin = (BinaryGrailsPlugin) plugin; final Properties binaryPluginProperties = binaryPlugin.getProperties(locale); if (binaryPluginProperties != null) { mergedProps.putAll(binaryPluginProperties); } } } }