Re: Unused imports compose only about 1% of the Jakarta source code....

2002-11-07 Thread Vladimir R. Bossicard
...which is pretty good.  563K LOC, 5300 unused imports.  Here are the
details:


Since every other tool (Eclipse, IntelliJ) can fix this automatically 
(and within minutes) I think that the 0,01% an be easily achievable.

Since some people use this metric to judge the quality of a code (you 
can argue if it makes sense or not) it's time to invest some time to 
automatically fix this!

-Vladimir

--
Vladimir R. Bossicard
www.bossicard.com


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 



Unused imports compose only about 1% of the Jakarta source code....

2002-11-07 Thread Tom Copeland
...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-bcel16251  30
jakarta-cactus  3166   1
jakarta-commons 90015  562
jakarta-commons-sandbox 99216  1291
jakarta-ecs 17285  84
jakarta-ecs21414   12
jakarta-james   11492  76
jakarta-jetspeed32321  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-jyve4304   99
jakarta-turbine-maven   3078   13
jakarta-turbine-torque  8360   1
jakarta-velocity15620  322
jakarta-velocity-dvsl914   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