...which is pretty good.  563K LOC, 5300 unused imports.  Here are the
details:

===========================================================
Module name                     Lines of code  Unused imports
-----------                             -------------  --------------
jakarta-ant                     46879          46
jakarta-avalon                  1885           2
jakarta-bcel                    16251          30
jakarta-cactus                  3166           1
jakarta-commons                 90015          562
jakarta-commons-sandbox         99216          1291
jakarta-ecs                     17285          84
jakarta-ecs2                    1414           12
jakarta-james                   11492          76
jakarta-jetspeed                32321          626
jakarta-jmeter                  23352          108
jakarta-log4j                   11968          46
jakarta-lucene                  5369           46
jakarta-ojb                     29835          165
jakarta-oro                     5919           3
jakarta-poi                     21821          66
jakarta-regexp                  1811           2
jakarta-struts                  15573          184
jakarta-taglibs                 37740          418
jakarta-tomcat-4.0              39514          890
jakarta-turbine-fulcrum         9244           139
jakarta-turbine-jcs             8303           88
jakarta-turbine-jyve            4304           99
jakarta-turbine-maven           3078           13
jakarta-turbine-torque          8360           1
jakarta-velocity                15620          322
jakarta-velocity-dvs            l914           21
===========================================================

Fun, huh?  This report took about 23 minutes to run, and was generated
by PMD, JavaNCSS, Ruby, and the letter 'A'.  Here's the Ruby script:

=======================================
#!/usr/local/bin/ruby

class AllModules
        attr_reader :mods
        def initialize
                @mods = []
                @mods << Mod.new("jakarta-ant", "src/main")     
                @mods << Mod.new("jakarta-avalon", "src/java")  
                @mods << Mod.new("jakarta-bcel", "src/java")    
                @mods << Mod.new("jakarta-cactus", "framework/src/java")

                @mods << Mod.new("jakarta-commons", "") 
                @mods << Mod.new("jakarta-commons-sandbox", "") 
                @mods << Mod.new("jakarta-ecs", "src/java")     
                @mods << Mod.new("jakarta-ecs2", "src") 
                @mods << Mod.new("jakarta-james", "src/java")   
                @mods << Mod.new("jakarta-jetspeed", "src/java")        
                @mods << Mod.new("jakarta-jmeter", "src")       
                @mods << Mod.new("jakarta-log4j", "src/java")   
                @mods << Mod.new("jakarta-lucene", "src/java")  
                @mods << Mod.new("jakarta-ojb", "src/java")     
                @mods << Mod.new("jakarta-oro", "src/java")     
                @mods << Mod.new("jakarta-poi", "src/java")     
                @mods << Mod.new("jakarta-regexp", "src/java")  
                @mods << Mod.new("jakarta-struts", "src/share") 
                @mods << Mod.new("jakarta-taglibs", "") 
                @mods << Mod.new("jakarta-tomcat-4.0",
"catalina/src/share")   
                @mods << Mod.new("jakarta-turbine-fulcrum", "src/java") 
                @mods << Mod.new("jakarta-turbine-jcs", "src/java")     
                @mods << Mod.new("jakarta-turbine-jyve", "src/java")    
                @mods << Mod.new("jakarta-turbine-maven", "src/java")   
                @mods << Mod.new("jakarta-turbine-torque", "src/java")  
                @mods << Mod.new("jakarta-velocity", "src/java")        
                @mods << Mod.new("jakarta-velocity-dvsl", "src/java")   
        end
end

class Mod
        attr_reader :modulename, :srcdir
        attr_accessor :ncss, :unusedimports
        def initialize(modulename, srcdir)
                @modulename = modulename
                @srcdir = "#{modulename}/#{srcdir}"
        end
        def to_s
                return "#{modulename}, #{srcdir}"
        end
end

if __FILE__ == $0
        jakartaroot=":pserver:[EMAIL PROTECTED]:/home/cvspublic"
        mods = AllModules.new.mods
        mods.each do |mod|
                puts "Working on #{mod.modulename}"
                puts "Checking it out"
                `cvs -Q -d#{jakartaroot} co #{mod.modulename}`
                puts "Running JavaNCSS"
                `find #{mod.srcdir} -name "*.java" > files.txt`
                mod.ncss = `/usr/local/javancss/bin/javancss -ncss
@files.txt`.split(" ")[2]
                puts "Running PMD"
                mod.unusedimports = `java -jar /home/build/pmd.jar
#{mod.srcdir} text rulesets/imports.xml | wc -l`.gsub(/ /, '')
                puts "Cleaning up"
                `rm -rf #{mod.modulename}`
        end
        puts "-------------------------------------------------"
        puts "Module name         Lines of code  Unused imports"
        mods.each do |mod|
                puts
"#{mod.modulename.ljust(20)}#{mod.ncss.to_s.ljust(15)}#{mod.unusedimport
s.to_s.ljust(5)}"
        end
end
=======================================

Tom Copeland
InfoEther
703-486-4543 


--
To unsubscribe, e-mail:   <mailto:general-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:general-help@;jakarta.apache.org>

Reply via email to