|
From: <jbo...@li...> - 2006-06-29 16:34:40
|
Author: wrzep
Date: 2006-06-29 12:34:35 -0400 (Thu, 29 Jun 2006)
New Revision: 4871
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/CodeLinesTotalPlugin.java
Log:
JBLAB-599
computing # of code lines - attempts to improve performance
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-06-29 15:12:07 UTC (rev 4870)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesEvaluator.java 2006-06-29 16:34:35 UTC (rev 4871)
@@ -69,6 +69,38 @@
return (repository != null) ? getCodeLinesNumber(repository, "") : 0;
}
+
+ /**
+ * Evaluates number of code lines in files located in secure SVN repository.
+ *
+ * @param url SVN repository adress
+ * @param userName user's name used in authorisation
+ * @param password user's password used in authorisation
+ * @return number of code lines
+ */
+ public static long getCodeLinesNumberFast(String url, String userName,
+ String password) {
+
+ SVNRepository repository = getRepository(url, userName, password);
+
+ if (repository == null ) {
+ return 0;
+ }
+
+ SVNRevision fromRev = SVNRevision.create(0);
+ //TODO Here we should know
+ // first revision for given url.
+ // 0 doest NOT stand for it :(
+ long ret = 0;
+
+ try {
+ ret = getAddedCodeLines(repository, "", fromRev, SVNRevision.HEAD);
+ } catch (SVNException e) {
+ e.printStackTrace();
+ }
+
+ return ret;
+ }
/**
* Evaluates number of code lines in files located in anonymus SVN repository.
@@ -81,6 +113,16 @@
}
/**
+ * Evaluates number of code lines in files located in anonymus SVN repository.
+ *
+ * @param url SVN repository adress
+ * @return number of code lines
+ */
+ public static long getCodeLinesNumberFast(String url) {
+ return getCodeLinesNumberFast(url, "anonymus", "anonymus");
+ }
+
+ /**
* Evaluates number of code lines added to recently repository
* within specified number of days.
*
@@ -245,7 +287,7 @@
* @param repository SVN repository adress
* @param path path to SVN directory
* @param days
- * @return number of code lines added last 7 days
+ * @return number of added code lines
*/
private static long getAddedCodeLines(SVNRepository repository,
String path, int days) {
@@ -256,8 +298,16 @@
SVNRevision fromRev = SVNRevision.create(prevDate);
- return getAddedCodeLines(repository, path,
- fromRev, SVNRevision.HEAD);
+ long ret = 0;
+
+ try {
+ ret = getAddedCodeLines(repository, path,
+ fromRev, SVNRevision.HEAD);
+ } catch (SVNException e) {
+ e.printStackTrace();
+ }
+
+ return ret;
}
/**
@@ -270,35 +320,32 @@
* @param fromRev
* @param toRev
* @return number of added code lines
+ * @throws SVNException
*/
private static long getAddedCodeLines(SVNRepository repository,
String path, SVNRevision fromRev,
- SVNRevision toRev) {
+ SVNRevision toRev)
+ throws SVNException {
long cl = 0;
-
- try {
- OutputStream baos = new ByteArrayOutputStream();
+ OutputStream baos = new ByteArrayOutputStream();
- ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager();
+ ISVNAuthenticationManager authManager =
+ SVNWCUtil.createDefaultAuthenticationManager();
- SVNDiffClient diffClient = new SVNDiffClient(authManager,null);
+ SVNDiffClient diffClient = new SVNDiffClient(authManager,null);
- diffClient.doDiff(repository.getLocation(),
- SVNRevision.HEAD,
- fromRev,
- toRev,
- true,
- true,
- baos);
+ diffClient.doDiff(repository.getLocation(),
+ SVNRevision.HEAD,
+ fromRev,
+ toRev,
+ true,
+ true,
+ baos);
- String diffString = baos.toString();
+ String diffString = baos.toString();
- cl = getAddedLinesNumber(diffString);
-
- } catch (SVNException e) {
- e.printStackTrace();
- }
+ cl = getAddedLinesNumber(diffString);
return cl;
}
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-06-29 15:12:07 UTC (rev 4870)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/codelines/CodeLinesTotalPlugin.java 2006-06-29 16:34:35 UTC (rev 4871)
@@ -36,7 +36,12 @@
return CodeLinesEvaluator.getCodeLinesNumber(url, userName, password);
}
- return CodeLinesEvaluator.getCodeLinesNumber(url);
+ long ret = CodeLinesEvaluator.getCodeLinesNumber(url);
+
+ //long ret0 = CodeLinesEvaluator.getCodeLinesNumberFast(url);
+ //System.out.println("clt: " + ret + " " + ret0);
+
+ return ret;
}
}
|