javaclass 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Rakefile +188 -194
- data/Readme.txt +33 -29
- data/examples/generate_class_lists.rb +16 -9
- data/history.txt +15 -4
- data/javaclass.gemspec +10 -8
- data/lib/generated/examples/chart_class_dependencies.txt +35 -0
- data/lib/generated/examples/chart_module_dependencies.txt +43 -0
- data/lib/generated/examples/check_interface_names.txt +36 -0
- data/lib/generated/examples/count_classes_in_modules.txt +31 -0
- data/lib/generated/examples/cumulative_dependencies.txt +28 -0
- data/lib/generated/examples/find_all_imported_types.txt +38 -0
- data/lib/generated/examples/find_incoming_dependency_graph.txt +73 -0
- data/lib/generated/examples/find_layers_of_modules.txt +70 -0
- data/lib/generated/examples/find_referenced_modules.txt +41 -0
- data/lib/generated/examples/find_unreferenced_classes.txt +66 -0
- data/lib/generated/examples/generate_class_lists.txt +53 -0
- data/lib/generated/examples/show_jar_api.txt +64 -0
- data/lib/generated/examples/simple_usage.txt +38 -0
- data/lib/javaclass/classfile/access_flag_constants.rb +32 -5
- data/lib/javaclass/classfile/access_flags.rb +39 -20
- data/lib/javaclass/classfile/attributes/attributes.rb +134 -0
- data/lib/javaclass/classfile/class_access_flags.rb +37 -0
- data/lib/javaclass/classfile/class_file_attributes.rb +62 -0
- data/lib/javaclass/classfile/class_version.rb +0 -1
- data/lib/javaclass/classfile/constant_pool.rb +17 -11
- data/lib/javaclass/classfile/constants/single_reference.rb +53 -0
- data/lib/javaclass/classfile/fields.rb +37 -0
- data/lib/javaclass/classfile/java_class_header.rb +22 -13
- data/lib/javaclass/classfile/java_class_header_shortcuts.rb +6 -2
- data/lib/javaclass/classfile/methods.rb +37 -0
- data/lib/javaclass/classlist/jar_searcher.rb +38 -4
- data/lib/javaclass/classpath/temporary_unpacker.rb +1 -1
- data/lib/javaclass/string_hexdump.rb +1 -1
- data/license.txt +7 -7
- data/test/data/access_flags/{AccessFlagsTestInner$1.class → AccessFlagsTestAnonym$1.class} +0 -0
- data/test/data/access_flags/{AccessFlagsTestInner.class → AccessFlagsTestAnonym.class} +0 -0
- data/test/data/access_flags/AccessFlagsTestAnonym.java +9 -0
- data/test/data/access_flags/AccessFlagsTestPublic_javap.txt +1 -0
- data/test/data/constant_pool/Java8_JavaFX_Animation$1_Tag15.class +0 -0
- data/test/data/constant_pool/Java9_Activation_module-info_Tag20.class +0 -0
- data/test/data/jar_searcher/JarClassListTest.jar +0 -0
- data/test/data/jar_searcher/PublicClass.java +44 -1
- data/test/data/jar_searcher/make.bat +1 -2
- data/test/{test_access_flags.rb → test_class_access_flags.rb} +91 -93
- data/test/test_class_file_attributes.rb +57 -0
- data/test/test_constant_pool.rb +31 -0
- data/test/test_jar_searcher.rb +40 -7
- data/test/test_javaclass_api.rb +2 -2
- data/test/test_string_hexdump.rb +4 -1
- data/test/ts_all_tests.rb +4 -2
- metadata +100 -116
- data/test/data/access_flags/AccessFlagsTestInner$2.class +0 -0
- data/test/data/access_flags/AccessFlagsTestInner.java +0 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1d2365f0669ad709753366f66070bd05668c73becda0c878e94d346337d1a3cb
|
4
|
+
data.tar.gz: 3157e8329a20c00a28e14f9c23c7b21e07984aef67ff83cbc8e0b6cff5ea1cae
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f0879048da8004e427b7d8d48125f13a041059e8e3ae537ab4a72b2a48b9ca012880ddfbe427d49d32c9dd5d205448e8f36d461a1194c17c9b3d6dbc4e094201
|
7
|
+
data.tar.gz: 548019c98321c52573b6c239b456c7a9fb048f2a3900ca6d5987a494d5568aeffc22923783b656a821092d05292f5bd7f6ec1b98620ff374b9244c4f1c8a08ed
|
data/Rakefile
CHANGED
@@ -1,194 +1,188 @@
|
|
1
|
-
require 'net/http'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'rubygems/gem_runner' # install and uninstall
|
4
|
-
require 'rubygems/package_task'
|
5
|
-
require 'rake'
|
6
|
-
require 'rake/clean' # for clean/clobber
|
7
|
-
require 'rake/testtask'
|
8
|
-
require 'rake/packagetask'
|
9
|
-
require File.dirname(__FILE__) + '/dev/example_task'
|
10
|
-
|
11
|
-
# Test, package and publish functions.
|
12
|
-
# Author:: Peter Kofler
|
13
|
-
# See:: http://rake.rubyforge.org/files/doc/rakefile_rdoc.html
|
14
|
-
# Acknowledgement:: Building this Rake file was supported as System One Research Day. Thank you System One for funding Open Source :-)
|
15
|
-
|
16
|
-
RDOC_DIR = 'html'
|
17
|
-
RDOC_REPO = 'api'
|
18
|
-
|
19
|
-
gemspec = eval(IO.readlines('javaclass.gemspec').join)
|
20
|
-
full_gem_name = "#{gemspec.name}-#{gemspec.version}"
|
21
|
-
|
22
|
-
desc 'Validates the gemspec'
|
23
|
-
task :validate_gem do
|
24
|
-
gemspec.validate
|
25
|
-
end
|
26
|
-
|
27
|
-
desc 'Displays the current version'
|
28
|
-
task :version do
|
29
|
-
puts gemspec.version
|
30
|
-
end
|
31
|
-
|
32
|
-
# :test
|
33
|
-
Rake::TestTask.new do |t|
|
34
|
-
t.test_files = gemspec.test_files
|
35
|
-
t.warning = true
|
36
|
-
# t.verbose = false is default
|
37
|
-
end
|
38
|
-
|
39
|
-
begin
|
40
|
-
require 'rcov/rcovtask'
|
41
|
-
|
42
|
-
# :rcov
|
43
|
-
Rcov::RcovTask.new do |t|
|
44
|
-
t.test_files = gemspec.test_files
|
45
|
-
t.warning = true
|
46
|
-
t.rcov_opts << "--sort=coverage"
|
47
|
-
t.rcov_opts << "--only-uncovered"
|
48
|
-
end
|
49
|
-
|
50
|
-
rescue LoadError
|
51
|
-
# skip if not installed
|
52
|
-
warn("rcov not installed. coverage not available. #{$!}")
|
53
|
-
end
|
54
|
-
|
55
|
-
desc 'Find missing test methods with ZenTest'
|
56
|
-
task :zentest do
|
57
|
-
files = gemspec.files.find_all { |f| f =~ /^#{gemspec.require_path}.*\.rb$/ } + gemspec.test_files
|
58
|
-
output = `ruby -I#{gemspec.require_path} -e "require 'rubygems'; load(Gem.bin_path('ZenTest', 'zentest'))" #{files.join(' ')}`
|
59
|
-
puts output.gsub(/^#.*\n/, '') # skip all ZenTest comments
|
60
|
-
end
|
61
|
-
|
62
|
-
# :gem
|
63
|
-
Gem::PackageTask.new(gemspec) do |pkg|
|
64
|
-
pkg.need_zip = true
|
65
|
-
end
|
66
|
-
|
67
|
-
# :package, :clobber_package, :repackage
|
68
|
-
Rake::PackageTask.new(gemspec.name, gemspec.version) do |pkg|
|
69
|
-
#pkg.need_tar = true - no compress in tar on unxutils in Windows
|
70
|
-
#pkg.need_tar_gz = true - no compress in tar on unxutils in Windows
|
71
|
-
pkg.need_zip = true
|
72
|
-
pkg.package_files.include gemspec.files
|
73
|
-
end
|
74
|
-
|
75
|
-
desc 'Install the gem locally'
|
76
|
-
task :install_gem => :package do
|
77
|
-
Gem::GemRunner.new.run ['install', "pkg/#{full_gem_name}"]
|
78
|
-
end
|
79
|
-
|
80
|
-
desc 'Uninstall the gem'
|
81
|
-
task :uninstall_gem do
|
82
|
-
Gem::GemRunner.new.run ['uninstall', gemspec.name]
|
83
|
-
end
|
84
|
-
|
85
|
-
# Helper method to execute
|
86
|
-
# The +
|
87
|
-
def
|
88
|
-
puts `
|
89
|
-
end
|
90
|
-
|
91
|
-
desc 'Tag current version in
|
92
|
-
task :tag do
|
93
|
-
|
94
|
-
#
|
95
|
-
puts 'Tag created. Don\'t forget to push'
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
task :
|
113
|
-
task :
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
rdoc.
|
127
|
-
rdoc.
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
rdoc.rdoc_files.include(*
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
#
|
179
|
-
file
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
end
|
190
|
-
|
191
|
-
# :clean :clobber
|
192
|
-
CLOBBER.include(RDOC_REPO, 'ClassLists', 'fullClassList*.txt')
|
193
|
-
|
194
|
-
task :default => :test
|
1
|
+
require 'net/http'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rubygems/gem_runner' # install and uninstall
|
4
|
+
require 'rubygems/package_task'
|
5
|
+
require 'rake'
|
6
|
+
require 'rake/clean' # for clean/clobber
|
7
|
+
require 'rake/testtask'
|
8
|
+
require 'rake/packagetask'
|
9
|
+
require File.dirname(__FILE__) + '/dev/example_task'
|
10
|
+
|
11
|
+
# Test, package and publish functions.
|
12
|
+
# Author:: Peter Kofler
|
13
|
+
# See:: http://rake.rubyforge.org/files/doc/rakefile_rdoc.html
|
14
|
+
# Acknowledgement:: Building this Rake file was supported as System One Research Day. Thank you System One for funding Open Source :-)
|
15
|
+
|
16
|
+
RDOC_DIR = 'html'
|
17
|
+
RDOC_REPO = 'api'
|
18
|
+
|
19
|
+
gemspec = eval(IO.readlines('javaclass.gemspec').join)
|
20
|
+
full_gem_name = "#{gemspec.name}-#{gemspec.version}"
|
21
|
+
|
22
|
+
desc 'Validates the gemspec'
|
23
|
+
task :validate_gem do
|
24
|
+
gemspec.validate
|
25
|
+
end
|
26
|
+
|
27
|
+
desc 'Displays the current version'
|
28
|
+
task :version do
|
29
|
+
puts gemspec.version
|
30
|
+
end
|
31
|
+
|
32
|
+
# :test
|
33
|
+
Rake::TestTask.new do |t|
|
34
|
+
t.test_files = gemspec.test_files
|
35
|
+
t.warning = true
|
36
|
+
# t.verbose = false is default
|
37
|
+
end
|
38
|
+
|
39
|
+
begin
|
40
|
+
require 'rcov/rcovtask'
|
41
|
+
|
42
|
+
# :rcov
|
43
|
+
Rcov::RcovTask.new do |t|
|
44
|
+
t.test_files = gemspec.test_files
|
45
|
+
t.warning = true
|
46
|
+
t.rcov_opts << "--sort=coverage"
|
47
|
+
t.rcov_opts << "--only-uncovered"
|
48
|
+
end
|
49
|
+
|
50
|
+
rescue LoadError
|
51
|
+
# skip if not installed
|
52
|
+
# warn("rcov not installed. coverage not available. #{$!}")
|
53
|
+
end
|
54
|
+
|
55
|
+
desc 'Find missing test methods with ZenTest'
|
56
|
+
task :zentest do
|
57
|
+
files = gemspec.files.find_all { |f| f =~ /^#{gemspec.require_path}.*\.rb$/ } + gemspec.test_files
|
58
|
+
output = `ruby -I#{gemspec.require_path} -e "require 'rubygems'; load(Gem.bin_path('ZenTest', 'zentest'))" #{files.join(' ')}`
|
59
|
+
puts output.gsub(/^#.*\n/, '') # skip all ZenTest comments
|
60
|
+
end
|
61
|
+
|
62
|
+
# :gem
|
63
|
+
Gem::PackageTask.new(gemspec) do |pkg|
|
64
|
+
pkg.need_zip = true
|
65
|
+
end
|
66
|
+
|
67
|
+
# :package, :clobber_package, :repackage
|
68
|
+
Rake::PackageTask.new(gemspec.name, gemspec.version) do |pkg|
|
69
|
+
#pkg.need_tar = true - no compress in tar on unxutils in Windows
|
70
|
+
#pkg.need_tar_gz = true - no compress in tar on unxutils in Windows
|
71
|
+
pkg.need_zip = true
|
72
|
+
pkg.package_files.include gemspec.files
|
73
|
+
end
|
74
|
+
|
75
|
+
desc 'Install the gem locally'
|
76
|
+
task :install_gem => :package do
|
77
|
+
Gem::GemRunner.new.run ['install', "pkg/#{full_gem_name}"]
|
78
|
+
end
|
79
|
+
|
80
|
+
desc 'Uninstall the gem'
|
81
|
+
task :uninstall_gem do
|
82
|
+
Gem::GemRunner.new.run ['uninstall', gemspec.name]
|
83
|
+
end
|
84
|
+
|
85
|
+
# Helper method to execute Git with the _params_ array.
|
86
|
+
# The +git+ executable must be in the path.
|
87
|
+
def git(params)
|
88
|
+
puts `git #{params.join(' ')}`
|
89
|
+
end
|
90
|
+
|
91
|
+
desc 'Tag current version in Git'
|
92
|
+
task :tag do
|
93
|
+
git ['tag', "#{full_gem_name}"]
|
94
|
+
# git ['push']
|
95
|
+
puts 'Tag created. Don\'t forget to push'
|
96
|
+
end
|
97
|
+
|
98
|
+
# internal - desc 'Release the gem to Rubygems'
|
99
|
+
task :release_rubygems => :package do
|
100
|
+
puts "Releasing #{full_gem_name} to Rubygems"
|
101
|
+
Gem::GemRunner.new.run ['push', "pkg/#{full_gem_name}.gem"]
|
102
|
+
end
|
103
|
+
|
104
|
+
desc 'Package and upload gem to Rubygems'
|
105
|
+
task :publish_gem => [:clobber_package, :example, :package, :release_rubygems]
|
106
|
+
|
107
|
+
# :example, :clobber_example, :reexample
|
108
|
+
example_task_lib = Rake::ExampleTask.new do |example|
|
109
|
+
example.example_files.include 'examples/**/*.rb'
|
110
|
+
end
|
111
|
+
task :clobber_rdoc => [:clobber_example]
|
112
|
+
task :rdoc => [:example]
|
113
|
+
task :package => [:example]
|
114
|
+
|
115
|
+
begin
|
116
|
+
require 'rdoc/task'
|
117
|
+
SomeRDocTask = RDoc::Task
|
118
|
+
rescue LoadError
|
119
|
+
require 'rake/rdoctask'
|
120
|
+
SomeRDocTask = Rake::RDocTask
|
121
|
+
end
|
122
|
+
|
123
|
+
# :rdoc, :clobber_rdoc, :rerdoc
|
124
|
+
SomeRDocTask.new do |rdoc|
|
125
|
+
rdoc.rdoc_dir = RDOC_DIR # 'html' is default anyway
|
126
|
+
rdoc.title = "#{full_gem_name} Documentation"
|
127
|
+
rdoc.main = 'Readme.txt'
|
128
|
+
|
129
|
+
# examples are generated later and not necessarily available at definition time
|
130
|
+
examples = example_task_lib.conversion_pairs.map { |a| a[1] }
|
131
|
+
|
132
|
+
rdoc.rdoc_files.include(*examples)
|
133
|
+
rdoc.rdoc_files.include('lib/**/*.rb', *gemspec.extra_rdoc_files)
|
134
|
+
end
|
135
|
+
|
136
|
+
# Helper method to add target="_parent" to all external links in _file_ html.
|
137
|
+
def add_href_parent(file)
|
138
|
+
lines = IO.readlines(file).collect do |line|
|
139
|
+
if line =~ /(href=(?:'|")https?:\/\/)/
|
140
|
+
"#{$`}target=\"_parent\" #{$1}#{$'}"
|
141
|
+
else
|
142
|
+
line
|
143
|
+
end
|
144
|
+
end
|
145
|
+
File.open(file, 'w') { |f| f.print lines.join }
|
146
|
+
end
|
147
|
+
|
148
|
+
desc 'Fix the RDoc hrefs in framesets'
|
149
|
+
task :fix_rdoc => [:rdoc] do
|
150
|
+
Dir["#{RDOC_DIR}/**/*.html"].each { |file| add_href_parent(file) }
|
151
|
+
end
|
152
|
+
|
153
|
+
# Helper method to add the gem version _dir_ into index _file_ to frameset links.
|
154
|
+
def add_frameset_version(file, dir)
|
155
|
+
lines = IO.readlines(file).collect do |line|
|
156
|
+
if line =~ /(frame src=")/
|
157
|
+
"#{$`}#{$1}#{dir}/#{$'}"
|
158
|
+
else
|
159
|
+
line
|
160
|
+
end
|
161
|
+
end
|
162
|
+
File.open(file, 'w') { |f| f.print lines.join }
|
163
|
+
end
|
164
|
+
|
165
|
+
desc 'Publish the RDoc files to repository'
|
166
|
+
task :publish_rdoc => [:clobber_rdoc, :fix_rdoc] do
|
167
|
+
puts "Releasing #{full_gem_name} API"
|
168
|
+
version_dir = "#{gemspec.version}"
|
169
|
+
|
170
|
+
FileUtils.rm_r RDOC_REPO rescue nil
|
171
|
+
FileUtils.mkdir RDOC_REPO
|
172
|
+
|
173
|
+
FileUtils.rm_r "#{RDOC_REPO}/#{version_dir}" rescue nil
|
174
|
+
FileUtils.cp_r RDOC_DIR, "#{RDOC_REPO}/#{version_dir}"
|
175
|
+
|
176
|
+
# modify index, update redirect in frameset
|
177
|
+
file = "#{RDOC_REPO}/index.html"
|
178
|
+
FileUtils.cp "#{RDOC_REPO}/#{version_dir}/index.html", file
|
179
|
+
add_frameset_version(file, version_dir)
|
180
|
+
|
181
|
+
puts 'API created. Copy to hosting\4_bitbucket.org\api'
|
182
|
+
puts 'API created. Don\'t forget to upload'
|
183
|
+
end
|
184
|
+
|
185
|
+
# :clean :clobber
|
186
|
+
CLOBBER.include(RDOC_REPO, 'ClassLists', 'fullClassList*.txt')
|
187
|
+
|
188
|
+
task :default => :test
|
data/Readme.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
javaclass-rb
|
2
|
-
by {Peter 'Code Cop' Kofler}[
|
2
|
+
by {Peter 'Code Cop' Kofler}[https://www.code-cop.org/]
|
3
3
|
|
4
|
-
* {Homepage (
|
4
|
+
* {Homepage (GitHub)}[https://github.com/codecop/javaclass-rb]
|
5
5
|
* email peter dot kofler at code minus cop dot org
|
6
6
|
|
7
7
|
== Description
|
@@ -27,52 +27,56 @@ which might be the base for some serious static code analysis tools. (I
|
|
27
27
|
sudo gem install javaclass
|
28
28
|
|
29
29
|
* {Gem Hosting}[http://rubygems.org/gems/javaclass]
|
30
|
-
* {Download of
|
30
|
+
* {Download of tar balls and gems}[https://www.code-cop.org/download/javaclass-rb/]
|
31
31
|
|
32
32
|
== Documentation
|
33
33
|
|
34
34
|
Module JavaClass is the entry point for basic functions. All advanced functions are
|
35
|
-
available in Object through the JavaClass::Dsl::Mixin. The main class or the parser
|
36
|
-
is JavaClass::ClassFile::JavaClassHeader which provides access to all information
|
37
|
-
of a Java class file.
|
35
|
+
available in Object through the JavaClass::Dsl::Mixin. The main class or the parser
|
36
|
+
is JavaClass::ClassFile::JavaClassHeader which provides access to all information
|
37
|
+
of a Java class file.
|
38
38
|
|
39
|
-
* {API RDoc}[
|
39
|
+
* {API RDoc}[https://www.code-cop.org/api/javaclass-rb/]
|
40
40
|
|
41
|
-
I tried hard to rdoc all classes and public methods, so just {read it}[
|
41
|
+
I tried hard to rdoc all classes and public methods, so just {read it}[https://www.code-cop.org/api/javaclass-rb/].
|
42
42
|
|
43
43
|
== Usage
|
44
44
|
|
45
|
-
See the various examples in the examples folder of the gem.
|
45
|
+
See the various examples in the examples folder of the gem.
|
46
46
|
|
47
47
|
* {Basic Usage}[link:/files/lib/generated/examples/simple_usage_txt.html]
|
48
|
-
*
|
49
|
-
* {
|
50
|
-
* {
|
51
|
-
* {
|
52
|
-
* {
|
53
|
-
*
|
54
|
-
* {
|
55
|
-
* {
|
56
|
-
* {
|
57
|
-
* {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
48
|
+
* Classes in modules/Jars, classpath
|
49
|
+
* {Number of classes in modules/JARs}[link:/files/lib/generated/examples/count_classes_in_modules_txt.html]
|
50
|
+
* {List content of a (Maven) JAR}[link:/files/lib/generated/examples/show_jar_api_txt.html]
|
51
|
+
* {Generate lists of JDK classes}[link:/files/lib/generated/examples/generate_class_lists_txt.html]
|
52
|
+
* {Check names of all interfaces}[link:/files/lib/generated/examples/check_interface_names_txt.html]
|
53
|
+
* Dependencies to other classes
|
54
|
+
* {All imported types}[link:/files/lib/generated/examples/find_all_imported_types_txt.html]
|
55
|
+
* {Cumulative dependencies of a class}[link:/files/lib/generated/examples/cumulative_dependencies_txt.html]
|
56
|
+
* {Find (un)referenced JARs}[link:/files/lib/generated/examples/find_referenced_modules_txt.html]
|
57
|
+
* {Find unused classes}[link:/files/lib/generated/examples/find_unreferenced_classes_txt.html]
|
58
|
+
* {Extract and chart dependencies between classes}[link:/files/lib/generated/examples/chart_class_dependencies_txt.html]
|
59
|
+
* {Extract and chart dependency info between modules}[link:/files/lib/generated/examples/chart_module_dependencies_txt.html]
|
60
|
+
* {Find classes that are accessed from outside the module}[link:/files/lib/generated/examples/find_incoming_dependency_graph_txt.html]
|
61
|
+
* {Based on dependencies, sort modules into layers}[link:/files/lib/generated/examples/find_layers_of_modules_txt.html]
|
62
|
+
|
63
|
+
There is some experimental logic to recognize Java class name literals in Ruby
|
64
|
+
which are mapped to JavaClass::JavaQualifiedName. Packages have to be suffixed
|
65
|
+
with ".*" to be recognized. See JavaClass::Dsl::JavaNameFactory for its usage.
|
62
66
|
|
63
67
|
== Dependencies
|
64
68
|
|
65
|
-
* Ruby 1.8.7 (also tested
|
66
|
-
* {rubyzip}[https://github.com/rubyzip/rubyzip] 0.9.1 (also tested
|
69
|
+
* Ruby 1.8.7 (also tested 1.9.3, 2.0, 2.1 to 2.7)
|
70
|
+
* {rubyzip}[https://github.com/rubyzip/rubyzip] 0.9.1 (also tested 0.9.6.1, 0.9.9, 1.0.0, 1.1.7, 1.3.0, 2.3.0)
|
67
71
|
* Originally Ruby 1.8.6 with rubyzip 0.9.1
|
68
72
|
|
69
73
|
== References
|
70
74
|
|
71
|
-
*
|
72
|
-
*
|
73
|
-
* {Similar Project by unageanu}[http://github.com/unageanu/javaclass], GitHub 2010.
|
75
|
+
* The Java class file lifestyle, JavaWorld 1996.
|
76
|
+
* The class File Format, The Java Virtual Machine Specification, Second Edition.
|
77
|
+
* {Similar Project by unageanu}[http://github.com/unageanu/javaclass], GitHub 2010.
|
74
78
|
|
75
79
|
== License
|
76
80
|
|
77
81
|
Typically the licenses listed for the project are that of the project itself, and not of dependencies.
|
78
|
-
* {BSD License}[http://www.opensource.org/licenses/bsd-license.php], it's enclosed in {license.txt}[link:/files/license_txt.html].
|
82
|
+
* {The 2-Clause BSD License}[http://www.opensource.org/licenses/bsd-license.php], it's enclosed in {license.txt}[link:/files/license_txt.html].
|