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
Binary file
|
Binary file
|
@@ -3,11 +3,11 @@ if exist ClassVersionTest*.class del ClassVersionTest*.class
|
|
3
3
|
setlocal
|
4
4
|
|
5
5
|
call profile102
|
6
|
-
javac -classpath %CLASSPATH% ClassVersionTest.java
|
6
|
+
javac -classpath "%CLASSPATH%" ClassVersionTest.java
|
7
7
|
ren ClassVersionTest.class ClassVersionTest10.class
|
8
8
|
|
9
9
|
call profile118
|
10
|
-
javac -classpath %CLASSPATH% ClassVersionTest.java
|
10
|
+
javac -classpath "%CLASSPATH%" ClassVersionTest.java
|
11
11
|
ren ClassVersionTest.class ClassVersionTest11.class
|
12
12
|
|
13
13
|
call profile122
|
@@ -30,6 +30,10 @@ call profile160
|
|
30
30
|
javac ClassVersionTest.java
|
31
31
|
ren ClassVersionTest.class ClassVersionTest16.class
|
32
32
|
|
33
|
+
call profile170
|
34
|
+
javac ClassVersionTest.java
|
35
|
+
ren ClassVersionTest.class ClassVersionTest17.class
|
36
|
+
|
33
37
|
endlocal
|
34
38
|
|
35
39
|
pause
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
data/test/data/folder_classpath/{JarClasspathTestFolder → classes}/package/ClassVersionTest11.class
RENAMED
File without changes
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -3,12 +3,13 @@ if exist JarClasspathTest*.* del JarClasspathTest*.*
|
|
3
3
|
md JarClasspathTestFolder\package
|
4
4
|
copy ..\class_version\ClassVersionTest10.class JarClasspathTestFolder
|
5
5
|
copy ..\class_version\ClassVersionTest11.class JarClasspathTestFolder\package
|
6
|
+
copy ..\class_version\ClassVersionTest11.class .
|
6
7
|
|
7
8
|
cd JarClasspathTestFolder
|
8
9
|
jar -cf ..\JarClasspathTest.jar .
|
9
|
-
cd ..
|
10
10
|
|
11
|
-
call
|
11
|
+
call 7za a -bd -tzip ..\JarClasspathTest.zip ClassVersionTest10.class
|
12
|
+
cd ..
|
12
13
|
|
13
14
|
echo Class-Path: JarClasspathTest.jar > manifest.txt
|
14
15
|
jar -cfm JarClasspathTestManifest.jar manifest.txt ClassVersionTest11.class
|
@@ -21,4 +22,7 @@ echo lib/xercesImpl-2.5.jar lib/js-1.5R4.1.jar>> manifest.txt
|
|
21
22
|
jar -cfm JarClasspathTestMultiManifest.jar manifest.txt ClassVersionTest11.class
|
22
23
|
del manifest.txt
|
23
24
|
|
25
|
+
rmdir /S /Q JarClasspathTestFolder
|
26
|
+
del *.class
|
27
|
+
|
24
28
|
pause
|
Binary file
|
Binary file
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Manifest-Version: 1.0
|
2
|
+
Bundle-ManifestVersion: 2
|
3
|
+
Bundle-Name: Some Plug-in
|
4
|
+
Bundle-SymbolicName: some.plugin;singleton:=true
|
5
|
+
Bundle-Version: 1.0.0.qualifier
|
6
|
+
Bundle-Activator: some.plugin.Activator
|
7
|
+
Bundle-Vendor: Codecop
|
8
|
+
Require-Bundle: org.eclipse.core.runtime,
|
9
|
+
org.eclipse.ui
|
10
|
+
Bundle-ActivationPolicy: lazy
|
11
|
+
Bundle-ClassPath: .
|
12
|
+
Bundle-RequiredExecutionEnvironment: J2SE-1.5
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<?eclipse version="3.2"?>
|
3
|
+
<plugin>
|
4
|
+
<extension
|
5
|
+
point="org.eclipse.ui.commands">
|
6
|
+
<command
|
7
|
+
id="some..treeReOrder"
|
8
|
+
name="Re Order Event">
|
9
|
+
</command>
|
10
|
+
</extension>
|
11
|
+
<extension
|
12
|
+
point="some.sessionSecurityCheck">
|
13
|
+
<sessionSecurityCheck
|
14
|
+
class="some.PrivilegeCheck">
|
15
|
+
</sessionSecurityCheck>
|
16
|
+
</extension>
|
17
|
+
|
18
|
+
</plugin>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
4
|
+
<groupId>maven_classpath</groupId>
|
5
|
+
<artifactId>module</artifactId>
|
6
|
+
<version>0.0.1-SNAPSHOT</version>
|
7
|
+
<name>MavenClasspath Submodule</name>
|
8
|
+
</project>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
4
|
+
<groupId>maven_classpath</groupId>
|
5
|
+
<artifactId>maven_classpath</artifactId>
|
6
|
+
<version>0.0.1-SNAPSHOT</version>
|
7
|
+
<name>MavenClasspath</name>
|
8
|
+
</project>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module TestJavaClass
|
2
|
+
module TestClasspath
|
3
|
+
|
4
|
+
module DotClasspath
|
5
|
+
def create_dot_classpath
|
6
|
+
dot_classpath = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
7
|
+
<classpath>
|
8
|
+
<classpathentry kind=\"src\" path=\"src\" />
|
9
|
+
<classpathentry kind=\"src\" path=\"test\" output=\"test-classes\" />
|
10
|
+
<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER\" />
|
11
|
+
<classpathentry kind=\"lib\" path=\"lib/JarClasspathTest.jar\" />
|
12
|
+
<classpathentry kind=\"var\" path=\"TEST/jar_classpath/JarClasspathTest.zip\" />
|
13
|
+
<classpathentry kind=\"con\" path=\"org.eclipse.jdt.junit.JUNIT_CONTAINER/4\" />
|
14
|
+
<classpathentry kind=\"output\" path=\"classes\" />
|
15
|
+
</classpath>"
|
16
|
+
File.open(dot_classpath_file, "w") { |f| f.print dot_classpath }
|
17
|
+
end
|
18
|
+
|
19
|
+
def dot_classpath_file
|
20
|
+
File.join(eclipse_classpath, '.classpath')
|
21
|
+
end
|
22
|
+
|
23
|
+
def eclipse_classpath
|
24
|
+
"#{TEST_DATA_PATH}/eclipse_classpath"
|
25
|
+
end
|
26
|
+
|
27
|
+
def remove_dot_classpath
|
28
|
+
File.delete dot_classpath_file
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/classpath/folder_classpath'
|
3
|
+
|
4
|
+
module JavaClass
|
5
|
+
module Classpath
|
6
|
+
|
7
|
+
# Add a field +was_called+ to see if the load_binary was called.
|
8
|
+
class FolderClasspath
|
9
|
+
alias :__old_load_binary :load_binary
|
10
|
+
|
11
|
+
def load_binary(classname)
|
12
|
+
@was_called = true
|
13
|
+
__old_load_binary(classname)
|
14
|
+
end
|
15
|
+
attr_accessor :was_called
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/test/setup.rb
CHANGED
data/test/test_access_flags.rb
CHANGED
@@ -3,66 +3,92 @@ require 'javaclass/classfile/java_class_header'
|
|
3
3
|
|
4
4
|
module TestJavaClass
|
5
5
|
module TestClassFile
|
6
|
-
|
6
|
+
|
7
7
|
class TestAccessFlags < Test::Unit::TestCase
|
8
|
-
|
8
|
+
|
9
9
|
def setup
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
%w[Public Package Abstract Interface Final Enum Annotation
|
11
|
+
Public$Inner Public$StaticInner Public$InnerInterface Enum$1 Inner Inner$1 Inner$2].each do |t|
|
12
|
+
binary_data = load_class("access_flags/AccessFlagsTest#{t}")
|
13
|
+
clazz = JavaClass::ClassFile::JavaClassHeader.new(binary_data)
|
14
|
+
variable_name = t.sub(/Public\$/, 'public_').
|
15
|
+
sub(/Inner\$1/, 'anonymous').
|
16
|
+
sub(/Inner\$2/, 'static_anonymous').
|
17
|
+
sub(/Enum\$1/, 'enum_inner').
|
18
|
+
downcase
|
19
|
+
eval("@#{variable_name} = clazz.access_flags")
|
13
20
|
end
|
14
21
|
end
|
15
|
-
|
22
|
+
|
23
|
+
def test_flags_hex
|
24
|
+
assert_equal('0021', @public.flags_hex)
|
25
|
+
assert_equal('0020', @package.flags_hex)
|
26
|
+
end
|
27
|
+
|
16
28
|
def test_accessible_eh
|
17
29
|
assert(@public.accessible?)
|
18
30
|
assert(!@package.accessible?)
|
19
|
-
assert(@abstract.accessible?)
|
20
|
-
assert(@interface.accessible?)
|
21
|
-
assert(@final.accessible?)
|
22
31
|
end
|
23
|
-
|
32
|
+
|
24
33
|
def test_public_eh
|
25
34
|
assert(@public.public?)
|
26
|
-
|
27
|
-
|
35
|
+
assert(!@package.public?)
|
36
|
+
end
|
37
|
+
|
28
38
|
def test_interface_eh
|
29
39
|
assert(!@public.interface?)
|
30
|
-
assert(!@package.interface?)
|
31
40
|
assert(!@abstract.interface?)
|
32
41
|
assert(@interface.interface?)
|
33
|
-
assert(
|
34
|
-
assert(@
|
42
|
+
assert(@public_innerinterface.interface?)
|
43
|
+
assert(@annotation.interface?)
|
35
44
|
end
|
36
|
-
|
45
|
+
|
37
46
|
def test_abstract_eh
|
38
47
|
assert(!@public.abstract?)
|
39
|
-
assert(!@package.abstract?)
|
40
48
|
assert(@abstract.abstract?)
|
41
49
|
assert(@interface.abstract?)
|
42
|
-
assert(
|
43
|
-
assert(@
|
50
|
+
assert(@public_innerinterface.abstract?)
|
51
|
+
assert(@annotation.abstract?)
|
44
52
|
end
|
45
|
-
|
53
|
+
|
46
54
|
def test_final_eh
|
47
55
|
assert(!@public.final?)
|
48
|
-
assert(!@package.final?)
|
49
56
|
assert(!@abstract.final?)
|
50
57
|
assert(!@interface.final?)
|
51
58
|
assert(@final.final?)
|
59
|
+
assert(!@enum.final?) # because we have a inner class
|
60
|
+
assert(@enum_inner.final?)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_enum_eh
|
64
|
+
assert(!@public.enum?)
|
65
|
+
assert(@enum.enum?)
|
66
|
+
assert(@enum_inner.enum?)
|
67
|
+
end
|
68
|
+
|
69
|
+
# def test_inner_eh
|
70
|
+
# assert(!@public.inner?)
|
71
|
+
# assert(!@public_inner.inner?)
|
72
|
+
# assert(!@inner.inner?)
|
73
|
+
# assert(!@anonymous.inner?)
|
74
|
+
# assert(!@static_anonymous.inner?)
|
75
|
+
# assert(!@enum_inner.inner?)
|
76
|
+
# end
|
77
|
+
|
78
|
+
def test_annotation_eh
|
79
|
+
assert(!@public.annotation?)
|
80
|
+
assert(!@public_innerinterface.annotation?)
|
81
|
+
assert(!@interface.annotation?)
|
82
|
+
assert(@annotation.annotation?)
|
52
83
|
end
|
53
84
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
# assert(!@final.inner?)
|
60
|
-
# assert(@inner.inner?)
|
61
|
-
# assert(@staticinner.inner?)
|
62
|
-
# assert(@innerinterface.inner?)
|
63
|
-
# end
|
85
|
+
def test_class_new_jdk10_fix
|
86
|
+
flags = JavaClass::ClassFile::JavaClassHeader.new(load_class('Runnable_102')).access_flags
|
87
|
+
assert(flags.abstract?)
|
88
|
+
assert(flags.interface?)
|
89
|
+
end
|
64
90
|
|
65
91
|
end
|
66
|
-
|
92
|
+
|
67
93
|
end
|
68
94
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/adder_tree'
|
3
|
+
|
4
|
+
class TestAdderTree < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@tree = AdderTree.new(0)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_data
|
11
|
+
assert_equal(0, @tree.data)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_to_a
|
15
|
+
assert_equal([0], @tree.to_a)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_add
|
19
|
+
@tree.add(1)
|
20
|
+
assert_equal([0, [1]], @tree.to_a)
|
21
|
+
node = @tree.add(2)
|
22
|
+
assert_equal([0, [1, 2]], @tree.to_a)
|
23
|
+
|
24
|
+
node.add(3)
|
25
|
+
assert_equal([0, [1, 2, [3]]], @tree.to_a)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_size
|
29
|
+
assert_equal(1, @tree.size)
|
30
|
+
@tree.add(1)
|
31
|
+
assert_equal(2, @tree.size)
|
32
|
+
@tree.add(2)
|
33
|
+
assert_equal(3, @tree.size)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_levels
|
37
|
+
assert_equal(1, @tree.levels)
|
38
|
+
node = @tree.add(1)
|
39
|
+
assert_equal(2, @tree.levels)
|
40
|
+
node.add(2)
|
41
|
+
assert_equal(3, @tree.levels)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_children
|
45
|
+
assert_equal(0, @tree.children.size)
|
46
|
+
@tree.add(1)
|
47
|
+
assert_equal(1, @tree.children.size)
|
48
|
+
|
49
|
+
assert_equal(1, @tree.children[0].data)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_contain_eh_itself
|
53
|
+
assert(@tree.contain?(0))
|
54
|
+
assert_nil(@tree.contain?(1))
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_contain_eh
|
58
|
+
assert_nil(@tree.contain?(1))
|
59
|
+
@tree.add(1)
|
60
|
+
assert(@tree.contain?(1))
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_level
|
64
|
+
assert_equal(0, @tree.level)
|
65
|
+
node = @tree.add(1)
|
66
|
+
assert_equal(0, @tree.level)
|
67
|
+
assert_equal(1, node.level)
|
68
|
+
node.add(2)
|
69
|
+
assert_equal(1, node.level)
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_root
|
73
|
+
assert_equal(0, @tree.root.data)
|
74
|
+
node = @tree.add(1)
|
75
|
+
assert_equal(0, node.root.data)
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/classpath/any_classpath'
|
3
|
+
|
4
|
+
module TestJavaClass
|
5
|
+
module TestClasspath
|
6
|
+
|
7
|
+
class TestAnyClasspath < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def test_includes_eh
|
10
|
+
# @cpe = JavaClass::Classpath::AnyClasspath.new(TEST_DATA_PATH)
|
11
|
+
# # from folder
|
12
|
+
# assert(@cpe.includes?('access_flags.AccessFlagsTestAbstract'))
|
13
|
+
# # from jar, would have another package
|
14
|
+
# assert(@cpe.includes?('packagename/PublicClass'))
|
15
|
+
# # from jar, would have any package
|
16
|
+
# assert(@cpe.includes?('ClassVersionTest10'))
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_find_jars_direct
|
20
|
+
@cpe = JavaClass::Classpath::AnyClasspath.new("#{TEST_DATA_PATH}/jar_classpath")
|
21
|
+
assert_equal(4, @cpe.elements.size)
|
22
|
+
assert_equal(File.expand_path("#{TEST_DATA_PATH}/jar_classpath/JarClasspathTest.zip"), @cpe.elements[1].to_s)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_find_jars_recursive
|
26
|
+
@cpe = JavaClass::Classpath::AnyClasspath.new("#{TEST_DATA_PATH}/eclipse_classpath")
|
27
|
+
assert_equal(1, @cpe.elements.size)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_find_jars_single
|
31
|
+
@cpe = JavaClass::Classpath::AnyClasspath.new("#{TEST_DATA_PATH}/jar_classpath/JarClasspathTest.zip")
|
32
|
+
assert_equal(1, @cpe.elements.size)
|
33
|
+
assert_equal(File.expand_path("#{TEST_DATA_PATH}/jar_classpath/JarClasspathTest.zip"), @cpe.elements[0].to_s)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/test/test_base.rb
CHANGED
@@ -4,23 +4,25 @@ require 'javaclass/classfile/constants/base'
|
|
4
4
|
module TestJavaClass
|
5
5
|
module TestClassFile
|
6
6
|
module TestConstants
|
7
|
-
|
7
|
+
|
8
8
|
class TestBase < Test::Unit::TestCase
|
9
|
-
|
9
|
+
|
10
10
|
class ConstantClass < JavaClass::ClassFile::Constants::Base; # ZenTest SKIP mock class
|
11
|
-
def initialize(name=nil)
|
11
|
+
def initialize(name=nil)
|
12
|
+
super(name)
|
13
|
+
end
|
12
14
|
end
|
13
|
-
|
15
|
+
|
14
16
|
def test_name
|
15
17
|
v = ConstantClass.new
|
16
18
|
assert_equal('Class', v.name)
|
17
|
-
|
19
|
+
|
18
20
|
v = ConstantClass.new('Bubu')
|
19
21
|
assert_equal('Bubu', v.name)
|
20
22
|
end
|
21
|
-
|
23
|
+
|
22
24
|
end
|
23
|
-
|
25
|
+
|
24
26
|
end
|
25
27
|
end
|
26
28
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/setup'
|
2
|
+
require 'javaclass/dsl/caching_classpath'
|
3
|
+
require File.dirname(__FILE__) + '/logging_folder_classpath'
|
4
|
+
require File.dirname(__FILE__) + '/test_folder_classpath'
|
5
|
+
|
6
|
+
module TestJavaClass
|
7
|
+
module TestDsl
|
8
|
+
|
9
|
+
class TestCachingClasspath < TestClasspath::TestFolderClasspath
|
10
|
+
# extend TestFolderClasspath to execute all tests again
|
11
|
+
|
12
|
+
def test_new_wrong_type
|
13
|
+
assert_raise(ArgumentError){
|
14
|
+
JavaClass::Dsl::CachingClasspath.new('3')
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def setup
|
19
|
+
super
|
20
|
+
class << @cpe
|
21
|
+
def load(*obj)
|
22
|
+
load_binary(*obj)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
@cpe = JavaClass::Dsl::CachingClasspath.new(@cpe)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_load_cached
|
29
|
+
@cpe.was_called = false
|
30
|
+
@cpe.load('ClassVersionTest10')
|
31
|
+
assert(@cpe.was_called)
|
32
|
+
|
33
|
+
# load again, now it's still false
|
34
|
+
@cpe.was_called = false
|
35
|
+
@cpe.load('ClassVersionTest10')
|
36
|
+
assert(!@cpe.was_called)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|