From: <jbo...@li...> - 2005-11-14 20:44:41
|
Author: unibrew Date: 2005-11-14 15:44:33 -0500 (Mon, 14 Nov 2005) New Revision: 1568 Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java Log: [JBLAB-263] DownloadCounters speed update. Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java 2005-11-14 11:23:53 UTC (rev 1567) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java 2005-11-14 20:44:33 UTC (rev 1568) @@ -127,7 +127,7 @@ * @param portalName * @return DownloadCountersDescriptor object. */ - public static synchronized DownloadCountersDescriptor getDesc(final String portalName) { + public static DownloadCountersDescriptor getDesc(final String portalName) { DownloadCountersDescriptor desc = (DownloadCountersDescriptor) ForgeHelper .getForgeManagement().getFromCache(portalName, DownloadCountersDescriptor.class.getName()); Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2005-11-14 11:23:53 UTC (rev 1567) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2005-11-14 20:44:33 UTC (rev 1568) @@ -181,7 +181,7 @@ * This Map<Strin,org.jboss.shotoku.Node> contains project ids with their download * counter descriptor's Node. */ - private synchronized void synchronizeCounters (Map<String,org.jboss.shotoku.Node> counters) { + private void synchronizeCounters (Map<String,org.jboss.shotoku.Node> counters) { // Iterating through projects nodes containing download counter descriptors. for (String projectId:counters.keySet()){ @@ -209,15 +209,9 @@ } } - // Removing links which shouldn't be tracked any more. - for (String link:linksToDelete) { - downloadCounters.remove(link); - } + removeLinksFromCounting(linksToDelete); - // Adding new download links for tracking. - for (String link:links) { - downloadCounters.put(link,new Counter(0,projectId)); - } + addLinksForCounting (links,projectId); } catch (Exception e) { System.out.println ("[DOWNLOADCOUNTER] Problem with opening project "+ @@ -233,6 +227,35 @@ } /** + * Method removes links specified in <code>linksToDelete</code> + * from tracking their downloads. + * + * @param linksToDelete + * List<String> of links which should be removed. + */ + private synchronized void removeLinksFromCounting (List<String> linksToDelete) { + // Removing links which shouldn't be tracked any more. + for (String link:linksToDelete) { + downloadCounters.remove(link); + } + } + + /** + * Method adds links which are wished to be tracked. + * + * @param links + * List<String> of links wished to be tracked + * @param projectId + * Project id name for which the links are added. + */ + private synchronized void addLinksForCounting (List<String> links,String projectId) { + // Adding new download links for tracking. + for (String link:links) { + downloadCounters.put(link,new Counter(0,projectId)); + } + } + + /** * This method returns a List<String> of links which * are now tracked for project given by <projectId> parameter. * @@ -240,7 +263,7 @@ * Id of a project for which the links will be searched. * @return List<String> Containing tracked links. */ - private List<String> getProjectLinks (String projectId) { + private synchronized List<String> getProjectLinks (String projectId) { List<String> links = new LinkedList<String>(); for (String link:downloadCounters.keySet()) { if (link.indexOf(File.separator+projectId+File.separator)!=-1) { @@ -347,7 +370,7 @@ * The id of a project for which occurence of the links will checked. * @return Bool value whether there is a link to this project tracked or not. */ - public boolean checkForProjectCounters(String projectId) { + public synchronized boolean checkForProjectCounters(String projectId) { for (String link:downloadCounters.keySet()) { if (link.indexOf(File.separator+projectId+File.separator)!=-1) { return true; |