Author: aron.gombas Date: 2005-11-20 10:20:04 -0500 (Sun, 20 Nov 2005) New Revision: 1606 Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java trunk/labs/kosmos/src/java/hu/midori/kosmos/server/cc/CcServiceImpl.java trunk/labs/kosmos/src/java/hu/midori/kosmos/server/jira/JiraServiceImpl.java trunk/labs/kosmos/web-portlet/WEB-INF/portlet.xml Log: Cached res bundle in the server Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java 2005-11-20 14:25:24 UTC (rev 1605) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java 2005-11-20 15:20:04 UTC (rev 1606) @@ -44,7 +44,10 @@ /** The timestamp when the cache was most recently updated. */ private Date timestamp; - /** Pluggable cached data store implementation. */ + /** Localized resources. */ + private ResourceBundle resources = null; + + /** Pluggable cached data store implementation. */ private CachedDataStore store; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { @@ -100,18 +103,20 @@ return value; } - /** TODO */ - protected String getResourcexxx(String baseName, String key) {// TODO rename - ResourceBundle res = null; - - // TODO lazy-init - if(res == null) { + /** + * Returns the localized string resource from the given resource bundle. + * For caching, it assumes that only one bundle is used per service. + * The locale is defined globally for the servlet, not as method parameter. + */ + protected String getResourceString(String baseName, String key) { + // lazy-init the bundle + if(resources == null) { String locale = ctx.getServletContext().getInitParameter("locale"); - log.info(" =======================================> locale: " + locale); - res = StringUtils.isBlank(locale) ? ResourceBundle.getBundle(baseName) : ResourceBundle.getBundle(baseName, new Locale(locale)); + log.info(String.format("Loading resources \"%s\" for locale \"%s\"...", baseName, locale)); + resources = StringUtils.isBlank(locale) ? ResourceBundle.getBundle(baseName) : ResourceBundle.getBundle(baseName, new Locale(locale)); } - return res.getString(key); + return resources.getString(key); } /** Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/cc/CcServiceImpl.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/cc/CcServiceImpl.java 2005-11-20 14:25:24 UTC (rev 1605) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/cc/CcServiceImpl.java 2005-11-20 15:20:04 UTC (rev 1606) @@ -134,11 +134,11 @@ List<Map.Entry<ColorCodedKey, Integer>> testsPerCategory = new ArrayList<Map.Entry<ColorCodedKey, Integer>>(); int success = tests - errors - failures; if(success > 0) - testsPerCategory.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.cc.cc_monitoring", "ccproject.testsSucceded"), CcConstants.SUCCESS_COLOR), success).entrySet()); + testsPerCategory.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.cc.cc_monitoring", "ccproject.testsSucceded"), CcConstants.SUCCESS_COLOR), success).entrySet()); if(failures > 0) - testsPerCategory.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.cc.cc_monitoring", "ccproject.failures"), CcConstants.FAILURE_COLOR), failures).entrySet()); + testsPerCategory.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.cc.cc_monitoring", "ccproject.failures"), CcConstants.FAILURE_COLOR), failures).entrySet()); if(errors > 0) - testsPerCategory.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.cc.cc_monitoring", "ccproject.errors"), CcConstants.ERROR_COLOR), errors).entrySet()); + testsPerCategory.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.cc.cc_monitoring", "ccproject.errors"), CcConstants.ERROR_COLOR), errors).entrySet()); ByteArrayOutputStream out = new ByteArrayOutputStream(); ChartUtils.writeChartAsPng(ChartUtils.generateColorCodedPieChart(ChartUtils.collectionToPieDataset(testsPerCategory)), out); Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/jira/JiraServiceImpl.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/jira/JiraServiceImpl.java 2005-11-20 14:25:24 UTC (rev 1605) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/jira/JiraServiceImpl.java 2005-11-20 15:20:04 UTC (rev 1606) @@ -224,15 +224,15 @@ // generate issues-per-status chart List<Map.Entry<ColorCodedKey, Integer>> issuesPerStatusMap = new ArrayList<Map.Entry<ColorCodedKey, Integer>>(); if(openIssues > 0) - issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.openIssues"), JiraConstants.OPEN_COLOR), openIssues).entrySet()); + issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.openIssues"), JiraConstants.OPEN_COLOR), openIssues).entrySet()); if(codingInProgressIssues > 0) - issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.codingInProgressIssues"), JiraConstants.CODING_IN_PROGRESS_COLOR), codingInProgressIssues).entrySet()); + issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.codingInProgressIssues"), JiraConstants.CODING_IN_PROGRESS_COLOR), codingInProgressIssues).entrySet()); if(reopenedIssues > 0) - issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.reopenedIssues"), JiraConstants.REOPENED_COLOR), reopenedIssues).entrySet()); + issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.reopenedIssues"), JiraConstants.REOPENED_COLOR), reopenedIssues).entrySet()); if(resolvedIssues > 0) - issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.resolvedIssues"), JiraConstants.RESOLVED_COLOR), resolvedIssues).entrySet()); + issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.resolvedIssues"), JiraConstants.RESOLVED_COLOR), resolvedIssues).entrySet()); if(closedIssues > 0) - issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.closedIssues"), JiraConstants.CLOSED_COLOR), closedIssues).entrySet()); + issuesPerStatusMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.closedIssues"), JiraConstants.CLOSED_COLOR), closedIssues).entrySet()); out.reset(); ChartUtils.writeChartAsPng(ChartUtils.generateColorCodedPieChart(ChartUtils.collectionToPieDataset(issuesPerStatusMap)), out); @@ -241,17 +241,17 @@ // generate issues-per-priority chart List<Map.Entry<ColorCodedKey, Integer>> openIssuesPerPriorityMap = new ArrayList<Map.Entry<ColorCodedKey, Integer>>(); if(blockerOpenIssues > 0) - openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.blockerOpenIssues"), JiraConstants.BLOCKER_COLOR), blockerOpenIssues).entrySet()); + openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.blockerOpenIssues"), JiraConstants.BLOCKER_COLOR), blockerOpenIssues).entrySet()); if(criticalOpenIssues > 0) - openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.criticalOpenIssues"), JiraConstants.CRITICAL_COLOR), criticalOpenIssues).entrySet()); + openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.criticalOpenIssues"), JiraConstants.CRITICAL_COLOR), criticalOpenIssues).entrySet()); if(majorOpenIssues > 0) - openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.majorOpenIssues"), JiraConstants.MAJOR_COLOR), majorOpenIssues).entrySet()); + openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.majorOpenIssues"), JiraConstants.MAJOR_COLOR), majorOpenIssues).entrySet()); if(minorOpenIssues > 0) - openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.minorOpenIssues"), JiraConstants.MINOR_COLOR), minorOpenIssues).entrySet()); + openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.minorOpenIssues"), JiraConstants.MINOR_COLOR), minorOpenIssues).entrySet()); if(trivialOpenIssues > 0) - openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.trivialOpenIssues"), JiraConstants.TRIVIAL_COLOR), trivialOpenIssues).entrySet()); + openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.trivialOpenIssues"), JiraConstants.TRIVIAL_COLOR), trivialOpenIssues).entrySet()); if(optionalOpenIssues > 0) - openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourcexxx("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.optionalOpenIssues"), JiraConstants.OPTIONAL_COLOR), optionalOpenIssues).entrySet()); + openIssuesPerPriorityMap.addAll(Collections.singletonMap(new ColorCodedKey(getResourceString("hu.midori.kosmos.server.jira.jira_monitoring", "jiraproject.optionalOpenIssues"), JiraConstants.OPTIONAL_COLOR), optionalOpenIssues).entrySet()); out.reset(); ChartUtils.writeChartAsPng(ChartUtils.generateColorCodedPieChart(ChartUtils.collectionToPieDataset(openIssuesPerPriorityMap)), out); Modified: trunk/labs/kosmos/web-portlet/WEB-INF/portlet.xml =================================================================== --- trunk/labs/kosmos/web-portlet/WEB-INF/portlet.xml 2005-11-20 14:25:24 UTC (rev 1605) +++ trunk/labs/kosmos/web-portlet/WEB-INF/portlet.xml 2005-11-20 15:20:04 UTC (rev 1606) @@ -41,7 +41,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.cc.ccmonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.cc.cc_monitoring</resource-bundle> <portlet-info> <title>CruiseControl Monitoring</title> </portlet-info> @@ -80,7 +80,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.jira.jiramonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.jira.jira_monitoring</resource-bundle> <portlet-info> <title>JIRA Monitoring</title> </portlet-info> @@ -122,7 +122,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.jira.jiramonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.jira.jira_monitoring</resource-bundle> <portlet-info> <title>JIRA Monitoring</title> </portlet-info> @@ -184,7 +184,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.jira.jiramonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.jira.jira_monitoring</resource-bundle> <portlet-info> <title>JIRA Monitoring</title> </portlet-info> @@ -219,7 +219,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.sf.sfmonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.sf.sf_monitoring</resource-bundle> <portlet-info> <title>SourceForge Monitoring</title> </portlet-info> @@ -249,7 +249,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.sf.sfmonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.sf.sf_monitoring</resource-bundle> <portlet-info> <title>SourceForge Monitoring</title> </portlet-info> @@ -280,7 +280,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.sf.sfmonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.sf.sf_monitoring</resource-bundle> <portlet-info> <title>SourceForge Monitoring</title> </portlet-info> @@ -316,7 +316,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.svn.svnmonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.svn.svn_monitoring</resource-bundle> <portlet-info> <title>Subversion Monitoring</title> </portlet-info> @@ -349,7 +349,7 @@ </supports> <supported-locale>en</supported-locale> <supported-locale>hu</supported-locale> - <resource-bundle>hu.midori.kosmos.portlet.svn.svnmonitoringportlet</resource-bundle> + <resource-bundle>hu.midori.kosmos.portlet.svn.svn_monitoring</resource-bundle> <portlet-info> <title>Subversion Monitoring</title> </portlet-info> |