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.
Files changed (68) hide show
  1. data/Rakefile +18 -71
  2. data/Readme.txt +13 -22
  3. data/{example_task.rb → dev/example_task.rb} +1 -1
  4. data/dev/saikuro_task.rb +120 -0
  5. data/examples/chart_class_dependencies.rb +43 -0
  6. data/examples/chart_module_dependencies.rb +64 -0
  7. data/examples/check_interface_names.rb +3 -2
  8. data/examples/corpus.rb +52 -12
  9. data/examples/count_classes_in_modules.rb +2 -1
  10. data/examples/cumulative_dependencies.rb +4 -3
  11. data/examples/find_all_imported_types.rb +11 -7
  12. data/examples/find_incoming_dependency_graph.rb +81 -0
  13. data/examples/find_layers_of_modules.rb +79 -0
  14. data/examples/find_referenced_modules.rb +4 -6
  15. data/examples/find_unreferenced_classes.rb +14 -4
  16. data/examples/generate_class_lists.rb +1 -0
  17. data/examples/show_jar_api.rb +93 -0
  18. data/examples/test_corpus.rb +32 -0
  19. data/history.txt +17 -5
  20. data/javaclass.gemspec +9 -8
  21. data/lib/javaclass/analyse/dependencies.rb +1 -1
  22. data/lib/javaclass/analyse/transitive_dependencies.rb +2 -2
  23. data/lib/javaclass/classfile/class_magic.rb +1 -1
  24. data/lib/javaclass/classfile/constant_pool.rb +1 -0
  25. data/lib/javaclass/classfile/java_class_header_as_java_name.rb +4 -0
  26. data/lib/javaclass/classfile/java_class_header_shortcuts.rb +2 -0
  27. data/lib/javaclass/classlist/jar_searcher.rb +11 -5
  28. data/lib/javaclass/classlist/list.rb +27 -14
  29. data/lib/javaclass/classpath/any_classpath.rb +1 -1
  30. data/lib/javaclass/classpath/eclipse_classpath.rb +45 -25
  31. data/lib/javaclass/classpath/factory.rb +23 -13
  32. data/lib/javaclass/classpath/maven_artefact.rb +62 -0
  33. data/lib/javaclass/classpath/tracking_classpath.rb +3 -1
  34. data/lib/javaclass/dependencies/class_node.rb +36 -0
  35. data/lib/javaclass/dependencies/classpath_node.rb +37 -0
  36. data/lib/javaclass/dependencies/edge.rb +41 -0
  37. data/lib/javaclass/dependencies/graph.rb +53 -0
  38. data/lib/javaclass/dependencies/graphml_serializer.rb +102 -0
  39. data/lib/javaclass/dependencies/node.rb +82 -0
  40. data/lib/javaclass/dependencies/yaml_serializer.rb +103 -0
  41. data/lib/javaclass/dsl/java_name_factory.rb +2 -2
  42. data/lib/javaclass/gems/zip_file.rb +41 -33
  43. data/lib/javaclass/java_name.rb +1 -1
  44. data/lib/javaclass/java_name_scanner.rb +9 -7
  45. data/lib/javaclass/string_20.rb +40 -0
  46. data/lib/javaclass/string_hexdump.rb +18 -2
  47. data/lib/javaclass/string_ux.rb +3 -7
  48. data/planned.txt +50 -4
  49. data/rake_analysis.rb +46 -0
  50. data/test/data/api/packagename/Broken.class +0 -0
  51. data/test/logging_folder_classpath.rb +2 -2
  52. data/test/{test_adder_tree.rb → test_adder_tree_node.rb} +1 -1
  53. data/test/test_class_magic.rb +1 -1
  54. data/test/test_eclipse_classpath.rb +1 -1
  55. data/test/test_edge.rb +60 -0
  56. data/test/test_factory.rb +1 -1
  57. data/test/test_graph.rb +28 -0
  58. data/test/test_java_name.rb +13 -1
  59. data/test/test_javaclass_api.rb +18 -3
  60. data/test/test_maven_artefact.rb +37 -0
  61. data/test/test_node.rb +56 -0
  62. data/test/test_yaml_serializer.rb +105 -0
  63. data/test/ts_all_tests.rb +16 -3
  64. metadata +46 -35
  65. data/examples/profiler_scratchpad.rb +0 -33
  66. data/lib/javaclass/analyse/ideas.txt +0 -15
  67. data/lib/javaclass/classpath/classpaths.txt +0 -2
  68. 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
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/setup'
2
2
  require 'javaclass/classpath/factory'
3
- require 'test/dot_classpath'
3
+ require File.dirname(__FILE__) + '/dot_classpath'
4
4
 
5
5
  module TestJavaClass
6
6
  module TestClasspath
@@ -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
@@ -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 TestJavaClassFile < Test::Unit::TestCase
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)
@@ -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.javaclass-rb.googlecode.com/hg/0.0.2/index.html
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.javaclass-rb.googlecode.com/hg/0.0.3/index.html
22
- def test_usage_003
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__) + '/test_adder_tree'
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 << TestAdderTree.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::TestJavaClassFile.suite
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
- prerelease: false
4
+ hash: 13
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
- - 0
8
8
  - 4
9
- version: 0.0.4
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: 2011-12-19 00:00:00 +01:00
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
- - 4
47
- version: 0.8.4
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/test_adder_tree.rb
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/profiler_scratchpad.rb
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
- - example_task.rb
284
- has_rdoc: true
285
- homepage: http://code.google.com/p/javaclass-rb/
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.0.4 Documentation
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.3.7
323
+ rubygems_version: 1.8.8
318
324
  signing_key:
319
325
  specification_version: 3
320
- summary: A parser and disassembler for Java class files
326
+ summary: Java class files parser and disassembler for Ruby
321
327
  test_files:
322
328
  - test/test_access_flags.rb
323
- - test/test_adder_tree.rb
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