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.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +188 -194
  3. data/Readme.txt +33 -29
  4. data/examples/generate_class_lists.rb +16 -9
  5. data/history.txt +15 -4
  6. data/javaclass.gemspec +10 -8
  7. data/lib/generated/examples/chart_class_dependencies.txt +35 -0
  8. data/lib/generated/examples/chart_module_dependencies.txt +43 -0
  9. data/lib/generated/examples/check_interface_names.txt +36 -0
  10. data/lib/generated/examples/count_classes_in_modules.txt +31 -0
  11. data/lib/generated/examples/cumulative_dependencies.txt +28 -0
  12. data/lib/generated/examples/find_all_imported_types.txt +38 -0
  13. data/lib/generated/examples/find_incoming_dependency_graph.txt +73 -0
  14. data/lib/generated/examples/find_layers_of_modules.txt +70 -0
  15. data/lib/generated/examples/find_referenced_modules.txt +41 -0
  16. data/lib/generated/examples/find_unreferenced_classes.txt +66 -0
  17. data/lib/generated/examples/generate_class_lists.txt +53 -0
  18. data/lib/generated/examples/show_jar_api.txt +64 -0
  19. data/lib/generated/examples/simple_usage.txt +38 -0
  20. data/lib/javaclass/classfile/access_flag_constants.rb +32 -5
  21. data/lib/javaclass/classfile/access_flags.rb +39 -20
  22. data/lib/javaclass/classfile/attributes/attributes.rb +134 -0
  23. data/lib/javaclass/classfile/class_access_flags.rb +37 -0
  24. data/lib/javaclass/classfile/class_file_attributes.rb +62 -0
  25. data/lib/javaclass/classfile/class_version.rb +0 -1
  26. data/lib/javaclass/classfile/constant_pool.rb +17 -11
  27. data/lib/javaclass/classfile/constants/single_reference.rb +53 -0
  28. data/lib/javaclass/classfile/fields.rb +37 -0
  29. data/lib/javaclass/classfile/java_class_header.rb +22 -13
  30. data/lib/javaclass/classfile/java_class_header_shortcuts.rb +6 -2
  31. data/lib/javaclass/classfile/methods.rb +37 -0
  32. data/lib/javaclass/classlist/jar_searcher.rb +38 -4
  33. data/lib/javaclass/classpath/temporary_unpacker.rb +1 -1
  34. data/lib/javaclass/string_hexdump.rb +1 -1
  35. data/license.txt +7 -7
  36. data/test/data/access_flags/{AccessFlagsTestInner$1.class → AccessFlagsTestAnonym$1.class} +0 -0
  37. data/test/data/access_flags/{AccessFlagsTestInner.class → AccessFlagsTestAnonym.class} +0 -0
  38. data/test/data/access_flags/AccessFlagsTestAnonym.java +9 -0
  39. data/test/data/access_flags/AccessFlagsTestPublic_javap.txt +1 -0
  40. data/test/data/constant_pool/Java8_JavaFX_Animation$1_Tag15.class +0 -0
  41. data/test/data/constant_pool/Java9_Activation_module-info_Tag20.class +0 -0
  42. data/test/data/jar_searcher/JarClassListTest.jar +0 -0
  43. data/test/data/jar_searcher/PublicClass.java +44 -1
  44. data/test/data/jar_searcher/make.bat +1 -2
  45. data/test/{test_access_flags.rb → test_class_access_flags.rb} +91 -93
  46. data/test/test_class_file_attributes.rb +57 -0
  47. data/test/test_constant_pool.rb +31 -0
  48. data/test/test_jar_searcher.rb +40 -7
  49. data/test/test_javaclass_api.rb +2 -2
  50. data/test/test_string_hexdump.rb +4 -1
  51. data/test/ts_all_tests.rb +4 -2
  52. metadata +100 -116
  53. data/test/data/access_flags/AccessFlagsTestInner$2.class +0 -0
  54. data/test/data/access_flags/AccessFlagsTestInner.java +0 -13
@@ -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://www.code-cop.org/api/javaclass-rb/0.0.2/index.html
9
+ # See https://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,7 +18,7 @@ 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://www.code-cop.org/api/javaclass-rb/0.0.3/index.html
21
+ # See https://www.code-cop.org/api/javaclass-rb/0.0.3/index.html
22
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)
@@ -3,8 +3,11 @@ require 'javaclass/string_hexdump'
3
3
 
4
4
  class TestStringHexdump < Test::Unit::TestCase
5
5
 
6
- def test_hexdump_line
6
+ def test_hexdump_empty
7
7
  assert_equal("00000000h: #{' '*16}; \n", ''.hexdump)
8
+ end
9
+
10
+ def test_hexdump_line
8
11
  assert_equal("00000000h: 61 #{' '*15}; a\n", 'a'.hexdump)
9
12
  end
10
13
 
@@ -15,7 +15,8 @@ require File.dirname(__FILE__) + '/test_class_version'
15
15
  require File.dirname(__FILE__) + '/test_base'
16
16
  require File.dirname(__FILE__) + '/test_constant_pool'
17
17
  require File.dirname(__FILE__) + '/test_references'
18
- require File.dirname(__FILE__) + '/test_access_flags'
18
+ require File.dirname(__FILE__) + '/test_class_access_flags'
19
+ require File.dirname(__FILE__) + '/test_class_file_attributes'
19
20
  require File.dirname(__FILE__) + '/test_java_class_header'
20
21
  require File.dirname(__FILE__) + '/test_java_class_header_as_java_name'
21
22
 
@@ -81,7 +82,8 @@ class TsAllTests
81
82
  suite << TestJavaClass::TestClassFile::TestConstants::TestBase.suite
82
83
  suite << TestJavaClass::TestClassFile::TestConstantPool.suite
83
84
  suite << TestJavaClass::TestClassFile::TestReferences.suite
84
- suite << TestJavaClass::TestClassFile::TestAccessFlags.suite
85
+ suite << TestJavaClass::TestClassFile::TestClassAccessFlags.suite
86
+ suite << TestJavaClass::TestClassFile::TestClassFileAttributes.suite
85
87
  suite << TestJavaClass::TestClassFile::TestJavaClassHeader.suite
86
88
  suite << TestJavaClass::TestClassFile::TestJavaClassHeaderAsJavaName.suite
87
89
 
metadata CHANGED
@@ -1,88 +1,97 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: javaclass
3
- version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease:
6
- segments:
7
- - 0
8
- - 4
9
- - 1
10
- version: 0.4.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.2
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Peter Kofler
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2015-05-30 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2020-09-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: rubyzip
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 57
29
- segments:
30
- - 0
31
- - 9
32
- - 1
18
+ - !ruby/object:Gem::Version
33
19
  version: 0.9.1
34
20
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rake
38
21
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
42
24
  - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 57
45
- segments:
46
- - 0
47
- - 8
48
- - 3
49
- version: 0.8.3
50
- type: :development
51
- version_requirements: *id002
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.
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.1
27
+ description: Provides access to the package, protected, and public fields and methods
28
+ of the classes passed to it together with a list of all outgoing references.
53
29
  email: peter dot kofler at code minus cop dot org
54
30
  executables: []
55
-
56
31
  extensions: []
57
-
58
- extra_rdoc_files:
32
+ extra_rdoc_files:
59
33
  - history.txt
60
34
  - license.txt
61
35
  - planned.txt
62
36
  - Readme.txt
63
37
  - thanks.txt
64
- files:
65
- - history.txt
66
- - license.txt
67
- - planned.txt
38
+ files:
39
+ - Rakefile
68
40
  - Readme.txt
69
- - thanks.txt
41
+ - dev/example_task.rb
42
+ - dev/saikuro_task.rb
43
+ - examples/chart_class_dependencies.rb
44
+ - examples/chart_module_dependencies.rb
45
+ - examples/check_interface_names.rb
46
+ - examples/corpus.rb
47
+ - examples/count_classes_in_modules.rb
48
+ - examples/cumulative_dependencies.rb
49
+ - examples/find_all_imported_types.rb
50
+ - examples/find_incoming_dependency_graph.rb
51
+ - examples/find_layers_of_modules.rb
52
+ - examples/find_referenced_modules.rb
53
+ - examples/find_unreferenced_classes.rb
54
+ - examples/generate_class_lists.rb
55
+ - examples/show_jar_api.rb
56
+ - examples/simple_usage.rb
57
+ - examples/test_corpus.rb
58
+ - history.txt
59
+ - javaclass.gemspec
60
+ - lib/generated/examples/chart_class_dependencies.txt
61
+ - lib/generated/examples/chart_module_dependencies.txt
62
+ - lib/generated/examples/check_interface_names.txt
63
+ - lib/generated/examples/count_classes_in_modules.txt
64
+ - lib/generated/examples/cumulative_dependencies.txt
65
+ - lib/generated/examples/find_all_imported_types.txt
66
+ - lib/generated/examples/find_incoming_dependency_graph.txt
67
+ - lib/generated/examples/find_layers_of_modules.txt
68
+ - lib/generated/examples/find_referenced_modules.txt
69
+ - lib/generated/examples/find_unreferenced_classes.txt
70
+ - lib/generated/examples/generate_class_lists.txt
71
+ - lib/generated/examples/show_jar_api.txt
72
+ - lib/generated/examples/simple_usage.txt
73
+ - lib/javaclass.rb
70
74
  - lib/javaclass/adder_tree.rb
71
75
  - lib/javaclass/analyse/dependencies.rb
72
76
  - lib/javaclass/analyse/transitive_dependencies.rb
73
- - lib/javaclass/classfile/access_flags.rb
74
77
  - lib/javaclass/classfile/access_flag_constants.rb
78
+ - lib/javaclass/classfile/access_flags.rb
79
+ - lib/javaclass/classfile/attributes/attributes.rb
80
+ - lib/javaclass/classfile/class_access_flags.rb
81
+ - lib/javaclass/classfile/class_file_attributes.rb
75
82
  - lib/javaclass/classfile/class_format_error.rb
76
83
  - lib/javaclass/classfile/class_magic.rb
77
84
  - lib/javaclass/classfile/class_version.rb
85
+ - lib/javaclass/classfile/constant_pool.rb
78
86
  - lib/javaclass/classfile/constants/base.rb
79
87
  - lib/javaclass/classfile/constants/double_reference.rb
80
88
  - lib/javaclass/classfile/constants/single_reference.rb
81
89
  - lib/javaclass/classfile/constants/value.rb
82
- - lib/javaclass/classfile/constant_pool.rb
90
+ - lib/javaclass/classfile/fields.rb
83
91
  - lib/javaclass/classfile/java_class_header.rb
84
92
  - lib/javaclass/classfile/java_class_header_as_java_name.rb
85
93
  - lib/javaclass/classfile/java_class_header_shortcuts.rb
94
+ - lib/javaclass/classfile/methods.rb
86
95
  - lib/javaclass/classfile/references.rb
87
96
  - lib/javaclass/classlist/class_entry.rb
88
97
  - lib/javaclass/classlist/jar_searcher.rb
@@ -105,8 +114,8 @@ files:
105
114
  - lib/javaclass/classscanner/imported_types.rb
106
115
  - lib/javaclass/classscanner/scanners.rb
107
116
  - lib/javaclass/delegate_directive.rb
108
- - lib/javaclass/dependencies/classpath_node.rb
109
117
  - lib/javaclass/dependencies/class_node.rb
118
+ - lib/javaclass/dependencies/classpath_node.rb
110
119
  - lib/javaclass/dependencies/edge.rb
111
120
  - lib/javaclass/dependencies/graph.rb
112
121
  - lib/javaclass/dependencies/graphml_serializer.rb
@@ -136,20 +145,24 @@ files:
136
145
  - lib/javaclass/string_20.rb
137
146
  - lib/javaclass/string_hexdump.rb
138
147
  - lib/javaclass/string_ux.rb
139
- - lib/javaclass.rb
148
+ - license.txt
149
+ - planned.txt
150
+ - rake_analysis.rb
151
+ - test/data/Object_102.class
152
+ - test/data/Runnable_102.class
153
+ - test/data/ShortClientData$1-4000Wert.class
140
154
  - test/data/access_flags/AccessFlagsTestAbstract.class
141
155
  - test/data/access_flags/AccessFlagsTestAbstract.java
142
156
  - test/data/access_flags/AccessFlagsTestAnnotation.class
143
157
  - test/data/access_flags/AccessFlagsTestAnnotation.java
158
+ - test/data/access_flags/AccessFlagsTestAnonym$1.class
159
+ - test/data/access_flags/AccessFlagsTestAnonym.class
160
+ - test/data/access_flags/AccessFlagsTestAnonym.java
144
161
  - test/data/access_flags/AccessFlagsTestEnum$1.class
145
162
  - test/data/access_flags/AccessFlagsTestEnum.class
146
163
  - test/data/access_flags/AccessFlagsTestEnum.java
147
164
  - test/data/access_flags/AccessFlagsTestFinal.class
148
165
  - test/data/access_flags/AccessFlagsTestFinal.java
149
- - test/data/access_flags/AccessFlagsTestInner$1.class
150
- - test/data/access_flags/AccessFlagsTestInner$2.class
151
- - test/data/access_flags/AccessFlagsTestInner.class
152
- - test/data/access_flags/AccessFlagsTestInner.java
153
166
  - test/data/access_flags/AccessFlagsTestInterface.class
154
167
  - test/data/access_flags/AccessFlagsTestInterface.java
155
168
  - test/data/access_flags/AccessFlagsTestPackage.class
@@ -175,6 +188,8 @@ files:
175
188
  - test/data/class_version/make.bat
176
189
  - test/data/constant_pool/ConstantPoolTest.class
177
190
  - test/data/constant_pool/ConstantPoolTest.java
191
+ - test/data/constant_pool/Java8_JavaFX_Animation$1_Tag15.class
192
+ - test/data/constant_pool/Java9_Activation_module-info_Tag20.class
178
193
  - test/data/constant_pool/make.bat
179
194
  - test/data/eclipse_classpath/classes/ClassVersionTest12.class
180
195
  - test/data/eclipse_classpath/lib/JarClasspathTest.jar
@@ -188,14 +203,14 @@ files:
188
203
  - test/data/jar_classpath/make.bat
189
204
  - test/data/jar_searcher/BrokenRunnable_102.class
190
205
  - test/data/jar_searcher/JarClassListTest.jar
191
- - test/data/jar_searcher/make.bat
192
206
  - test/data/jar_searcher/PublicClass.java
193
207
  - test/data/jar_searcher/PublicInterface.java
208
+ - test/data/jar_searcher/make.bat
194
209
  - test/data/java_home_classpath/jdk/jre/lib/rt.jar
195
210
  - test/data/java_home_classpath/jdk118/lib/classes.zip
196
- - test/data/java_home_classpath/jre/lib/rt.jar
197
211
  - test/data/java_home_classpath/jre-ext/lib/ext/ext.jar
198
212
  - test/data/java_home_classpath/jre-ext/lib/rt.jar
213
+ - test/data/java_home_classpath/jre/lib/rt.jar
199
214
  - test/data/java_home_classpath/make.bat
200
215
  - test/data/java_name_scanner/META-INF/MANIFEST.MF
201
216
  - test/data/java_name_scanner/plugin.xml
@@ -204,33 +219,31 @@ files:
204
219
  - test/data/maven_classpath/pom.xml
205
220
  - test/data/maven_classpath/target/classes/ClassVersionTest10.class
206
221
  - test/data/maven_classpath/target/test-classes/ClassVersionTest11.class
207
- - test/data/Object_102.class
208
- - test/data/references/make.bat
209
222
  - test/data/references/ReferencesTest.class
210
223
  - test/data/references/ReferencesTest.java
211
- - test/data/Runnable_102.class
212
- - test/data/ShortClientData$1-4000Wert.class
224
+ - test/data/references/make.bat
213
225
  - test/data/transitive_dependencies/A.class
214
226
  - test/data/transitive_dependencies/A.java
215
227
  - test/data/transitive_dependencies/B.class
216
228
  - test/data/transitive_dependencies/B.java
217
229
  - test/data/transitive_dependencies/C.class
218
230
  - test/data/transitive_dependencies/C.java
219
- - test/data/transitive_dependencies/make.bat
220
231
  - test/data/transitive_dependencies/Start.class
221
232
  - test/data/transitive_dependencies/Start.java
233
+ - test/data/transitive_dependencies/make.bat
222
234
  - test/data/zip_file/commons-math-2.2-broken.zip
223
235
  - test/data/zip_file/regenerated-with-7zip.zip
224
236
  - test/data/zip_file/regenerated-with-jar.zip
225
237
  - test/dot_classpath.rb
226
238
  - test/logging_folder_classpath.rb
227
239
  - test/setup.rb
228
- - test/test_access_flags.rb
229
240
  - test/test_adder_tree_node.rb
230
241
  - test/test_any_classpath.rb
231
242
  - test/test_base.rb
232
243
  - test/test_caching_classpath.rb
244
+ - test/test_class_access_flags.rb
233
245
  - test/test_class_entry.rb
246
+ - test/test_class_file_attributes.rb
234
247
  - test/test_class_magic.rb
235
248
  - test/test_class_version.rb
236
249
  - test/test_composite_classpath.rb
@@ -244,13 +257,13 @@ files:
244
257
  - test/test_imported_types.rb
245
258
  - test/test_jar_classpath.rb
246
259
  - test/test_jar_searcher.rb
247
- - test/test_javaclass_api.rb
248
260
  - test/test_java_class_header.rb
249
261
  - test/test_java_class_header_as_java_name.rb
250
262
  - test/test_java_home_classpath.rb
251
263
  - test/test_java_name.rb
252
264
  - test/test_java_name_factory.rb
253
265
  - test/test_java_name_scanner.rb
266
+ - test/test_javaclass_api.rb
254
267
  - test/test_list.rb
255
268
  - test/test_load_directive.rb
256
269
  - test/test_maven_artefact.rb
@@ -266,71 +279,42 @@ files:
266
279
  - test/test_yaml_serializer.rb
267
280
  - test/test_zip_file.rb
268
281
  - test/ts_all_tests.rb
269
- - examples/chart_class_dependencies.rb
270
- - examples/chart_module_dependencies.rb
271
- - examples/check_interface_names.rb
272
- - examples/corpus.rb
273
- - examples/count_classes_in_modules.rb
274
- - examples/cumulative_dependencies.rb
275
- - examples/find_all_imported_types.rb
276
- - examples/find_incoming_dependency_graph.rb
277
- - examples/find_layers_of_modules.rb
278
- - examples/find_referenced_modules.rb
279
- - examples/find_unreferenced_classes.rb
280
- - examples/generate_class_lists.rb
281
- - examples/show_jar_api.rb
282
- - examples/simple_usage.rb
283
- - examples/test_corpus.rb
284
- - javaclass.gemspec
285
- - Rakefile
286
- - rake_analysis.rb
287
- - dev/example_task.rb
288
- - dev/saikuro_task.rb
289
- homepage: https://bitbucket.org/pkofler/javaclass-rb
290
- licenses:
291
- - BSD
282
+ - thanks.txt
283
+ homepage: https://github.com/codecop/javaclass-rb
284
+ licenses:
285
+ - BSD-2-Clause
286
+ metadata: {}
292
287
  post_install_message:
293
- rdoc_options:
294
- - --title
295
- - javaclass-0.4.1 Documentation
296
- - --main
288
+ rdoc_options:
289
+ - "--title"
290
+ - javaclass-0.4.2 Documentation
291
+ - "--main"
297
292
  - Readme.txt
298
- require_paths:
293
+ require_paths:
299
294
  - lib
300
- required_ruby_version: !ruby/object:Gem::Requirement
301
- none: false
302
- requirements:
295
+ required_ruby_version: !ruby/object:Gem::Requirement
296
+ requirements:
303
297
  - - ">="
304
- - !ruby/object:Gem::Version
305
- hash: 59
306
- segments:
307
- - 1
308
- - 8
309
- - 6
298
+ - !ruby/object:Gem::Version
310
299
  version: 1.8.6
311
- required_rubygems_version: !ruby/object:Gem::Requirement
312
- none: false
313
- requirements:
300
+ required_rubygems_version: !ruby/object:Gem::Requirement
301
+ requirements:
314
302
  - - ">="
315
- - !ruby/object:Gem::Version
316
- hash: 3
317
- segments:
318
- - 0
319
- version: "0"
303
+ - !ruby/object:Gem::Version
304
+ version: '0'
320
305
  requirements: []
321
-
322
- rubyforge_project: javaclass
323
- rubygems_version: 1.8.8
306
+ rubygems_version: 3.0.3
324
307
  signing_key:
325
- specification_version: 3
308
+ specification_version: 4
326
309
  summary: Java class files parser and disassembler for Ruby
327
- test_files:
328
- - test/test_access_flags.rb
310
+ test_files:
329
311
  - test/test_adder_tree_node.rb
330
312
  - test/test_any_classpath.rb
331
313
  - test/test_base.rb
332
314
  - test/test_caching_classpath.rb
315
+ - test/test_class_access_flags.rb
333
316
  - test/test_class_entry.rb
317
+ - test/test_class_file_attributes.rb
334
318
  - test/test_class_magic.rb
335
319
  - test/test_class_version.rb
336
320
  - test/test_composite_classpath.rb
@@ -1,13 +0,0 @@
1
- package packagename;
2
-
3
- public class AccessFlagsTestInner {
4
-
5
- private Runnable anonymous = new Runnable() {
6
- public void run() { }
7
- };
8
-
9
- private static Runnable staticAnonymous = new Runnable() {
10
- public void run() { }
11
- };
12
-
13
- }