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.
- data/Rakefile +67 -56
- data/Readme.txt +42 -39
- data/example_task.rb +172 -0
- data/examples/check_interface_names.rb +44 -0
- data/examples/corpus.rb +19 -0
- data/examples/count_classes_in_modules.rb +38 -0
- data/examples/cumulative_dependencies.rb +39 -0
- data/examples/find_all_imported_types.rb +44 -0
- data/examples/find_referenced_modules.rb +53 -0
- data/examples/find_unreferenced_classes.rb +65 -0
- data/examples/generate_class_lists.rb +67 -43
- data/examples/profiler_scratchpad.rb +33 -0
- data/examples/simple_usage.rb +42 -0
- data/history.txt +29 -7
- data/javaclass.gemspec +31 -0
- data/lib/javaclass/adder_tree.rb +92 -0
- data/lib/javaclass/analyse/dependencies.rb +52 -0
- data/lib/javaclass/{metric/metrics.txt → analyse/ideas.txt} +2 -2
- data/lib/javaclass/analyse/transitive_dependencies.rb +52 -0
- data/lib/javaclass/classfile/access_flag_constants.rb +24 -0
- data/lib/javaclass/classfile/access_flags.rb +49 -26
- data/lib/javaclass/classfile/class_format_error.rb +37 -0
- data/lib/javaclass/classfile/class_magic.rb +16 -8
- data/lib/javaclass/classfile/class_version.rb +19 -25
- data/lib/javaclass/classfile/constant_pool.rb +110 -45
- data/lib/javaclass/classfile/constants/base.rb +33 -12
- data/lib/javaclass/classfile/constants/double_reference.rb +55 -41
- data/lib/javaclass/classfile/constants/single_reference.rb +29 -21
- data/lib/javaclass/classfile/constants/value.rb +43 -33
- data/lib/javaclass/classfile/java_class_header.rb +72 -46
- data/lib/javaclass/classfile/java_class_header_as_java_name.rb +33 -0
- data/lib/javaclass/classfile/java_class_header_shortcuts.rb +19 -0
- data/lib/javaclass/classfile/references.rb +21 -19
- data/lib/javaclass/classlist/class_entry.rb +26 -27
- data/lib/javaclass/classlist/jar_searcher.rb +34 -25
- data/lib/javaclass/classlist/list.rb +31 -31
- data/lib/javaclass/classlist/package_entry.rb +25 -24
- data/lib/javaclass/classpath/any_classpath.rb +48 -0
- data/lib/javaclass/classpath/class_not_found_error.rb +20 -0
- data/lib/javaclass/classpath/classpaths.txt +2 -2
- data/lib/javaclass/classpath/composite_classpath.rb +56 -54
- data/lib/javaclass/classpath/convention_classpath.rb +38 -0
- data/lib/javaclass/classpath/eclipse_classpath.rb +74 -0
- data/lib/javaclass/classpath/factory.rb +65 -0
- data/lib/javaclass/classpath/file_classpath.rb +47 -0
- data/lib/javaclass/classpath/folder_classpath.rb +42 -44
- data/lib/javaclass/classpath/jar_classpath.rb +91 -52
- data/lib/javaclass/classpath/java_home_classpath.rb +24 -13
- data/lib/javaclass/classpath/maven_classpath.rb +44 -0
- data/lib/javaclass/classpath/temporary_unpacker.rb +111 -0
- data/lib/javaclass/classpath/tracking_classpath.rb +144 -0
- data/lib/javaclass/classscanner/ideas.txt +3 -0
- data/lib/javaclass/classscanner/imported_types.rb +29 -0
- data/lib/javaclass/classscanner/scanners.rb +29 -0
- data/lib/javaclass/delegate_directive.rb +15 -0
- data/lib/javaclass/dsl/caching_classpath.rb +38 -0
- data/lib/javaclass/dsl/classpath_analysers.rb +27 -0
- data/lib/javaclass/dsl/java_name_factory.rb +79 -0
- data/lib/javaclass/dsl/loader.rb +42 -0
- data/lib/javaclass/dsl/loading_classpath.rb +53 -0
- data/lib/javaclass/dsl/mixin.rb +54 -0
- data/lib/javaclass/gems/zip_file.rb +154 -0
- data/lib/javaclass/java_language.rb +50 -0
- data/lib/javaclass/java_name.rb +329 -55
- data/lib/javaclass/java_name_scanner.rb +95 -0
- data/lib/javaclass/resources/iso_3166_countries.txt +240 -0
- data/lib/javaclass/resources/jdk0_packages.txt +6 -0
- data/lib/javaclass/resources/jdk1_packages.txt +6 -0
- data/lib/javaclass/resources/jdk2_packages.txt +4 -0
- data/lib/javaclass/resources/jdk3_packages.txt +6 -0
- data/lib/javaclass/resources/jdk4_packages.txt +22 -0
- data/lib/javaclass/resources/jdk5_packages.txt +5 -0
- data/lib/javaclass/resources/jdk6_packages.txt +7 -0
- data/lib/javaclass/resources/jdk7_packages.txt +0 -0
- data/lib/javaclass/resources/jdk_packages.txt +53 -0
- data/lib/javaclass/resources/reserved_words.txt +50 -0
- data/lib/javaclass/string_hexdump.rb +76 -0
- data/lib/javaclass/string_ux.rb +21 -10
- data/lib/javaclass.rb +16 -41
- data/license.txt +28 -0
- data/planned.txt +13 -0
- data/test/data/Object_102.class +0 -0
- data/test/data/Runnable_102.class +0 -0
- data/test/data/access_flags/AccessFlagsTestAnnotation.class +0 -0
- data/test/data/access_flags/AccessFlagsTestAnnotation.java +3 -0
- data/test/data/access_flags/AccessFlagsTestEnum$1.class +0 -0
- data/test/data/access_flags/AccessFlagsTestEnum.class +0 -0
- data/test/data/access_flags/AccessFlagsTestEnum.java +6 -0
- data/test/data/access_flags/AccessFlagsTestInner$1.class +0 -0
- data/test/data/access_flags/AccessFlagsTestInner$2.class +0 -0
- data/test/data/access_flags/AccessFlagsTestInner.class +0 -0
- data/test/data/access_flags/AccessFlagsTestInner.java +13 -0
- data/test/data/access_flags/AccessFlagsTestPackage.class +0 -0
- data/test/data/access_flags/AccessFlagsTestPackage.java +1 -1
- data/test/data/api/packagename/AccessFlagsTestPublic.class +0 -0
- data/test/data/class_version/ClassVersionTest17.class +0 -0
- data/test/data/class_version/make.bat +6 -2
- data/test/data/eclipse_classpath/classes/ClassVersionTest12.class +0 -0
- data/test/data/eclipse_classpath/lib/JarClasspathTest.jar +0 -0
- data/test/data/eclipse_classpath/test-classes/ClassVersionTest13.class +0 -0
- data/test/data/folder_classpath/{JarClasspathTestFolder → classes}/ClassVersionTest10.class +0 -0
- data/test/data/folder_classpath/{JarClasspathTestFolder → classes}/package/ClassVersionTest11.class +0 -0
- data/test/data/jar_classpath/JarClasspathTest.jar +0 -0
- data/test/data/jar_classpath/JarClasspathTest.zip +0 -0
- data/test/data/jar_classpath/JarClasspathTestManifest.jar +0 -0
- data/test/data/jar_classpath/JarClasspathTestMultiManifest.jar +0 -0
- data/test/data/jar_classpath/make.bat +6 -2
- data/test/data/jar_searcher/BrokenRunnable_102.class +0 -0
- data/test/data/java_home_classpath/jdk118/lib/classes.zip +0 -0
- data/test/data/java_name_scanner/META-INF/MANIFEST.MF +12 -0
- data/test/data/java_name_scanner/plugin.xml +18 -0
- data/test/data/maven_classpath/module/pom.xml +8 -0
- data/test/data/maven_classpath/module/target/classes/ClassVersionTest12.class +0 -0
- data/test/data/maven_classpath/pom.xml +8 -0
- data/test/data/maven_classpath/target/classes/ClassVersionTest10.class +0 -0
- data/test/data/maven_classpath/target/test-classes/ClassVersionTest11.class +0 -0
- data/test/data/transitive_dependencies/A.class +0 -0
- data/test/data/transitive_dependencies/A.java +5 -0
- data/test/data/transitive_dependencies/B.class +0 -0
- data/test/data/transitive_dependencies/B.java +3 -0
- data/test/data/transitive_dependencies/C.class +0 -0
- data/test/data/transitive_dependencies/C.java +3 -0
- data/test/data/transitive_dependencies/Start.class +0 -0
- data/test/data/transitive_dependencies/Start.java +4 -0
- data/test/data/transitive_dependencies/make.bat +3 -0
- data/test/data/zip_file/commons-math-2.2-broken.zip +0 -0
- data/test/data/zip_file/regenerated-with-7zip.zip +0 -0
- data/test/data/zip_file/regenerated-with-jar.zip +0 -0
- data/test/dot_classpath.rb +33 -0
- data/test/logging_folder_classpath.rb +19 -0
- data/test/setup.rb +1 -1
- data/test/test_access_flags.rb +58 -32
- data/test/test_adder_tree.rb +78 -0
- data/test/test_any_classpath.rb +39 -0
- data/test/test_base.rb +9 -7
- data/test/test_caching_classpath.rb +41 -0
- data/test/test_class_entry.rb +60 -60
- data/test/test_class_magic.rb +31 -0
- data/test/test_class_version.rb +25 -25
- data/test/test_composite_classpath.rb +22 -23
- data/test/test_constant_pool.rb +37 -13
- data/test/test_convention_classpath.rb +39 -0
- data/test/test_eclipse_classpath.rb +73 -0
- data/test/test_factory.rb +61 -0
- data/test/test_folder_classpath.rb +26 -10
- data/test/test_imported_types.rb +34 -0
- data/test/test_jar_classpath.rb +29 -14
- data/test/test_jar_searcher.rb +27 -14
- data/test/test_java_class_header.rb +22 -10
- data/test/test_java_class_header_as_java_name.rb +41 -0
- data/test/test_java_home_classpath.rb +17 -11
- data/test/test_java_name.rb +204 -64
- data/test/test_java_name_factory.rb +52 -0
- data/test/test_java_name_scanner.rb +24 -0
- data/test/test_javaclass_api.rb +43 -0
- data/test/test_list.rb +58 -44
- data/test/test_load_directive.rb +34 -0
- data/test/test_maven_classpath.rb +46 -0
- data/test/test_package_entry.rb +27 -22
- data/test/test_references.rb +14 -14
- data/test/test_string_hexdump.rb +24 -0
- data/test/test_string_ux.rb +18 -106
- data/test/test_tracking_classpath.rb +112 -0
- data/test/test_transitive_dependencies.rb +31 -0
- data/test/test_unpacking_jar_classpath.rb +43 -0
- data/test/test_zip_file.rb +33 -0
- data/test/ts_all_tests.rb +80 -18
- data/thanks.txt +2 -0
- metadata +151 -22
- data/lib/javaclass/classpath/port_ClassPathEntry.java +0 -202
- data/lib/javaclass/classpath/port_ClassPathEntryFactory.java +0 -311
- data/lib/javaclass/classpath/port_DirectoryRepository.java +0 -24
- data/lib/javaclass/metric/ccd.rb +0 -68
- data/lib/javaclass/metric/class_usage.rb +0 -41
- 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
|
-
|
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__) + '/
|
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__) + '/
|
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
|
-
|
22
|
-
|
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
|
-
|
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::
|
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
|
-
#
|
51
|
-
suite << TestJavaClass::
|
52
|
-
suite << TestJavaClass::
|
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
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
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:
|
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:
|
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
|
-
|
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/
|
96
|
-
- lib/javaclass/classpath/
|
97
|
-
- lib/javaclass/classpath/
|
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/
|
100
|
-
- lib/javaclass/
|
101
|
-
- lib/javaclass/
|
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/
|
132
|
-
- test/data/
|
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/
|
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
|
-
-
|
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.
|
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/
|
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
|
-
}
|