javaclass 0.0.3 → 0.0.4

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 (175) hide show
  1. data/Rakefile +67 -56
  2. data/Readme.txt +42 -39
  3. data/example_task.rb +172 -0
  4. data/examples/check_interface_names.rb +44 -0
  5. data/examples/corpus.rb +19 -0
  6. data/examples/count_classes_in_modules.rb +38 -0
  7. data/examples/cumulative_dependencies.rb +39 -0
  8. data/examples/find_all_imported_types.rb +44 -0
  9. data/examples/find_referenced_modules.rb +53 -0
  10. data/examples/find_unreferenced_classes.rb +65 -0
  11. data/examples/generate_class_lists.rb +67 -43
  12. data/examples/profiler_scratchpad.rb +33 -0
  13. data/examples/simple_usage.rb +42 -0
  14. data/history.txt +29 -7
  15. data/javaclass.gemspec +31 -0
  16. data/lib/javaclass/adder_tree.rb +92 -0
  17. data/lib/javaclass/analyse/dependencies.rb +52 -0
  18. data/lib/javaclass/{metric/metrics.txt → analyse/ideas.txt} +2 -2
  19. data/lib/javaclass/analyse/transitive_dependencies.rb +52 -0
  20. data/lib/javaclass/classfile/access_flag_constants.rb +24 -0
  21. data/lib/javaclass/classfile/access_flags.rb +49 -26
  22. data/lib/javaclass/classfile/class_format_error.rb +37 -0
  23. data/lib/javaclass/classfile/class_magic.rb +16 -8
  24. data/lib/javaclass/classfile/class_version.rb +19 -25
  25. data/lib/javaclass/classfile/constant_pool.rb +110 -45
  26. data/lib/javaclass/classfile/constants/base.rb +33 -12
  27. data/lib/javaclass/classfile/constants/double_reference.rb +55 -41
  28. data/lib/javaclass/classfile/constants/single_reference.rb +29 -21
  29. data/lib/javaclass/classfile/constants/value.rb +43 -33
  30. data/lib/javaclass/classfile/java_class_header.rb +72 -46
  31. data/lib/javaclass/classfile/java_class_header_as_java_name.rb +33 -0
  32. data/lib/javaclass/classfile/java_class_header_shortcuts.rb +19 -0
  33. data/lib/javaclass/classfile/references.rb +21 -19
  34. data/lib/javaclass/classlist/class_entry.rb +26 -27
  35. data/lib/javaclass/classlist/jar_searcher.rb +34 -25
  36. data/lib/javaclass/classlist/list.rb +31 -31
  37. data/lib/javaclass/classlist/package_entry.rb +25 -24
  38. data/lib/javaclass/classpath/any_classpath.rb +48 -0
  39. data/lib/javaclass/classpath/class_not_found_error.rb +20 -0
  40. data/lib/javaclass/classpath/classpaths.txt +2 -2
  41. data/lib/javaclass/classpath/composite_classpath.rb +56 -54
  42. data/lib/javaclass/classpath/convention_classpath.rb +38 -0
  43. data/lib/javaclass/classpath/eclipse_classpath.rb +74 -0
  44. data/lib/javaclass/classpath/factory.rb +65 -0
  45. data/lib/javaclass/classpath/file_classpath.rb +47 -0
  46. data/lib/javaclass/classpath/folder_classpath.rb +42 -44
  47. data/lib/javaclass/classpath/jar_classpath.rb +91 -52
  48. data/lib/javaclass/classpath/java_home_classpath.rb +24 -13
  49. data/lib/javaclass/classpath/maven_classpath.rb +44 -0
  50. data/lib/javaclass/classpath/temporary_unpacker.rb +111 -0
  51. data/lib/javaclass/classpath/tracking_classpath.rb +144 -0
  52. data/lib/javaclass/classscanner/ideas.txt +3 -0
  53. data/lib/javaclass/classscanner/imported_types.rb +29 -0
  54. data/lib/javaclass/classscanner/scanners.rb +29 -0
  55. data/lib/javaclass/delegate_directive.rb +15 -0
  56. data/lib/javaclass/dsl/caching_classpath.rb +38 -0
  57. data/lib/javaclass/dsl/classpath_analysers.rb +27 -0
  58. data/lib/javaclass/dsl/java_name_factory.rb +79 -0
  59. data/lib/javaclass/dsl/loader.rb +42 -0
  60. data/lib/javaclass/dsl/loading_classpath.rb +53 -0
  61. data/lib/javaclass/dsl/mixin.rb +54 -0
  62. data/lib/javaclass/gems/zip_file.rb +154 -0
  63. data/lib/javaclass/java_language.rb +50 -0
  64. data/lib/javaclass/java_name.rb +329 -55
  65. data/lib/javaclass/java_name_scanner.rb +95 -0
  66. data/lib/javaclass/resources/iso_3166_countries.txt +240 -0
  67. data/lib/javaclass/resources/jdk0_packages.txt +6 -0
  68. data/lib/javaclass/resources/jdk1_packages.txt +6 -0
  69. data/lib/javaclass/resources/jdk2_packages.txt +4 -0
  70. data/lib/javaclass/resources/jdk3_packages.txt +6 -0
  71. data/lib/javaclass/resources/jdk4_packages.txt +22 -0
  72. data/lib/javaclass/resources/jdk5_packages.txt +5 -0
  73. data/lib/javaclass/resources/jdk6_packages.txt +7 -0
  74. data/lib/javaclass/resources/jdk7_packages.txt +0 -0
  75. data/lib/javaclass/resources/jdk_packages.txt +53 -0
  76. data/lib/javaclass/resources/reserved_words.txt +50 -0
  77. data/lib/javaclass/string_hexdump.rb +76 -0
  78. data/lib/javaclass/string_ux.rb +21 -10
  79. data/lib/javaclass.rb +16 -41
  80. data/license.txt +28 -0
  81. data/planned.txt +13 -0
  82. data/test/data/Object_102.class +0 -0
  83. data/test/data/Runnable_102.class +0 -0
  84. data/test/data/access_flags/AccessFlagsTestAnnotation.class +0 -0
  85. data/test/data/access_flags/AccessFlagsTestAnnotation.java +3 -0
  86. data/test/data/access_flags/AccessFlagsTestEnum$1.class +0 -0
  87. data/test/data/access_flags/AccessFlagsTestEnum.class +0 -0
  88. data/test/data/access_flags/AccessFlagsTestEnum.java +6 -0
  89. data/test/data/access_flags/AccessFlagsTestInner$1.class +0 -0
  90. data/test/data/access_flags/AccessFlagsTestInner$2.class +0 -0
  91. data/test/data/access_flags/AccessFlagsTestInner.class +0 -0
  92. data/test/data/access_flags/AccessFlagsTestInner.java +13 -0
  93. data/test/data/access_flags/AccessFlagsTestPackage.class +0 -0
  94. data/test/data/access_flags/AccessFlagsTestPackage.java +1 -1
  95. data/test/data/api/packagename/AccessFlagsTestPublic.class +0 -0
  96. data/test/data/class_version/ClassVersionTest17.class +0 -0
  97. data/test/data/class_version/make.bat +6 -2
  98. data/test/data/eclipse_classpath/classes/ClassVersionTest12.class +0 -0
  99. data/test/data/eclipse_classpath/lib/JarClasspathTest.jar +0 -0
  100. data/test/data/eclipse_classpath/test-classes/ClassVersionTest13.class +0 -0
  101. data/test/data/folder_classpath/{JarClasspathTestFolder → classes}/ClassVersionTest10.class +0 -0
  102. data/test/data/folder_classpath/{JarClasspathTestFolder → classes}/package/ClassVersionTest11.class +0 -0
  103. data/test/data/jar_classpath/JarClasspathTest.jar +0 -0
  104. data/test/data/jar_classpath/JarClasspathTest.zip +0 -0
  105. data/test/data/jar_classpath/JarClasspathTestManifest.jar +0 -0
  106. data/test/data/jar_classpath/JarClasspathTestMultiManifest.jar +0 -0
  107. data/test/data/jar_classpath/make.bat +6 -2
  108. data/test/data/jar_searcher/BrokenRunnable_102.class +0 -0
  109. data/test/data/java_home_classpath/jdk118/lib/classes.zip +0 -0
  110. data/test/data/java_name_scanner/META-INF/MANIFEST.MF +12 -0
  111. data/test/data/java_name_scanner/plugin.xml +18 -0
  112. data/test/data/maven_classpath/module/pom.xml +8 -0
  113. data/test/data/maven_classpath/module/target/classes/ClassVersionTest12.class +0 -0
  114. data/test/data/maven_classpath/pom.xml +8 -0
  115. data/test/data/maven_classpath/target/classes/ClassVersionTest10.class +0 -0
  116. data/test/data/maven_classpath/target/test-classes/ClassVersionTest11.class +0 -0
  117. data/test/data/transitive_dependencies/A.class +0 -0
  118. data/test/data/transitive_dependencies/A.java +5 -0
  119. data/test/data/transitive_dependencies/B.class +0 -0
  120. data/test/data/transitive_dependencies/B.java +3 -0
  121. data/test/data/transitive_dependencies/C.class +0 -0
  122. data/test/data/transitive_dependencies/C.java +3 -0
  123. data/test/data/transitive_dependencies/Start.class +0 -0
  124. data/test/data/transitive_dependencies/Start.java +4 -0
  125. data/test/data/transitive_dependencies/make.bat +3 -0
  126. data/test/data/zip_file/commons-math-2.2-broken.zip +0 -0
  127. data/test/data/zip_file/regenerated-with-7zip.zip +0 -0
  128. data/test/data/zip_file/regenerated-with-jar.zip +0 -0
  129. data/test/dot_classpath.rb +33 -0
  130. data/test/logging_folder_classpath.rb +19 -0
  131. data/test/setup.rb +1 -1
  132. data/test/test_access_flags.rb +58 -32
  133. data/test/test_adder_tree.rb +78 -0
  134. data/test/test_any_classpath.rb +39 -0
  135. data/test/test_base.rb +9 -7
  136. data/test/test_caching_classpath.rb +41 -0
  137. data/test/test_class_entry.rb +60 -60
  138. data/test/test_class_magic.rb +31 -0
  139. data/test/test_class_version.rb +25 -25
  140. data/test/test_composite_classpath.rb +22 -23
  141. data/test/test_constant_pool.rb +37 -13
  142. data/test/test_convention_classpath.rb +39 -0
  143. data/test/test_eclipse_classpath.rb +73 -0
  144. data/test/test_factory.rb +61 -0
  145. data/test/test_folder_classpath.rb +26 -10
  146. data/test/test_imported_types.rb +34 -0
  147. data/test/test_jar_classpath.rb +29 -14
  148. data/test/test_jar_searcher.rb +27 -14
  149. data/test/test_java_class_header.rb +22 -10
  150. data/test/test_java_class_header_as_java_name.rb +41 -0
  151. data/test/test_java_home_classpath.rb +17 -11
  152. data/test/test_java_name.rb +204 -64
  153. data/test/test_java_name_factory.rb +52 -0
  154. data/test/test_java_name_scanner.rb +24 -0
  155. data/test/test_javaclass_api.rb +43 -0
  156. data/test/test_list.rb +58 -44
  157. data/test/test_load_directive.rb +34 -0
  158. data/test/test_maven_classpath.rb +46 -0
  159. data/test/test_package_entry.rb +27 -22
  160. data/test/test_references.rb +14 -14
  161. data/test/test_string_hexdump.rb +24 -0
  162. data/test/test_string_ux.rb +18 -106
  163. data/test/test_tracking_classpath.rb +112 -0
  164. data/test/test_transitive_dependencies.rb +31 -0
  165. data/test/test_unpacking_jar_classpath.rb +43 -0
  166. data/test/test_zip_file.rb +33 -0
  167. data/test/ts_all_tests.rb +80 -18
  168. data/thanks.txt +2 -0
  169. metadata +151 -22
  170. data/lib/javaclass/classpath/port_ClassPathEntry.java +0 -202
  171. data/lib/javaclass/classpath/port_ClassPathEntryFactory.java +0 -311
  172. data/lib/javaclass/classpath/port_DirectoryRepository.java +0 -24
  173. data/lib/javaclass/metric/ccd.rb +0 -68
  174. data/lib/javaclass/metric/class_usage.rb +0 -41
  175. data/test/test_javaclass.rb +0 -22
data/test/ts_all_tests.rb CHANGED
@@ -2,56 +2,118 @@
2
2
  require 'test/unit/testsuite'
3
3
  require 'test/unit' if $0 == __FILE__
4
4
 
5
+ # common
6
+ require File.dirname(__FILE__) + '/test_adder_tree'
5
7
  require File.dirname(__FILE__) + '/test_string_ux'
6
- # require File.dirname(__FILE__) + '/test_class_magic'
8
+ require File.dirname(__FILE__) + '/test_string_hexdump'
9
+ require File.dirname(__FILE__) + '/test_zip_file'
10
+ require File.dirname(__FILE__) + '/test_java_name'
11
+
12
+ # Java class parser
13
+ require File.dirname(__FILE__) + '/test_class_magic'
7
14
  require File.dirname(__FILE__) + '/test_class_version'
8
15
  require File.dirname(__FILE__) + '/test_base'
9
16
  require File.dirname(__FILE__) + '/test_constant_pool'
10
17
  require File.dirname(__FILE__) + '/test_references'
11
18
  require File.dirname(__FILE__) + '/test_access_flags'
12
19
  require File.dirname(__FILE__) + '/test_java_class_header'
13
- require File.dirname(__FILE__) + '/test_jar_classpath'
20
+ require File.dirname(__FILE__) + '/test_java_class_header_as_java_name'
21
+
22
+ # Java class scanner
23
+ require File.dirname(__FILE__) + '/test_imported_types'
24
+
25
+ # classpath parser
14
26
  require File.dirname(__FILE__) + '/test_folder_classpath'
15
- require File.dirname(__FILE__) + '/test_java_home_classpath'
27
+ require File.dirname(__FILE__) + '/test_jar_classpath'
28
+ require File.dirname(__FILE__) + '/test_unpacking_jar_classpath'
16
29
  require File.dirname(__FILE__) + '/test_composite_classpath'
30
+ require File.dirname(__FILE__) + '/test_java_home_classpath'
31
+ require File.dirname(__FILE__) + '/test_any_classpath'
32
+ require File.dirname(__FILE__) + '/test_maven_classpath'
33
+ require File.dirname(__FILE__) + '/test_eclipse_classpath'
34
+ require File.dirname(__FILE__) + '/test_convention_classpath'
35
+ require File.dirname(__FILE__) + '/test_tracking_classpath'
36
+ require File.dirname(__FILE__) + '/test_factory'
37
+
38
+ # classpath analyser
39
+ require File.dirname(__FILE__) + '/test_transitive_dependencies'
40
+
41
+ # class list
17
42
  require File.dirname(__FILE__) + '/test_jar_searcher'
18
43
  require File.dirname(__FILE__) + '/test_list'
19
44
  require File.dirname(__FILE__) + '/test_class_entry'
20
45
  require File.dirname(__FILE__) + '/test_package_entry'
21
- require File.dirname(__FILE__) + '/test_java_name.rb'
22
- require File.dirname(__FILE__) + '/test_javaclass.rb'
46
+
47
+ # DSL
48
+ require File.dirname(__FILE__) + '/test_java_name_factory'
49
+ require File.dirname(__FILE__) + '/test_java_name_scanner'
50
+ require File.dirname(__FILE__) + '/test_load_directive'
51
+ require File.dirname(__FILE__) + '/test_caching_classpath'
52
+
53
+ # API
54
+ require File.dirname(__FILE__) + '/test_javaclass_api'
23
55
 
24
56
  class TsAllTests
57
+
25
58
  def self.suite
26
59
  suite = Test::Unit::TestSuite.new("Ruby Java Class")
27
-
28
- suite << TestString.suite
29
-
60
+
61
+ # common
62
+ suite << TestAdderTree.suite
63
+ suite << TestStringUx.suite
64
+ suite << TestStringHexdump.suite
65
+ suite << TestJavaClass::TestGems::TestZipFile.suite
66
+ suite << TestJavaClass::TestPackageLogic.suite
67
+ suite << TestJavaClass::TestSimpleNameLogic.suite
68
+ suite << TestJavaClass::TestJavaQualifiedName.suite
69
+ suite << TestJavaClass::TestJavaVMName.suite
70
+ suite << TestJavaClass::TestJavaClassFile.suite
71
+
30
72
  # Java class parser
73
+ suite << TestJavaClass::TestClassFile::TestClassMagic.suite
31
74
  suite << TestJavaClass::TestClassFile::TestClassVersion.suite
32
75
  suite << TestJavaClass::TestClassFile::TestConstants::TestBase.suite
33
76
  suite << TestJavaClass::TestClassFile::TestConstantPool.suite
34
77
  suite << TestJavaClass::TestClassFile::TestReferences.suite
35
78
  suite << TestJavaClass::TestClassFile::TestAccessFlags.suite
36
79
  suite << TestJavaClass::TestClassFile::TestJavaClassHeader.suite
37
-
80
+ suite << TestJavaClass::TestClassFile::TestJavaClassHeaderAsJavaName.suite
81
+
82
+ # Java class scanner
83
+ suite << TestJavaClass::TestClassScanner::TestImportedTypes.suite
84
+
38
85
  # classpath parser
39
- suite << TestJavaClass::TestClasspath::TestJarClasspath.suite
40
86
  suite << TestJavaClass::TestClasspath::TestFolderClasspath.suite
41
- suite << TestJavaClass::TestClasspath::TestJavaHomeClasspath.suite
87
+ suite << TestJavaClass::TestClasspath::TestJarClasspath.suite
88
+ suite << TestJavaClass::TestClasspath::TestUnpackingJarClasspath.suite
42
89
  suite << TestJavaClass::TestClasspath::TestCompositeClasspath.suite
43
-
90
+ suite << TestJavaClass::TestClasspath::TestJavaHomeClasspath.suite
91
+ suite << TestJavaClass::TestClasspath::TestAnyClasspath.suite
92
+ suite << TestJavaClass::TestClasspath::TestMavenClasspath.suite
93
+ suite << TestJavaClass::TestClasspath::TestEclipseClasspath.suite
94
+ suite << TestJavaClass::TestClasspath::TestConventionClasspath.suite
95
+ suite << TestJavaClass::TestClasspath::TestTrackingFolderClasspath.suite
96
+ suite << TestJavaClass::TestClasspath::TestTrackingCompositeClasspath.suite
97
+ suite << TestJavaClass::TestClasspath::TestFactory.suite
98
+
99
+ # classpath analyser
100
+ suite << TestJavaClass::TestAnalyse::TestTransitiveDependencies.suite
101
+
44
102
  # class list
45
103
  suite << TestJavaClass::TestClassList::TestJarSearcher.suite
46
104
  suite << TestJavaClass::TestClassList::TestList.suite
47
105
  suite << TestJavaClass::TestClassList::TestClassEntry.suite
48
106
  suite << TestJavaClass::TestClassList::TestPackageEntry.suite
49
-
50
- # general
51
- suite << TestJavaClass::TestJavaName.suite
52
- suite << TestJavaClass::TestJavaClassFacade.suite
53
-
107
+
108
+ # DSL
109
+ suite << TestJavaClass::TestDsl::TestJavaNameFactory.suite
110
+ suite << TestJavaClass::TestDsl::TestJavaNameScanner.suite
111
+ suite << TestJavaClass::TestDsl::TestLoadDirective.suite
112
+ suite << TestJavaClass::TestDsl::TestCachingClasspath.suite
113
+
114
+ # API
115
+ suite << TestJavaClass::TestJavaClassAPI.suite
54
116
  return suite
55
117
  end
56
-
118
+
57
119
  end
data/thanks.txt ADDED
@@ -0,0 +1,2 @@
1
+ <whom>
2
+ * <for what>
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Peter Kofler
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-03 00:00:00 +02:00
17
+ date: 2011-12-19 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -48,7 +48,7 @@ dependencies:
48
48
  type: :development
49
49
  version_requirements: *id002
50
50
  - !ruby/object:Gem::Dependency
51
- name: ZenTest
51
+ name: rcov
52
52
  prerelease: false
53
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
54
  none: false
@@ -56,10 +56,11 @@ dependencies:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
58
  segments:
59
- - 4
60
- - 4
61
59
  - 0
62
- version: 4.4.0
60
+ - 8
61
+ - 1
62
+ - 2
63
+ version: 0.8.1.2
63
64
  type: :development
64
65
  version_requirements: *id003
65
66
  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.
@@ -69,11 +70,24 @@ executables: []
69
70
  extensions: []
70
71
 
71
72
  extra_rdoc_files:
72
- - Readme.txt
73
73
  - history.txt
74
+ - license.txt
75
+ - planned.txt
76
+ - Readme.txt
77
+ - thanks.txt
74
78
  files:
79
+ - history.txt
80
+ - license.txt
81
+ - planned.txt
75
82
  - Readme.txt
83
+ - thanks.txt
84
+ - lib/javaclass/adder_tree.rb
85
+ - lib/javaclass/analyse/dependencies.rb
86
+ - lib/javaclass/analyse/ideas.txt
87
+ - lib/javaclass/analyse/transitive_dependencies.rb
76
88
  - lib/javaclass/classfile/access_flags.rb
89
+ - lib/javaclass/classfile/access_flag_constants.rb
90
+ - lib/javaclass/classfile/class_format_error.rb
77
91
  - lib/javaclass/classfile/class_magic.rb
78
92
  - lib/javaclass/classfile/class_version.rb
79
93
  - lib/javaclass/classfile/constants/base.rb
@@ -82,29 +96,68 @@ files:
82
96
  - lib/javaclass/classfile/constants/value.rb
83
97
  - lib/javaclass/classfile/constant_pool.rb
84
98
  - lib/javaclass/classfile/java_class_header.rb
99
+ - lib/javaclass/classfile/java_class_header_as_java_name.rb
100
+ - lib/javaclass/classfile/java_class_header_shortcuts.rb
85
101
  - lib/javaclass/classfile/references.rb
86
102
  - lib/javaclass/classlist/class_entry.rb
87
103
  - lib/javaclass/classlist/jar_searcher.rb
88
104
  - lib/javaclass/classlist/list.rb
89
105
  - lib/javaclass/classlist/package_entry.rb
106
+ - lib/javaclass/classpath/any_classpath.rb
90
107
  - lib/javaclass/classpath/classpaths.txt
108
+ - lib/javaclass/classpath/class_not_found_error.rb
91
109
  - lib/javaclass/classpath/composite_classpath.rb
110
+ - lib/javaclass/classpath/convention_classpath.rb
111
+ - lib/javaclass/classpath/eclipse_classpath.rb
112
+ - lib/javaclass/classpath/factory.rb
113
+ - lib/javaclass/classpath/file_classpath.rb
92
114
  - lib/javaclass/classpath/folder_classpath.rb
93
115
  - lib/javaclass/classpath/jar_classpath.rb
94
116
  - lib/javaclass/classpath/java_home_classpath.rb
95
- - lib/javaclass/classpath/port_ClassPathEntry.java
96
- - lib/javaclass/classpath/port_ClassPathEntryFactory.java
97
- - lib/javaclass/classpath/port_DirectoryRepository.java
117
+ - lib/javaclass/classpath/maven_classpath.rb
118
+ - lib/javaclass/classpath/temporary_unpacker.rb
119
+ - lib/javaclass/classpath/tracking_classpath.rb
120
+ - lib/javaclass/classscanner/ideas.txt
121
+ - lib/javaclass/classscanner/imported_types.rb
122
+ - lib/javaclass/classscanner/scanners.rb
123
+ - lib/javaclass/delegate_directive.rb
124
+ - lib/javaclass/dsl/caching_classpath.rb
125
+ - lib/javaclass/dsl/classpath_analysers.rb
126
+ - lib/javaclass/dsl/java_name_factory.rb
127
+ - lib/javaclass/dsl/loader.rb
128
+ - lib/javaclass/dsl/loading_classpath.rb
129
+ - lib/javaclass/dsl/mixin.rb
130
+ - lib/javaclass/gems/zip_file.rb
131
+ - lib/javaclass/java_language.rb
98
132
  - lib/javaclass/java_name.rb
99
- - lib/javaclass/metric/ccd.rb
100
- - lib/javaclass/metric/class_usage.rb
101
- - lib/javaclass/metric/metrics.txt
133
+ - lib/javaclass/java_name_scanner.rb
134
+ - lib/javaclass/resources/iso_3166_countries.txt
135
+ - lib/javaclass/resources/jdk0_packages.txt
136
+ - lib/javaclass/resources/jdk1_packages.txt
137
+ - lib/javaclass/resources/jdk2_packages.txt
138
+ - lib/javaclass/resources/jdk3_packages.txt
139
+ - lib/javaclass/resources/jdk4_packages.txt
140
+ - lib/javaclass/resources/jdk5_packages.txt
141
+ - lib/javaclass/resources/jdk6_packages.txt
142
+ - lib/javaclass/resources/jdk7_packages.txt
143
+ - lib/javaclass/resources/jdk_packages.txt
144
+ - lib/javaclass/resources/reserved_words.txt
145
+ - lib/javaclass/string_hexdump.rb
102
146
  - lib/javaclass/string_ux.rb
103
147
  - lib/javaclass.rb
104
148
  - test/data/access_flags/AccessFlagsTestAbstract.class
105
149
  - test/data/access_flags/AccessFlagsTestAbstract.java
150
+ - test/data/access_flags/AccessFlagsTestAnnotation.class
151
+ - test/data/access_flags/AccessFlagsTestAnnotation.java
152
+ - test/data/access_flags/AccessFlagsTestEnum$1.class
153
+ - test/data/access_flags/AccessFlagsTestEnum.class
154
+ - test/data/access_flags/AccessFlagsTestEnum.java
106
155
  - test/data/access_flags/AccessFlagsTestFinal.class
107
156
  - test/data/access_flags/AccessFlagsTestFinal.java
157
+ - test/data/access_flags/AccessFlagsTestInner$1.class
158
+ - test/data/access_flags/AccessFlagsTestInner$2.class
159
+ - test/data/access_flags/AccessFlagsTestInner.class
160
+ - test/data/access_flags/AccessFlagsTestInner.java
108
161
  - test/data/access_flags/AccessFlagsTestInterface.class
109
162
  - test/data/access_flags/AccessFlagsTestInterface.java
110
163
  - test/data/access_flags/AccessFlagsTestPackage.class
@@ -116,6 +169,7 @@ files:
116
169
  - test/data/access_flags/AccessFlagsTestPublic.java
117
170
  - test/data/access_flags/AccessFlagsTestPublic_javap.txt
118
171
  - test/data/access_flags/make.bat
172
+ - test/data/api/packagename/AccessFlagsTestPublic.class
119
173
  - test/data/class_version/ClassVersionTest.java
120
174
  - test/data/class_version/ClassVersionTest10.class
121
175
  - test/data/class_version/ClassVersionTest11.class
@@ -124,60 +178,117 @@ files:
124
178
  - test/data/class_version/ClassVersionTest14.class
125
179
  - test/data/class_version/ClassVersionTest15.class
126
180
  - test/data/class_version/ClassVersionTest16.class
181
+ - test/data/class_version/ClassVersionTest17.class
127
182
  - test/data/class_version/make.bat
128
183
  - test/data/constant_pool/ConstantPoolTest.class
129
184
  - test/data/constant_pool/ConstantPoolTest.java
130
185
  - test/data/constant_pool/make.bat
131
- - test/data/folder_classpath/JarClasspathTestFolder/ClassVersionTest10.class
132
- - test/data/folder_classpath/JarClasspathTestFolder/package/ClassVersionTest11.class
186
+ - test/data/eclipse_classpath/classes/ClassVersionTest12.class
187
+ - test/data/eclipse_classpath/lib/JarClasspathTest.jar
188
+ - test/data/eclipse_classpath/test-classes/ClassVersionTest13.class
189
+ - test/data/folder_classpath/classes/ClassVersionTest10.class
190
+ - test/data/folder_classpath/classes/package/ClassVersionTest11.class
133
191
  - test/data/jar_classpath/JarClasspathTest.jar
134
192
  - test/data/jar_classpath/JarClasspathTest.zip
135
193
  - test/data/jar_classpath/JarClasspathTestManifest.jar
136
194
  - test/data/jar_classpath/JarClasspathTestMultiManifest.jar
137
195
  - test/data/jar_classpath/make.bat
196
+ - test/data/jar_searcher/BrokenRunnable_102.class
138
197
  - test/data/jar_searcher/JarClassListTest.jar
139
198
  - test/data/jar_searcher/make.bat
140
199
  - test/data/jar_searcher/PublicClass.java
141
200
  - test/data/jar_searcher/PublicInterface.java
142
201
  - test/data/java_home_classpath/jdk/jre/lib/rt.jar
202
+ - test/data/java_home_classpath/jdk118/lib/classes.zip
143
203
  - test/data/java_home_classpath/jre/lib/rt.jar
144
204
  - test/data/java_home_classpath/jre-ext/lib/ext/ext.jar
145
205
  - test/data/java_home_classpath/jre-ext/lib/rt.jar
146
206
  - test/data/java_home_classpath/make.bat
207
+ - test/data/java_name_scanner/META-INF/MANIFEST.MF
208
+ - test/data/java_name_scanner/plugin.xml
209
+ - test/data/maven_classpath/module/pom.xml
210
+ - test/data/maven_classpath/module/target/classes/ClassVersionTest12.class
211
+ - test/data/maven_classpath/pom.xml
212
+ - test/data/maven_classpath/target/classes/ClassVersionTest10.class
213
+ - test/data/maven_classpath/target/test-classes/ClassVersionTest11.class
214
+ - test/data/Object_102.class
147
215
  - test/data/references/make.bat
148
216
  - test/data/references/ReferencesTest.class
149
217
  - test/data/references/ReferencesTest.java
218
+ - test/data/Runnable_102.class
150
219
  - test/data/ShortClientData$1-4000Wert.class
220
+ - test/data/transitive_dependencies/A.class
221
+ - test/data/transitive_dependencies/A.java
222
+ - test/data/transitive_dependencies/B.class
223
+ - test/data/transitive_dependencies/B.java
224
+ - test/data/transitive_dependencies/C.class
225
+ - test/data/transitive_dependencies/C.java
226
+ - test/data/transitive_dependencies/make.bat
227
+ - test/data/transitive_dependencies/Start.class
228
+ - test/data/transitive_dependencies/Start.java
229
+ - test/data/zip_file/commons-math-2.2-broken.zip
230
+ - test/data/zip_file/regenerated-with-7zip.zip
231
+ - test/data/zip_file/regenerated-with-jar.zip
232
+ - test/dot_classpath.rb
233
+ - test/logging_folder_classpath.rb
151
234
  - test/setup.rb
152
235
  - test/test_access_flags.rb
236
+ - test/test_adder_tree.rb
237
+ - test/test_any_classpath.rb
153
238
  - test/test_base.rb
239
+ - test/test_caching_classpath.rb
154
240
  - test/test_class_entry.rb
241
+ - test/test_class_magic.rb
155
242
  - test/test_class_version.rb
156
243
  - test/test_composite_classpath.rb
157
244
  - test/test_constant_pool.rb
245
+ - test/test_convention_classpath.rb
246
+ - test/test_eclipse_classpath.rb
247
+ - test/test_factory.rb
158
248
  - test/test_folder_classpath.rb
249
+ - test/test_imported_types.rb
159
250
  - test/test_jar_classpath.rb
160
251
  - test/test_jar_searcher.rb
161
- - test/test_javaclass.rb
252
+ - test/test_javaclass_api.rb
162
253
  - test/test_java_class_header.rb
254
+ - test/test_java_class_header_as_java_name.rb
163
255
  - test/test_java_home_classpath.rb
164
256
  - test/test_java_name.rb
257
+ - test/test_java_name_factory.rb
258
+ - test/test_java_name_scanner.rb
165
259
  - test/test_list.rb
260
+ - test/test_load_directive.rb
261
+ - test/test_maven_classpath.rb
166
262
  - test/test_package_entry.rb
167
263
  - test/test_references.rb
264
+ - test/test_string_hexdump.rb
168
265
  - test/test_string_ux.rb
266
+ - test/test_tracking_classpath.rb
267
+ - test/test_transitive_dependencies.rb
268
+ - test/test_unpacking_jar_classpath.rb
269
+ - test/test_zip_file.rb
169
270
  - test/ts_all_tests.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_referenced_modules.rb
277
+ - examples/find_unreferenced_classes.rb
170
278
  - examples/generate_class_lists.rb
171
- - history.txt
279
+ - examples/profiler_scratchpad.rb
280
+ - examples/simple_usage.rb
281
+ - javaclass.gemspec
172
282
  - Rakefile
283
+ - example_task.rb
173
284
  has_rdoc: true
174
285
  homepage: http://code.google.com/p/javaclass-rb/
175
- licenses: []
176
-
286
+ licenses:
287
+ - BSD
177
288
  post_install_message:
178
289
  rdoc_options:
179
290
  - --title
180
- - javaclass-0.0.3 Documentation
291
+ - javaclass-0.0.4 Documentation
181
292
  - --main
182
293
  - Readme.txt
183
294
  require_paths:
@@ -209,19 +320,37 @@ specification_version: 3
209
320
  summary: A parser and disassembler for Java class files
210
321
  test_files:
211
322
  - test/test_access_flags.rb
323
+ - test/test_adder_tree.rb
324
+ - test/test_any_classpath.rb
212
325
  - test/test_base.rb
326
+ - test/test_caching_classpath.rb
213
327
  - test/test_class_entry.rb
328
+ - test/test_class_magic.rb
214
329
  - test/test_class_version.rb
215
330
  - test/test_composite_classpath.rb
216
331
  - test/test_constant_pool.rb
332
+ - test/test_convention_classpath.rb
333
+ - test/test_eclipse_classpath.rb
334
+ - test/test_factory.rb
217
335
  - test/test_folder_classpath.rb
336
+ - test/test_imported_types.rb
218
337
  - test/test_jar_classpath.rb
219
338
  - test/test_jar_searcher.rb
220
- - test/test_javaclass.rb
339
+ - test/test_javaclass_api.rb
221
340
  - test/test_java_class_header.rb
341
+ - test/test_java_class_header_as_java_name.rb
222
342
  - test/test_java_home_classpath.rb
223
343
  - test/test_java_name.rb
344
+ - test/test_java_name_factory.rb
345
+ - test/test_java_name_scanner.rb
224
346
  - test/test_list.rb
347
+ - test/test_load_directive.rb
348
+ - test/test_maven_classpath.rb
225
349
  - test/test_package_entry.rb
226
350
  - test/test_references.rb
351
+ - test/test_string_hexdump.rb
227
352
  - test/test_string_ux.rb
353
+ - test/test_tracking_classpath.rb
354
+ - test/test_transitive_dependencies.rb
355
+ - test/test_unpacking_jar_classpath.rb
356
+ - test/test_zip_file.rb
@@ -1,202 +0,0 @@
1
- package at.kugel.tool.classes;
2
-
3
- // Kugel's "Java Code & Tools Library", Copyright (c) 1999-2004, Theossos Comp Group
4
- import java.io.File;
5
- import java.lang.reflect.Modifier;
6
- import java.util.zip.ZipEntry;
7
-
8
- /**
9
- * An entry of a class in the classpath. This contains the reference to the fully qualified name and where to find it.
10
- * @author Kugel, <i>Theossos Comp Group</i>
11
- * @version 1.00 - 13.03.2004
12
- * @since JDK1.2
13
- */
14
- public final class ClassPathEntry implements Comparable<ClassPathEntry>
15
- {
16
-
17
- public static final String CLASS_EXTENSION = ".class";
18
-
19
- /** Value to be set by factory if we want to check for public or all classes. */
20
- static boolean checkForPublic = true;
21
-
22
- public final String className;
23
- public final String packageName;
24
- public final File origin;
25
- public final boolean isInner;
26
- /** Ternary value. 0 = not checked, 1 = yes, -1 = no. */
27
- public final int isPublic;
28
-
29
- private boolean duplicated;
30
-
31
- public ClassPathEntry(String pClassName, String pPackageName, File pOrigin)
32
- {
33
- className = pClassName;
34
- packageName = pPackageName.intern();
35
- origin = pOrigin;
36
- isInner = (pClassName.indexOf('$') > -1);
37
-
38
- int ip = 0;
39
- if (checkForPublic)
40
- {
41
- try
42
- {
43
- // classloader does NOT resolve classes, i.e. no static thingies are run...
44
- if ((ClassLoader.getSystemClassLoader().loadClass(toString()).getModifiers() & Modifier.PUBLIC) > 0)
45
- {
46
- ip = 1;
47
- }
48
- else
49
- {
50
- ip = -1;
51
- }
52
- }
53
- catch (final ClassNotFoundException ex)
54
- {
55
- ip = 0;
56
- }
57
- catch (final LinkageError ex)
58
- {
59
- // ex.printStackTrace();
60
- // may be NoClassDefFoundError or ClassFormatError (if references to other),
61
- // or SecurityEx
62
- ip = 0;
63
- System.err.println("WARNING: could not load " + toString() + " (" + ex.toString() + ")");
64
- }
65
- }
66
- isPublic = ip;
67
-
68
- // System.out.println("found " + packageName + "." + className + " in " + pOrigin);
69
- }
70
-
71
- @Override
72
- public boolean equals(Object obj)
73
- {
74
- if (!(obj instanceof ClassPathEntry))
75
- {
76
- return false;
77
- }
78
-
79
- final ClassPathEntry ce = (ClassPathEntry) obj;
80
- return ce.className.equals(className) && ce.packageName.equals(packageName);
81
- }
82
-
83
- @Override
84
- public int hashCode()
85
- {
86
- return className.hashCode() ^ packageName.hashCode();
87
- }
88
-
89
- @Override
90
- public final String toString()
91
- {
92
- if (packageName.length() == 0)
93
- {
94
- return className;
95
- }
96
- return packageName + '.' + className;
97
- }
98
-
99
- public int compareTo(ClassPathEntry o)
100
- {
101
- return toString().compareTo(o.toString());
102
- }
103
-
104
- // --- static ---
105
-
106
- private static ClassPathEntry create(String pClass, String pPackage, File pOrigin)
107
- {
108
- return new ClassPathEntry(pClass, pPackage, pOrigin);
109
- }
110
-
111
- static ClassPathEntry createFromClassFile(File pClassPathBase, File pClassInFileSystem)
112
- {
113
- final String baseDirectory = pClassPathBase.getPath();
114
- final String fullName = pClassInFileSystem.getPath().substring(baseDirectory.length());
115
-
116
- // get the path
117
- String path;
118
- final int i = fullName.lastIndexOf(File.separatorChar);
119
- if (i > -1)
120
- {
121
- path = fullName.substring(0, i).replace(File.separatorChar, '.');
122
- }
123
- else
124
- {
125
- path = "";
126
- }
127
-
128
- // get the name
129
- String name;
130
- if (i > -1)
131
- {
132
- name = fullName.substring(i + 1);
133
- }
134
- else
135
- {
136
- throw new IllegalArgumentException("no classname in entry: " + fullName);
137
- }
138
-
139
- if (name.endsWith(CLASS_EXTENSION))
140
- {
141
- name = name.substring(0, name.length() - 6);
142
- }
143
- else
144
- {
145
- throw new IllegalArgumentException("no classs file: " + fullName);
146
- }
147
-
148
- return create(name, path, pClassInFileSystem);
149
- }
150
-
151
- static ClassPathEntry createFromZipEntry(File pZipFile, ZipEntry pClassInZip)
152
- {
153
- final char ZIP_PATH_CHAR = '/';
154
-
155
- final String fullName = pClassInZip.getName();
156
-
157
- // get the path
158
- String path;
159
- final int i = fullName.lastIndexOf(ZIP_PATH_CHAR);
160
- if (i > -1)
161
- {
162
- path = fullName.substring(0, i).replace(ZIP_PATH_CHAR, '.');
163
- }
164
- else
165
- {
166
- path = "";
167
- }
168
-
169
- // get the name
170
- String name;
171
- if (i > -1)
172
- {
173
- name = fullName.substring(i + 1);
174
- }
175
- else
176
- {
177
- name = fullName;
178
- }
179
-
180
- if (name.endsWith(CLASS_EXTENSION))
181
- {
182
- name = name.substring(0, name.length() - 6);
183
- }
184
- else
185
- {
186
- throw new IllegalArgumentException("no class file: " + fullName);
187
- }
188
-
189
- return create(name, path, pZipFile);
190
- }
191
-
192
- public boolean isDuplicated()
193
- {
194
- return duplicated;
195
- }
196
-
197
- public void setDuplicated(boolean b)
198
- {
199
- duplicated = b;
200
- }
201
-
202
- }