javaclass 0.0.4 → 0.4.1
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.
- data/Rakefile +18 -71
- data/Readme.txt +13 -22
- data/{example_task.rb → dev/example_task.rb} +1 -1
- data/dev/saikuro_task.rb +120 -0
- data/examples/chart_class_dependencies.rb +43 -0
- data/examples/chart_module_dependencies.rb +64 -0
- data/examples/check_interface_names.rb +3 -2
- data/examples/corpus.rb +52 -12
- data/examples/count_classes_in_modules.rb +2 -1
- data/examples/cumulative_dependencies.rb +4 -3
- data/examples/find_all_imported_types.rb +11 -7
- data/examples/find_incoming_dependency_graph.rb +81 -0
- data/examples/find_layers_of_modules.rb +79 -0
- data/examples/find_referenced_modules.rb +4 -6
- data/examples/find_unreferenced_classes.rb +14 -4
- data/examples/generate_class_lists.rb +1 -0
- data/examples/show_jar_api.rb +93 -0
- data/examples/test_corpus.rb +32 -0
- data/history.txt +17 -5
- data/javaclass.gemspec +9 -8
- data/lib/javaclass/analyse/dependencies.rb +1 -1
- data/lib/javaclass/analyse/transitive_dependencies.rb +2 -2
- data/lib/javaclass/classfile/class_magic.rb +1 -1
- data/lib/javaclass/classfile/constant_pool.rb +1 -0
- data/lib/javaclass/classfile/java_class_header_as_java_name.rb +4 -0
- data/lib/javaclass/classfile/java_class_header_shortcuts.rb +2 -0
- data/lib/javaclass/classlist/jar_searcher.rb +11 -5
- data/lib/javaclass/classlist/list.rb +27 -14
- data/lib/javaclass/classpath/any_classpath.rb +1 -1
- data/lib/javaclass/classpath/eclipse_classpath.rb +45 -25
- data/lib/javaclass/classpath/factory.rb +23 -13
- data/lib/javaclass/classpath/maven_artefact.rb +62 -0
- data/lib/javaclass/classpath/tracking_classpath.rb +3 -1
- data/lib/javaclass/dependencies/class_node.rb +36 -0
- data/lib/javaclass/dependencies/classpath_node.rb +37 -0
- data/lib/javaclass/dependencies/edge.rb +41 -0
- data/lib/javaclass/dependencies/graph.rb +53 -0
- data/lib/javaclass/dependencies/graphml_serializer.rb +102 -0
- data/lib/javaclass/dependencies/node.rb +82 -0
- data/lib/javaclass/dependencies/yaml_serializer.rb +103 -0
- data/lib/javaclass/dsl/java_name_factory.rb +2 -2
- data/lib/javaclass/gems/zip_file.rb +41 -33
- data/lib/javaclass/java_name.rb +1 -1
- data/lib/javaclass/java_name_scanner.rb +9 -7
- data/lib/javaclass/string_20.rb +40 -0
- data/lib/javaclass/string_hexdump.rb +18 -2
- data/lib/javaclass/string_ux.rb +3 -7
- data/planned.txt +50 -4
- data/rake_analysis.rb +46 -0
- data/test/data/api/packagename/Broken.class +0 -0
- data/test/logging_folder_classpath.rb +2 -2
- data/test/{test_adder_tree.rb → test_adder_tree_node.rb} +1 -1
- data/test/test_class_magic.rb +1 -1
- data/test/test_eclipse_classpath.rb +1 -1
- data/test/test_edge.rb +60 -0
- data/test/test_factory.rb +1 -1
- data/test/test_graph.rb +28 -0
- data/test/test_java_name.rb +13 -1
- data/test/test_javaclass_api.rb +18 -3
- data/test/test_maven_artefact.rb +37 -0
- data/test/test_node.rb +56 -0
- data/test/test_yaml_serializer.rb +105 -0
- data/test/ts_all_tests.rb +16 -3
- metadata +46 -35
- data/examples/profiler_scratchpad.rb +0 -33
- data/lib/javaclass/analyse/ideas.txt +0 -15
- data/lib/javaclass/classpath/classpaths.txt +0 -2
- data/lib/javaclass/classscanner/ideas.txt +0 -3
data/test/test_edge.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/dependencies/edge'
|
3
|
+
|
4
|
+
module TestJavaClass
|
5
|
+
module TestDependencies
|
6
|
+
|
7
|
+
class TestEdge < Test::Unit::TestCase
|
8
|
+
include JavaClass::Dependencies
|
9
|
+
|
10
|
+
def test_to_s
|
11
|
+
assert_equal('target (source)', Edge.new('source', 'target').to_s)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_equals2_true
|
15
|
+
edge1 = Edge.new('blue', 'ball')
|
16
|
+
edge2 = Edge.new('blue', 'ball')
|
17
|
+
assert(edge1 == edge2)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_equals2_false
|
21
|
+
edge1 = Edge.new('blue', 'ball')
|
22
|
+
edge2 = Edge.new('red', 'ball')
|
23
|
+
edge3 = Edge.new('blue', 'balloon')
|
24
|
+
assert(edge1 != edge2)
|
25
|
+
assert(edge1 != edge3)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_spaceship_sort_of_list
|
29
|
+
original_list = [
|
30
|
+
Edge.new('2', 'b'),
|
31
|
+
Edge.new('1', 'b'),
|
32
|
+
Edge.new('2', 'a'),
|
33
|
+
Edge.new('1', 'a')
|
34
|
+
].sort
|
35
|
+
sorted_list = [
|
36
|
+
Edge.new('1', 'a'),
|
37
|
+
Edge.new('2', 'a'),
|
38
|
+
Edge.new('1', 'b'),
|
39
|
+
Edge.new('2', 'b')
|
40
|
+
]
|
41
|
+
|
42
|
+
assert_equal(sorted_list, original_list.sort)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_hash_uniq_of_list
|
46
|
+
original_list = [
|
47
|
+
Edge.new('1', 'a'),
|
48
|
+
Edge.new('1', 'a')
|
49
|
+
].sort
|
50
|
+
uniq_list = [
|
51
|
+
Edge.new('1', 'a')
|
52
|
+
]
|
53
|
+
|
54
|
+
assert_equal(uniq_list, original_list.uniq)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
data/test/test_factory.rb
CHANGED
data/test/test_graph.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/dependencies/node'
|
3
|
+
|
4
|
+
module TestJavaClass
|
5
|
+
module TestDependencies
|
6
|
+
|
7
|
+
class TestGraph < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def test_add
|
10
|
+
# TODO 'Need to write test_add'
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_nodes_satisfying
|
14
|
+
# TODO 'Need to write test_nodes_satisfying'
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_resolve_dependencies
|
18
|
+
# TODO 'Need to write test_resolve_dependencies'
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_each_node
|
22
|
+
# TODO 'Need to write test_each_node'
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/test/test_java_name.rb
CHANGED
@@ -87,6 +87,10 @@ module TestJavaClass
|
|
87
87
|
@frozen_name.freeze
|
88
88
|
end
|
89
89
|
|
90
|
+
def test_class_valid_eh
|
91
|
+
# TODO 'Need to write test_class_valid_eh'
|
92
|
+
end
|
93
|
+
|
90
94
|
def test_class_new_invalid
|
91
95
|
assert_raise(ArgumentError) { JavaClass::JavaQualifiedName.new('at.kugel.tool/Some') }
|
92
96
|
assert_raise(ArgumentError) { JavaClass::JavaQualifiedName.new('at.kugel.tool.') }
|
@@ -162,6 +166,10 @@ module TestJavaClass
|
|
162
166
|
@frozen_path.freeze
|
163
167
|
end
|
164
168
|
|
169
|
+
def test_class_valid_eh
|
170
|
+
# TODO 'Need to write test_class_valid_eh'
|
171
|
+
end
|
172
|
+
|
165
173
|
def test_to_classname
|
166
174
|
assert_equal('at.kugel.tool.SomeClassWithMoreNames', @jvm_path.to_classname)
|
167
175
|
#assert_equal('at.kugel.tool.Some', @jvm_method_name.to_classname)
|
@@ -200,7 +208,7 @@ module TestJavaClass
|
|
200
208
|
|
201
209
|
end
|
202
210
|
|
203
|
-
class
|
211
|
+
class TestJavaClassFileName < Test::Unit::TestCase
|
204
212
|
|
205
213
|
def setup
|
206
214
|
@win_file = JavaClass::JavaClassFileName.new("at\\kugel\\tool\\Some.class")
|
@@ -210,6 +218,10 @@ module TestJavaClass
|
|
210
218
|
@frozen_file.freeze
|
211
219
|
end
|
212
220
|
|
221
|
+
def test_class_valid_eh
|
222
|
+
# TODO 'Need to write test_class_valid_eh'
|
223
|
+
end
|
224
|
+
|
213
225
|
def test_to_classname
|
214
226
|
assert_equal('at.kugel.tool.Some', @win_file.to_classname)
|
215
227
|
assert_equal('at.kugel.tool', @win_file.to_classname.package)
|
data/test/test_javaclass_api.rb
CHANGED
@@ -6,7 +6,7 @@ module TestJavaClass
|
|
6
6
|
# Test the public API usage.
|
7
7
|
class TestJavaClassAPI < Test::Unit::TestCase # ZenTest SKIP
|
8
8
|
|
9
|
-
# See http://api
|
9
|
+
# See http://www.code-cop.org/api/javaclass-rb/0.0.2/index.html
|
10
10
|
def test_usage_002
|
11
11
|
clazz = JavaClass.parse("#{TEST_DATA_PATH}/api/packagename/AccessFlagsTestPublic.class")
|
12
12
|
assert_not_nil(clazz)
|
@@ -18,11 +18,19 @@ module TestJavaClass
|
|
18
18
|
assert_equal('java/lang/Object.<init>:()V', clazz.references.referenced_methods[0].to_s)
|
19
19
|
end
|
20
20
|
|
21
|
-
# See http://api
|
22
|
-
def
|
21
|
+
# See http://www.code-cop.org/api/javaclass-rb/0.0.3/index.html
|
22
|
+
def test_usage_003_fs
|
23
23
|
clazz = JavaClass.load_fs("#{TEST_DATA_PATH}/api/packagename/AccessFlagsTestPublic.class")
|
24
24
|
assert_not_nil(clazz)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_usage_003_fs_fails
|
28
|
+
assert_raise(JavaClass::ClassFile::ClassFormatError) {
|
29
|
+
JavaClass.load_fs("#{TEST_DATA_PATH}/api/packagename/Broken.class")
|
30
|
+
}
|
31
|
+
end
|
25
32
|
|
33
|
+
def test_usage_003_cp
|
26
34
|
classpath = JavaClass.classpath("#{TEST_DATA_PATH}/api")
|
27
35
|
clazz = JavaClass.load_cp('packagename/AccessFlagsTestPublic', classpath)
|
28
36
|
assert_not_nil(clazz)
|
@@ -38,6 +46,13 @@ module TestJavaClass
|
|
38
46
|
assert_equal('java/lang/Object.<init>:()V', clazz.references.referenced_methods[0].to_s)
|
39
47
|
end
|
40
48
|
|
49
|
+
def test_usage_003_cp_fails
|
50
|
+
assert_raise(JavaClass::ClassFile::ClassFormatError) {
|
51
|
+
classpath = JavaClass.classpath("#{TEST_DATA_PATH}/api")
|
52
|
+
JavaClass.load_cp('packagename/Broken', classpath)
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
41
56
|
end
|
42
57
|
|
43
58
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/classpath/maven_artefact'
|
3
|
+
|
4
|
+
module TestJavaClass
|
5
|
+
module TestClasspath
|
6
|
+
|
7
|
+
class TestMavenArtefact < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def test_title_given
|
10
|
+
a = JavaClass::Classpath::MavenArtefact.new('commons-codec', 'commons-codec', '1.6', 'Some Title')
|
11
|
+
assert_equal('Some Title', a.title)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_title_basic
|
15
|
+
a = JavaClass::Classpath::MavenArtefact.new('commons-codec', 'commons-codec', '1.6')
|
16
|
+
assert_equal('Commons Codec', a.title)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_title_number
|
20
|
+
a = JavaClass::Classpath::MavenArtefact.new('org.apache.commons', 'commons-lang3', '3.1')
|
21
|
+
assert_equal('Commons Lang', a.title)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_title_acronym
|
25
|
+
a = JavaClass::Classpath::MavenArtefact.new('commons-cli', 'commons-cli', '1.2')
|
26
|
+
assert_equal('Commons CLI', a.title)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_repository_path
|
30
|
+
a = JavaClass::Classpath::MavenArtefact.new('org.apache.commons', 'commons-lang3', '1.6')
|
31
|
+
assert_equal("#{ENV['HOME']}/.m2/repository/org/apache/commons/commons-lang3/1.6/commons-lang3-1.6.jar", a.repository_path)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
data/test/test_node.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/dependencies/node'
|
3
|
+
|
4
|
+
module TestJavaClass
|
5
|
+
module TestDependencies
|
6
|
+
|
7
|
+
class TestNode < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@node = JavaClass::Dependencies::Node.new('someNode')
|
11
|
+
@other = JavaClass::Dependencies::Node.new('otherNode', 1)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_to_s
|
15
|
+
assert_equal('someNode', @node.to_s)
|
16
|
+
assert_equal('otherNode (1)', @other.to_s)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_size
|
20
|
+
assert_equal(1, @other.size)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_add_dependency_to_for_unsatisfied
|
24
|
+
@node.add_dependency('dependency.for.another.node', [])
|
25
|
+
assert_equal(0, @node.dependencies().size)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_add_dependency_to_for_found
|
29
|
+
@node.add_dependency('dependency.for.other.node', [@other])
|
30
|
+
assert_equal(1, @node.dependencies().size)
|
31
|
+
assert_equal(['dependency.for.other.node'], @node.dependencies[@other])
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_equal
|
35
|
+
assert_equal(@node, @node)
|
36
|
+
assert_equal(@node, JavaClass::Dependencies::Node.new('someNode'))
|
37
|
+
assert_not_equal(@node, @other)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_hash
|
41
|
+
assert_equal(@node.hash, @node.hash)
|
42
|
+
assert_equal(@node.hash, JavaClass::Dependencies::Node.new('someNode').hash)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_each_dependency_provider
|
46
|
+
# TODO 'Need to write test_each_dependency_provider'
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_each_edge
|
50
|
+
# TODO 'Need to write test_each_edge'
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/dependencies/yaml_serializer'
|
3
|
+
require 'javaclass/dependencies/edge'
|
4
|
+
require 'javaclass/dependencies/node'
|
5
|
+
require 'javaclass/dependencies/graph'
|
6
|
+
|
7
|
+
module TestJavaClass
|
8
|
+
module TestDependencies
|
9
|
+
|
10
|
+
class TestYamlSerializer < Test::Unit::TestCase
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@serializer = JavaClass::Dependencies::YamlSerializer.new
|
14
|
+
|
15
|
+
node = JavaClass::Dependencies::Node.new('someNode')
|
16
|
+
@other = JavaClass::Dependencies::Node.new('otherNode')
|
17
|
+
|
18
|
+
node.add_dependency(JavaClass::Dependencies::Edge.new('from1', 'dependency1'), [@other])
|
19
|
+
node.add_dependency(JavaClass::Dependencies::Edge.new('from2', 'dependency1'), [@other])
|
20
|
+
node.add_dependency(JavaClass::Dependencies::Edge.new('from3', 'dependency2'), [@other])
|
21
|
+
|
22
|
+
@graph = JavaClass::Dependencies::Graph.new
|
23
|
+
@graph.add(node)
|
24
|
+
@graph.add(@other)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_has_yaml_eh
|
28
|
+
# TODO 'Need to write test_has_yaml_eh'
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_graph_to_yaml
|
32
|
+
string = @serializer.graph_to_yaml(@graph)
|
33
|
+
yaml = YAML.load(StringIO.new(string))
|
34
|
+
|
35
|
+
# we saved a hash with 2 nodes
|
36
|
+
assert_equal(2, yaml.size)
|
37
|
+
|
38
|
+
# which one of them was "someNode"
|
39
|
+
assert(yaml.has_key?('someNode'))
|
40
|
+
|
41
|
+
# which had 1 dependant node
|
42
|
+
dependencies = yaml['someNode']
|
43
|
+
assert_equal(1, dependencies.size)
|
44
|
+
|
45
|
+
# with 3 actual imports
|
46
|
+
imports = dependencies['otherNode']
|
47
|
+
assert_equal(3, imports.size)
|
48
|
+
assert_equal('from1->dependency1', imports[0])
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_graph_to_yaml_summary
|
52
|
+
string = JavaClass::Dependencies::YamlSerializer.new(:outgoing => :summary).graph_to_yaml(@graph)
|
53
|
+
yaml = YAML.load(StringIO.new(string))
|
54
|
+
|
55
|
+
# we saved a hash with 2 nodes
|
56
|
+
assert_equal(2, yaml.size)
|
57
|
+
|
58
|
+
# which one of them was "someNode"
|
59
|
+
assert(yaml.has_key?('someNode'))
|
60
|
+
|
61
|
+
# which had 1 dependant node
|
62
|
+
dependencies = yaml['someNode']
|
63
|
+
assert_equal(1, dependencies.size)
|
64
|
+
|
65
|
+
# with 2 summarized imports
|
66
|
+
imports = dependencies['otherNode']
|
67
|
+
assert_equal(2, imports.size)
|
68
|
+
assert_equal('dependency1', imports[0])
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_node_to_yaml
|
72
|
+
# fake methods for zentest, tested in all test_graph_to_yaml
|
73
|
+
assert(true)
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_yaml_to_graph
|
77
|
+
string = @serializer.graph_to_yaml(@graph)
|
78
|
+
yaml = YAML.load(StringIO.new(string))
|
79
|
+
graph = @serializer.yaml_to_graph(yaml)
|
80
|
+
|
81
|
+
# we saved a hash with 2 nodes
|
82
|
+
assert_equal(2, graph.to_a.size)
|
83
|
+
|
84
|
+
# which one of them was "someNode"
|
85
|
+
some_node = graph.to_a.sort[1]
|
86
|
+
assert_equal('someNode', some_node.name)
|
87
|
+
|
88
|
+
# which had 1 dependant node
|
89
|
+
dependencies = some_node.dependencies
|
90
|
+
assert_equal(1, dependencies.size)
|
91
|
+
|
92
|
+
new_other = dependencies.keys[0]
|
93
|
+
assert_equal(@other, new_other)
|
94
|
+
|
95
|
+
# with 3 actual imports
|
96
|
+
imports = dependencies[new_other]
|
97
|
+
assert_equal(3, imports.size)
|
98
|
+
assert_equal('from2', imports[1].source)
|
99
|
+
assert_equal('dependency1', imports[1].target)
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
end
|
data/test/ts_all_tests.rb
CHANGED
@@ -3,7 +3,7 @@ require 'test/unit/testsuite'
|
|
3
3
|
require 'test/unit' if $0 == __FILE__
|
4
4
|
|
5
5
|
# common
|
6
|
-
require File.dirname(__FILE__) + '/
|
6
|
+
require File.dirname(__FILE__) + '/test_adder_tree_node'
|
7
7
|
require File.dirname(__FILE__) + '/test_string_ux'
|
8
8
|
require File.dirname(__FILE__) + '/test_string_hexdump'
|
9
9
|
require File.dirname(__FILE__) + '/test_zip_file'
|
@@ -53,13 +53,19 @@ require File.dirname(__FILE__) + '/test_caching_classpath'
|
|
53
53
|
# API
|
54
54
|
require File.dirname(__FILE__) + '/test_javaclass_api'
|
55
55
|
|
56
|
+
# Graph
|
57
|
+
require File.dirname(__FILE__) + '/test_graph'
|
58
|
+
require File.dirname(__FILE__) + '/test_node'
|
59
|
+
require File.dirname(__FILE__) + '/test_edge'
|
60
|
+
require File.dirname(__FILE__) + '/test_yaml_serializer'
|
61
|
+
|
56
62
|
class TsAllTests
|
57
63
|
|
58
64
|
def self.suite
|
59
65
|
suite = Test::Unit::TestSuite.new("Ruby Java Class")
|
60
66
|
|
61
67
|
# common
|
62
|
-
suite <<
|
68
|
+
suite << TestAdderTreeNode.suite
|
63
69
|
suite << TestStringUx.suite
|
64
70
|
suite << TestStringHexdump.suite
|
65
71
|
suite << TestJavaClass::TestGems::TestZipFile.suite
|
@@ -67,7 +73,7 @@ class TsAllTests
|
|
67
73
|
suite << TestJavaClass::TestSimpleNameLogic.suite
|
68
74
|
suite << TestJavaClass::TestJavaQualifiedName.suite
|
69
75
|
suite << TestJavaClass::TestJavaVMName.suite
|
70
|
-
suite << TestJavaClass::
|
76
|
+
suite << TestJavaClass::TestJavaClassFileName.suite
|
71
77
|
|
72
78
|
# Java class parser
|
73
79
|
suite << TestJavaClass::TestClassFile::TestClassMagic.suite
|
@@ -113,6 +119,13 @@ class TsAllTests
|
|
113
119
|
|
114
120
|
# API
|
115
121
|
suite << TestJavaClass::TestJavaClassAPI.suite
|
122
|
+
|
123
|
+
# Graph
|
124
|
+
suite << TestJavaClass::TestDependencies::TestGraph.suite
|
125
|
+
suite << TestJavaClass::TestDependencies::TestNode.suite
|
126
|
+
suite << TestJavaClass::TestDependencies::TestEdge.suite
|
127
|
+
suite << TestJavaClass::TestDependencies::TestYamlSerializer.suite
|
128
|
+
|
116
129
|
return suite
|
117
130
|
end
|
118
131
|
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: javaclass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 13
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
- 0
|
8
8
|
- 4
|
9
|
-
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Peter Kofler
|
@@ -14,8 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
-
default_executable:
|
18
|
+
date: 2015-05-30 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rubyzip
|
@@ -25,6 +25,7 @@ dependencies:
|
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 57
|
28
29
|
segments:
|
29
30
|
- 0
|
30
31
|
- 9
|
@@ -40,29 +41,14 @@ dependencies:
|
|
40
41
|
requirements:
|
41
42
|
- - ">="
|
42
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 57
|
43
45
|
segments:
|
44
46
|
- 0
|
45
47
|
- 8
|
46
|
-
-
|
47
|
-
version: 0.8.
|
48
|
+
- 3
|
49
|
+
version: 0.8.3
|
48
50
|
type: :development
|
49
51
|
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rcov
|
52
|
-
prerelease: false
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
|
-
requirements:
|
56
|
-
- - ">="
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
- 8
|
61
|
-
- 1
|
62
|
-
- 2
|
63
|
-
version: 0.8.1.2
|
64
|
-
type: :development
|
65
|
-
version_requirements: *id003
|
66
52
|
description: Provides access to the package, protected, and public fields and methods of the classes passed to it together with a list of all outgoing references.
|
67
53
|
email: peter dot kofler at code minus cop dot org
|
68
54
|
executables: []
|
@@ -83,7 +69,6 @@ files:
|
|
83
69
|
- thanks.txt
|
84
70
|
- lib/javaclass/adder_tree.rb
|
85
71
|
- lib/javaclass/analyse/dependencies.rb
|
86
|
-
- lib/javaclass/analyse/ideas.txt
|
87
72
|
- lib/javaclass/analyse/transitive_dependencies.rb
|
88
73
|
- lib/javaclass/classfile/access_flags.rb
|
89
74
|
- lib/javaclass/classfile/access_flag_constants.rb
|
@@ -104,7 +89,6 @@ files:
|
|
104
89
|
- lib/javaclass/classlist/list.rb
|
105
90
|
- lib/javaclass/classlist/package_entry.rb
|
106
91
|
- lib/javaclass/classpath/any_classpath.rb
|
107
|
-
- lib/javaclass/classpath/classpaths.txt
|
108
92
|
- lib/javaclass/classpath/class_not_found_error.rb
|
109
93
|
- lib/javaclass/classpath/composite_classpath.rb
|
110
94
|
- lib/javaclass/classpath/convention_classpath.rb
|
@@ -114,13 +98,20 @@ files:
|
|
114
98
|
- lib/javaclass/classpath/folder_classpath.rb
|
115
99
|
- lib/javaclass/classpath/jar_classpath.rb
|
116
100
|
- lib/javaclass/classpath/java_home_classpath.rb
|
101
|
+
- lib/javaclass/classpath/maven_artefact.rb
|
117
102
|
- lib/javaclass/classpath/maven_classpath.rb
|
118
103
|
- lib/javaclass/classpath/temporary_unpacker.rb
|
119
104
|
- lib/javaclass/classpath/tracking_classpath.rb
|
120
|
-
- lib/javaclass/classscanner/ideas.txt
|
121
105
|
- lib/javaclass/classscanner/imported_types.rb
|
122
106
|
- lib/javaclass/classscanner/scanners.rb
|
123
107
|
- lib/javaclass/delegate_directive.rb
|
108
|
+
- lib/javaclass/dependencies/classpath_node.rb
|
109
|
+
- lib/javaclass/dependencies/class_node.rb
|
110
|
+
- lib/javaclass/dependencies/edge.rb
|
111
|
+
- lib/javaclass/dependencies/graph.rb
|
112
|
+
- lib/javaclass/dependencies/graphml_serializer.rb
|
113
|
+
- lib/javaclass/dependencies/node.rb
|
114
|
+
- lib/javaclass/dependencies/yaml_serializer.rb
|
124
115
|
- lib/javaclass/dsl/caching_classpath.rb
|
125
116
|
- lib/javaclass/dsl/classpath_analysers.rb
|
126
117
|
- lib/javaclass/dsl/java_name_factory.rb
|
@@ -142,6 +133,7 @@ files:
|
|
142
133
|
- lib/javaclass/resources/jdk7_packages.txt
|
143
134
|
- lib/javaclass/resources/jdk_packages.txt
|
144
135
|
- lib/javaclass/resources/reserved_words.txt
|
136
|
+
- lib/javaclass/string_20.rb
|
145
137
|
- lib/javaclass/string_hexdump.rb
|
146
138
|
- lib/javaclass/string_ux.rb
|
147
139
|
- lib/javaclass.rb
|
@@ -170,6 +162,7 @@ files:
|
|
170
162
|
- test/data/access_flags/AccessFlagsTestPublic_javap.txt
|
171
163
|
- test/data/access_flags/make.bat
|
172
164
|
- test/data/api/packagename/AccessFlagsTestPublic.class
|
165
|
+
- test/data/api/packagename/Broken.class
|
173
166
|
- test/data/class_version/ClassVersionTest.java
|
174
167
|
- test/data/class_version/ClassVersionTest10.class
|
175
168
|
- test/data/class_version/ClassVersionTest11.class
|
@@ -233,7 +226,7 @@ files:
|
|
233
226
|
- test/logging_folder_classpath.rb
|
234
227
|
- test/setup.rb
|
235
228
|
- test/test_access_flags.rb
|
236
|
-
- test/
|
229
|
+
- test/test_adder_tree_node.rb
|
237
230
|
- test/test_any_classpath.rb
|
238
231
|
- test/test_base.rb
|
239
232
|
- test/test_caching_classpath.rb
|
@@ -244,8 +237,10 @@ files:
|
|
244
237
|
- test/test_constant_pool.rb
|
245
238
|
- test/test_convention_classpath.rb
|
246
239
|
- test/test_eclipse_classpath.rb
|
240
|
+
- test/test_edge.rb
|
247
241
|
- test/test_factory.rb
|
248
242
|
- test/test_folder_classpath.rb
|
243
|
+
- test/test_graph.rb
|
249
244
|
- test/test_imported_types.rb
|
250
245
|
- test/test_jar_classpath.rb
|
251
246
|
- test/test_jar_searcher.rb
|
@@ -258,7 +253,9 @@ files:
|
|
258
253
|
- test/test_java_name_scanner.rb
|
259
254
|
- test/test_list.rb
|
260
255
|
- test/test_load_directive.rb
|
256
|
+
- test/test_maven_artefact.rb
|
261
257
|
- test/test_maven_classpath.rb
|
258
|
+
- test/test_node.rb
|
262
259
|
- test/test_package_entry.rb
|
263
260
|
- test/test_references.rb
|
264
261
|
- test/test_string_hexdump.rb
|
@@ -266,29 +263,36 @@ files:
|
|
266
263
|
- test/test_tracking_classpath.rb
|
267
264
|
- test/test_transitive_dependencies.rb
|
268
265
|
- test/test_unpacking_jar_classpath.rb
|
266
|
+
- test/test_yaml_serializer.rb
|
269
267
|
- test/test_zip_file.rb
|
270
268
|
- test/ts_all_tests.rb
|
269
|
+
- examples/chart_class_dependencies.rb
|
270
|
+
- examples/chart_module_dependencies.rb
|
271
271
|
- examples/check_interface_names.rb
|
272
272
|
- examples/corpus.rb
|
273
273
|
- examples/count_classes_in_modules.rb
|
274
274
|
- examples/cumulative_dependencies.rb
|
275
275
|
- examples/find_all_imported_types.rb
|
276
|
+
- examples/find_incoming_dependency_graph.rb
|
277
|
+
- examples/find_layers_of_modules.rb
|
276
278
|
- examples/find_referenced_modules.rb
|
277
279
|
- examples/find_unreferenced_classes.rb
|
278
280
|
- examples/generate_class_lists.rb
|
279
|
-
- examples/
|
281
|
+
- examples/show_jar_api.rb
|
280
282
|
- examples/simple_usage.rb
|
283
|
+
- examples/test_corpus.rb
|
281
284
|
- javaclass.gemspec
|
282
285
|
- Rakefile
|
283
|
-
-
|
284
|
-
|
285
|
-
|
286
|
+
- rake_analysis.rb
|
287
|
+
- dev/example_task.rb
|
288
|
+
- dev/saikuro_task.rb
|
289
|
+
homepage: https://bitbucket.org/pkofler/javaclass-rb
|
286
290
|
licenses:
|
287
291
|
- BSD
|
288
292
|
post_install_message:
|
289
293
|
rdoc_options:
|
290
294
|
- --title
|
291
|
-
- javaclass-0.
|
295
|
+
- javaclass-0.4.1 Documentation
|
292
296
|
- --main
|
293
297
|
- Readme.txt
|
294
298
|
require_paths:
|
@@ -298,6 +302,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
298
302
|
requirements:
|
299
303
|
- - ">="
|
300
304
|
- !ruby/object:Gem::Version
|
305
|
+
hash: 59
|
301
306
|
segments:
|
302
307
|
- 1
|
303
308
|
- 8
|
@@ -308,19 +313,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
308
313
|
requirements:
|
309
314
|
- - ">="
|
310
315
|
- !ruby/object:Gem::Version
|
316
|
+
hash: 3
|
311
317
|
segments:
|
312
318
|
- 0
|
313
319
|
version: "0"
|
314
320
|
requirements: []
|
315
321
|
|
316
322
|
rubyforge_project: javaclass
|
317
|
-
rubygems_version: 1.
|
323
|
+
rubygems_version: 1.8.8
|
318
324
|
signing_key:
|
319
325
|
specification_version: 3
|
320
|
-
summary:
|
326
|
+
summary: Java class files parser and disassembler for Ruby
|
321
327
|
test_files:
|
322
328
|
- test/test_access_flags.rb
|
323
|
-
- test/
|
329
|
+
- test/test_adder_tree_node.rb
|
324
330
|
- test/test_any_classpath.rb
|
325
331
|
- test/test_base.rb
|
326
332
|
- test/test_caching_classpath.rb
|
@@ -331,8 +337,10 @@ test_files:
|
|
331
337
|
- test/test_constant_pool.rb
|
332
338
|
- test/test_convention_classpath.rb
|
333
339
|
- test/test_eclipse_classpath.rb
|
340
|
+
- test/test_edge.rb
|
334
341
|
- test/test_factory.rb
|
335
342
|
- test/test_folder_classpath.rb
|
343
|
+
- test/test_graph.rb
|
336
344
|
- test/test_imported_types.rb
|
337
345
|
- test/test_jar_classpath.rb
|
338
346
|
- test/test_jar_searcher.rb
|
@@ -345,7 +353,9 @@ test_files:
|
|
345
353
|
- test/test_java_name_scanner.rb
|
346
354
|
- test/test_list.rb
|
347
355
|
- test/test_load_directive.rb
|
356
|
+
- test/test_maven_artefact.rb
|
348
357
|
- test/test_maven_classpath.rb
|
358
|
+
- test/test_node.rb
|
349
359
|
- test/test_package_entry.rb
|
350
360
|
- test/test_references.rb
|
351
361
|
- test/test_string_hexdump.rb
|
@@ -353,4 +363,5 @@ test_files:
|
|
353
363
|
- test/test_tracking_classpath.rb
|
354
364
|
- test/test_transitive_dependencies.rb
|
355
365
|
- test/test_unpacking_jar_classpath.rb
|
366
|
+
- test/test_yaml_serializer.rb
|
356
367
|
- test/test_zip_file.rb
|