From: <jbo...@li...> - 2005-11-22 19:50:34
|
Author: aron.gombas Date: 2005-11-22 14:50:23 -0500 (Tue, 22 Nov 2005) New Revision: 1623 Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java trunk/labs/kosmos/src/java/hu/midori/kosmos/server/jira/JiraServiceImpl.java trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java Log: Data list trimming added 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-22 19:26:00 UTC (rev 1622) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java 2005-11-22 19:50:23 UTC (rev 1623) @@ -9,6 +9,7 @@ import java.io.InputStream; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.ResourceBundle; @@ -29,7 +30,12 @@ */ public abstract class AbstractKosmosService implements ApplicationContextAware { private final static Log log = LogFactory.getLog(AbstractKosmosService.class); - + + /** + * Heavy lists will be trimmed to this size or set to -1 if you want to disable trimming. + * @see #trimList(List) + */ + private static final int MAX_RECORDS = 64; /** Cache timeout in milliseconds: a new request over this period will receive the cached result. */ private static final int CACHE_TIMEOUT = 10*60*1000; @@ -132,4 +138,15 @@ return ""; } } + + /** + * Trims long lists to some limited size to avoid large datasets that would result in + * huge network transfers and unuseable web pages. + */ + protected List trimList(List data) { + if((MAX_RECORDS != -1) && (data.size() > MAX_RECORDS)) + return data.subList(0, MAX_RECORDS); + + return data; + } } 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-22 19:26:00 UTC (rev 1622) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/jira/JiraServiceImpl.java 2005-11-22 19:50:23 UTC (rev 1623) @@ -256,12 +256,12 @@ out.reset(); ChartUtils.writeChartAsPng(ChartUtils.generateColorCodedPieChart(ChartUtils.collectionToPieDataset(openIssuesPerPriorityMap)), out); String openIssuesPerPriorityChartUrl = storeFile(prefix + "_open_issues_per_priority.png", new ByteArrayInputStream(out.toByteArray())); - + // save JiraProject project = new JiraProject(name, prefix, projectKey, projectUrl, description, lead, openIssues, codingInProgressIssues, reopenedIssues, resolvedIssues, closedIssues, blockerOpenIssues, criticalOpenIssues, majorOpenIssues, minorOpenIssues, trivialOpenIssues, optionalOpenIssues, - (List<Map.Entry<String, Integer>>)openIssuesPerAssignee, + (List<Map.Entry<String, Integer>>)trimList(openIssuesPerAssignee), issuesPerStatusChartUrl, openIssuesPerPriorityChartUrl, openIssuesPerAssigneeChartUrl); log.debug(String.format("Adding %s...", project)); projects.add(project); Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java 2005-11-22 19:26:00 UTC (rev 1622) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java 2005-11-22 19:50:23 UTC (rev 1623) @@ -113,12 +113,12 @@ // save previousLatestRevision = repo.getLatestRevision(); SvnRepository repository = new SvnRepository(ScrapingUtils.removeUserInfoFromUrl(repo.getLocation().toString()), repo.getLatestRevision(), - logStats.createdDate, logStats.commits, + logStats.createdDate, trimList(logStats.commits), logStats.commitsTotal, logStats.commitsToday, logStats.commitsLast7Days, logStats.commitsLast31Days, logStats.committersTotal.size(), logStats.committersToday.size(), logStats.committersLast7Days.size(), logStats.committersLast31Days.size(), logStats.commitsPerAuthorChartUrl, logStats.commitsPerFileChartUrl, logStats.commitsPerWeekChartUrl, logStats.repoEntriesPerWeekChartUrl, contentStats.dirs, contentStats.files, contentStats.totalSize, - (List<Map.Entry<String, Integer>>)logStats.commitsPerAuthor, (List<Map.Entry<String, Integer>>)logStats.commitsPerFile); + (List<Map.Entry<String, Integer>>)trimList(logStats.commitsPerAuthor), (List<Map.Entry<String, Integer>>)trimList(logStats.commitsPerFile)); log.debug(String.format("Adding %s...", repository)); repositories.add(repository); } catch (Exception ex) { |