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; } } |