Author: gertv
Date: Wed Apr 6 09:16:20 2011
New Revision: 1089368
URL: http://svn.apache.org/viewvc?rev=1089368&view=rev
Log:
Keeping the script around for future reference/use - thanks to Joris
Schoolmeesters for sharing it
Added:
servicemix/scripts/find_unused_properties.rb
Added: servicemix/scripts/find_unused_properties.rb
URL:
http://svn.apache.org/viewvc/servicemix/scripts/find_unused_properties.rb?rev=1089368&view=auto
==============================================================================
--- servicemix/scripts/find_unused_properties.rb (added)
+++ servicemix/scripts/find_unused_properties.rb Wed Apr 6 09:16:20 2011
@@ -0,0 +1,94 @@
+#!/usr/bin/ruby
+
+=begin
+========================================================================
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+========================================================================
+=end
+
+
+require 'rexml/document'
+include REXML
+
+file = File.new(ARGV[0])
+dir = File.dirname(File.expand_path(ARGV[0]))
+puts dir
+
+doc = Document.new file
+
+properties = Array.new
+
+puts
'-----------------------------------------------------------------------------BEGIN
SCANNING PARENT
POM-----------------------------------------------------------------------'
+doc.root.each_element('/project/properties/*') {|version| properties <<
version.name}
+
+#omit these properties
+properties.delete('sonar.skippedModules')
+
+properties.each {|e| puts e}
+
+dependencies = Hash.new
+
+doc.root.each_element('//dependencies/dependency') {|dependency|
+ artifact = dependency.text("artifactId")
+ group = dependency.text("groupId")
+ dependencies["#{group}/#{artifact}"] =
dependency.text("version")[2..-2]
+}
+
+#dependencies.each {|x,y| puts "#{x} -> #{y}" }
+
+puts
'-----------------------------------------------------------------------------BEGIN
SCANNING RECURSIVE
POMS-----------------------------------------------------------------------'
+Dir.chdir(dir)
+
+Dir.glob("**/pom.xml") {|pom|
+
+ next if pom =~ /target/
+
+ File.open("#{dir}/#{pom}").each { |line|
+ line.sub(/\$\{.*\}/) { |found|
+ properties.delete(found[2..-2])
+ }
+ }
+
+#properties.each { |element| puts "... still looking for #{element}" }
+
+ doc = Document.new File.new(pom)
+ doc.root.each_element('//dependencies/dependency') {|dep|
+ artifact = dep.text("artifactId")
+ group = dep.text("groupId")
+ description = artifact + "/" + group
+
+ if (dependencies.has_key?(description))
+ properties.delete(dependencies[description])
+ end
+ }
+
+}
+#properties.each { |element| puts "... still looking for #{element}" }
+
+puts
'-----------------------------------------------------------------------------BEGIN
SCANNING SOURCE
FILES-----------------------------------------------------------------------'
+Dir.glob("**/src/**/*.*") {|sourcefile|
+ next if sourcefile =~ /target/
+
+ File.open("#{dir}/#{sourcefile}").each { |line|
+ line.sub(/\$\{.*\}/) { |found|
+ properties.delete(found[2..-2])
+ }
+ }
+}
+properties.each { |element| puts "... still looking for #{element}" }
+