[jboss-svn-commits] JBL Code SVN: r6032 - labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 30 14:54:10 EDT 2006
Author: wrzep
Date: 2006-08-30 14:54:05 -0400 (Wed, 30 Aug 2006)
New Revision: 6032
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesEvaluator.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesPlugin.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesTotalPlugin.java
Log:
JBLAB-751 (Improve performance of CodeLinesPlugin)
Finding revision that is the oldest valid revision - rough
implementation.
-Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesEvaluator.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesEvaluator.java 2006-08-30 18:35:16 UTC (rev 6031)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesEvaluator.java 2006-08-30 18:54:05 UTC (rev 6032)
@@ -27,6 +27,7 @@
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
+import java.util.HashSet;
import java.util.Map;
import java.util.HashMap;
@@ -87,10 +88,8 @@
return 0;
}
- SVNRevision fromRev = SVNRevision.create(0);
- //TODO Here we should know
- // first revision for given url.
- // 0 doest NOT stand for it :(
+ SVNRevision fromRev = getFirstRevision(repository);
+
long ret = 0;
try {
@@ -102,6 +101,48 @@
return ret;
}
+ private static SVNRevision getFirstRevision(SVNRepository repository) {
+
+ long left = 0;
+ long right;
+
+ try {
+ right = repository.getLatestRevision();
+ } catch (SVNException e1) {
+ e1.printStackTrace();
+ return null;
+ }
+ long mid;
+
+ while (left <= right) {
+
+ System.out.println("l: " + left + " r: " + right);
+
+ mid = Math.round(Math.floor((left+right)/2));
+
+ if (isValidRevision(repository, mid)) {
+ right = mid - 1;
+ } else {
+ left = mid;
+ }
+ }
+
+ return SVNRevision.create(left);
+ }
+
+ private static boolean isValidRevision(SVNRepository repository,
+ long rev) {
+
+ try {
+ repository.getDir(".", rev, false, new HashSet());
+ } catch (SVNException e) {
+ System.out.println(rev + " is NOT valid revision (" + e.getMessage() + ")");
+ return false;
+ }
+
+ return true;
+ }
+
/**
* Evaluates number of code lines in files located in anonymus SVN repository.
*
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesPlugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesPlugin.java 2006-08-30 18:35:16 UTC (rev 6031)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesPlugin.java 2006-08-30 18:54:05 UTC (rev 6032)
@@ -57,6 +57,8 @@
@Override
public long getValue(String projectId) {
+ projectId = "shotoku"; //DBG
+
if (!cachedValues.containsKey(projectId)) {
long cl = 0;
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesTotalPlugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesTotalPlugin.java 2006-08-30 18:35:16 UTC (rev 6031)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesTotalPlugin.java 2006-08-30 18:54:05 UTC (rev 6032)
@@ -36,12 +36,12 @@
return CodeLinesEvaluator.getCodeLinesNumber(url, userName, password);
}
- long ret = CodeLinesEvaluator.getCodeLinesNumber(url);
+ //long ret = CodeLinesEvaluator.getCodeLinesNumber(url);
- //long ret0 = CodeLinesEvaluator.getCodeLinesNumberFast(url);
- //System.out.println("clt: " + ret + " " + ret0);
+ long ret0 = CodeLinesEvaluator.getCodeLinesNumberFast(url);
+ System.out.println("CodeLinesTotal (URL: " + url + ")" + ": " + ret0);
- return ret;
+ return ret0;
}
}
More information about the jboss-svn-commits
mailing list