javaclass 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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
- }