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
@@ -1,311 +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.io.IOException;
6
- import java.security.InvalidParameterException;
7
- import java.util.Enumeration;
8
- import java.util.List;
9
- import java.util.StringTokenizer;
10
- import java.util.Vector;
11
- import java.util.zip.ZipEntry;
12
- import java.util.zip.ZipFile;
13
-
14
- import at.kugel.util.io.WildcardSearch;
15
-
16
- /**
17
- * Factory to get the CPEs (Class Path Entries) from a system path, given path or archive.
18
- * @author Kugel, <i>Theossos Comp Group</i>
19
- * @version 1.00 - 13.03.2004
20
- */
21
- public final class ClassPathEntryFactory
22
- {
23
-
24
- /**
25
- * 0 = no output, 1 = system path, 2 = archives and directories, 3 = statistics, 5 = duplicates.
26
- */
27
- private final int debugLevel = 3;
28
-
29
- private static final String CLASS_EXTENSION = ClassPathEntry.CLASS_EXTENSION;
30
- private boolean dropInnerClasses = true;
31
- private boolean dropPackageClasses = true;
32
-
33
- private long numberEntries;
34
- private long numberDuplicatedEntries;
35
-
36
- private void resetStatistics()
37
- {
38
- numberEntries = 0;
39
- numberDuplicatedEntries = 0;
40
- }
41
-
42
- private void printStatistics()
43
- {
44
- if (dropPackageClasses)
45
- {
46
-
47
- System.out.println(" Found " + numberEntries + " new and " + numberDuplicatedEntries + " duplicated public classes");
48
-
49
- }
50
- else
51
- {
52
-
53
- System.out.println(" Found " + numberEntries + " new and " + numberDuplicatedEntries + " duplicated classes");
54
-
55
- }
56
- }
57
-
58
- private void addEntryToList(final ClassPathEntry cpe, List<ClassPathEntry> pClassList2Add)
59
- {
60
- if (dropInnerClasses && cpe.isInner)
61
- {
62
- return;
63
- }
64
- if (dropPackageClasses && cpe.isPublic == -1)
65
- {
66
- return;
67
- }
68
-
69
- if (!pClassList2Add.contains(cpe))
70
- {
71
- numberEntries++;
72
- pClassList2Add.add(cpe);
73
-
74
- }
75
- else
76
- {
77
-
78
- numberDuplicatedEntries++;
79
-
80
- if (debugLevel >= 5)
81
- {
82
- final int i = pClassList2Add.indexOf(cpe);
83
- final ClassPathEntry duplicated = pClassList2Add.get(i);
84
- duplicated.setDuplicated(true);
85
- System.out.println(" Duplicate class: " + cpe + " in " + duplicated.origin + " and " + cpe.origin);
86
- }
87
- }
88
- }
89
-
90
- public void readAllClassesFromDirectory(File pClassPathBase, List<ClassPathEntry> pClassList2Add)
91
- {
92
- if (debugLevel >= 2)
93
- {
94
- System.out.println(" * Reading classes from directory " + pClassPathBase);
95
- resetStatistics();
96
- }
97
-
98
- final Vector<File> foundElements = new Vector<File>();
99
-
100
- WildcardSearch.getFiles(pClassPathBase.getPath() + File.separatorChar + "*" + CLASS_EXTENSION, true, foundElements);
101
- for (final File file : foundElements)
102
- {
103
- final ClassPathEntry cpe = ClassPathEntry.createFromClassFile(pClassPathBase, file);
104
-
105
- addEntryToList(cpe, pClassList2Add);
106
- }
107
-
108
- foundElements.removeAllElements();
109
-
110
- if (debugLevel >= 3)
111
- {
112
- printStatistics();
113
- }
114
- }
115
-
116
- public void readAllClassesFromZip(File pZipFile, List<ClassPathEntry> pClassList2Add) throws IOException
117
- {
118
- if (debugLevel >= 2)
119
- {
120
- System.out.println(" * Reading classes from archive " + pZipFile);
121
- resetStatistics();
122
- }
123
-
124
- final ZipFile zf = new ZipFile(pZipFile);
125
- for (final Enumeration<? extends ZipEntry> en = zf.entries(); en.hasMoreElements();)
126
- {
127
- final ZipEntry entry = en.nextElement();
128
-
129
- if (entry.getName().endsWith(CLASS_EXTENSION))
130
- {
131
- final ClassPathEntry cpe = ClassPathEntry.createFromZipEntry(pZipFile, entry);
132
- addEntryToList(cpe, pClassList2Add);
133
- }
134
-
135
- }
136
-
137
- if (debugLevel >= 3)
138
- {
139
- printStatistics();
140
- }
141
- }
142
-
143
- public void readAllZipsFromDirectory(File pClassPathBase, List<ClassPathEntry> pClassList2Add) throws IOException
144
- {
145
- if (debugLevel >= 2)
146
- {
147
- System.out.println(" * Reading jars from directory " + pClassPathBase);
148
- resetStatistics();
149
- }
150
-
151
- final Vector<File> foundElements = new Vector<File>();
152
-
153
- WildcardSearch.getFiles(pClassPathBase.getPath() + File.separatorChar + "*.jar", true, foundElements);
154
- for (final File entry : foundElements)
155
- {
156
- readAllClassesFromZip(entry, pClassList2Add);
157
- }
158
- foundElements.removeAllElements();
159
-
160
- WildcardSearch.getFiles(pClassPathBase.getPath() + File.separatorChar + "*.zip", true, foundElements);
161
- for (final File entry : foundElements)
162
- {
163
- readAllClassesFromZip(entry, pClassList2Add);
164
- }
165
- foundElements.removeAllElements();
166
- }
167
-
168
- public void readAllFromClassPath(String pPath, List<ClassPathEntry> pClassList2Add) throws IOException
169
- {
170
- final StringTokenizer pathTokenizer = new StringTokenizer(pPath, File.pathSeparator);
171
- while (pathTokenizer.hasMoreTokens())
172
- {
173
- final String path = pathTokenizer.nextToken();
174
-
175
- if (path.endsWith(".zip") || path.endsWith(".jar"))
176
- {
177
- final File zipFile = new File(path);
178
- if (zipFile.exists() && zipFile.isFile() && zipFile.canRead())
179
- {
180
- readAllClassesFromZip(zipFile, pClassList2Add);
181
- }
182
- else
183
- {
184
- if (debugLevel >= 2)
185
- {
186
- System.out.println("WARNING: archive " + path + " from classpath not found");
187
- }
188
- }
189
-
190
- }
191
- else
192
- {
193
-
194
- final File directoryFile = new File(path);
195
- if (directoryFile.exists() && directoryFile.isDirectory())
196
- {
197
- readAllClassesFromDirectory(directoryFile, pClassList2Add);
198
- }
199
- else
200
- {
201
- if (debugLevel >= 2)
202
- {
203
- System.out.println("WARNING: directory " + path + " from classpath not found");
204
- }
205
- }
206
-
207
- }
208
- }
209
- }
210
-
211
- private void readAllFromSystemClassPath(String name, List<ClassPathEntry> pClassList2Add) throws IOException
212
- {
213
- final String p = System.getProperty(name);
214
-
215
- if (debugLevel >= 1)
216
- {
217
- System.out.println("Working on path " + name + " (" + p + ")");
218
- }
219
-
220
- if (p != null && p.length() > 0)
221
- {
222
- if (name.endsWith(".dirs"))
223
- {
224
- readAllZipsFromDirectory(new File(p), pClassList2Add);
225
-
226
- }
227
- else if (name.endsWith(".path"))
228
- {
229
- readAllFromClassPath(p, pClassList2Add);
230
-
231
- }
232
- else
233
- {
234
- throw new InvalidParameterException("no path or directory system property given");
235
- }
236
- }
237
- }
238
-
239
- public void readAllFromSystemClassPaths(List<ClassPathEntry> pClassList2Add) throws IOException
240
- {
241
- readAllFromSystemClassPath("sun.boot.class.path", pClassList2Add);
242
- readAllFromSystemClassPath("java.endorsed.dirs", pClassList2Add);
243
- readAllFromSystemClassPath("java.ext.dirs", pClassList2Add);
244
- readAllFromSystemClassPath("java.class.path", pClassList2Add);
245
- }
246
-
247
- public void readAllFromUserClassPaths(String p, List<ClassPathEntry> pClassList2Add) throws IOException
248
- {
249
- if (debugLevel >= 1)
250
- {
251
- System.out.println("Working on user input (" + p + ")");
252
- }
253
-
254
- final File userFile = new File(p);
255
- if (p.indexOf(File.pathSeparator) > -1)
256
- {
257
- // this is a pathlist
258
- readAllFromClassPath(p, pClassList2Add);
259
-
260
- }
261
- else if (userFile.isDirectory())
262
- {
263
- // may be a WEB-INF clone - read all zips and jars
264
- readAllZipsFromDirectory(userFile, pClassList2Add);
265
- // but also may be a single class list
266
- readAllClassesFromDirectory(userFile, pClassList2Add);
267
-
268
- }
269
- else
270
- {
271
- // must be a file - a zip
272
- readAllClassesFromZip(userFile, pClassList2Add);
273
- }
274
-
275
- }
276
-
277
- public boolean isDropInnerClasses()
278
- {
279
- return dropInnerClasses;
280
- }
281
-
282
- public void setDropInnerClasses(boolean b)
283
- {
284
- dropInnerClasses = b;
285
- }
286
-
287
- public boolean isDropPackageClasses()
288
- {
289
- return dropPackageClasses;
290
- }
291
-
292
- public void setDropPackageClasses(boolean b)
293
- {
294
- dropPackageClasses = b;
295
- }
296
-
297
- // /** Just for testing. */
298
- // public static void main(String[] args) throws IOException
299
- // {
300
- // final ClassPathEntryFactory fac = new ClassPathEntryFactory();
301
- // final List<ClassPathEntry> list = new ArrayList<ClassPathEntry>();
302
- //
303
- // System.out.println("*** reading ***");
304
- // fac.readAllFromSystemClassPaths(list);
305
- // System.out.println("*** sorting ***");
306
- // Collections.sort(list);
307
- //
308
- // System.out.println("found " + list.size() + " classes.");
309
- // }
310
-
311
- }
@@ -1,24 +0,0 @@
1
- /**
2
- * Abstraction of a place where to find the physical class files for a given full class name. This must also configure
3
- * the <code>org.apache.bcel.Repository</code> to use the right repository for BCEL automatic class loading, i.e. for
4
- * interfaces.
5
- */
6
-
7
-
8
- public List<String> getAllClassNames(boolean skipInnerClasses)
9
- {
10
- final List<String> result = new ArrayList<String>();
11
-
12
- for (final String name : filesInRepository.keySet())
13
- {
14
- if (skipInnerClasses && name.indexOf('$') != -1)
15
- {
16
- continue;
17
- }
18
- result.add(name);
19
- }
20
-
21
- Collections.sort(result);
22
- return result;
23
- }
24
-
@@ -1,68 +0,0 @@
1
- # add the lib to the load path
2
- $:.unshift File.join(File.dirname(__FILE__), 'lib')
3
-
4
- # TODO cleanup this code fragment and make a proper class
5
-
6
- require 'javaclass'
7
- include JavaClass
8
-
9
- def process_class(name, already=[], intend=0)
10
- file_name = 'C:\JavaDev\classes\\' + name.gsub(/\./,'\\') + '.class'
11
- return if !FileTest.exist? file_name
12
- # p file_name
13
- clazz = JavaClass.parse(file_name)
14
- # p clazz
15
- puts " "*intend + clazz.this_class
16
-
17
- imported = clazz.references.used_classes.collect { |c| c.to_s }.sort
18
- new_used = imported - already
19
- already << new_used
20
- already.flatten!
21
- new_used.find_all { |c| c =~ /at\/spardat\// }.each do |c|
22
- process_class(c, already, intend+1)
23
- end
24
- end
25
-
26
- def process_package(folder, already=[], intend=0)
27
- file_name = 'C:\JavaDev\classes\\' + folder.gsub(/\./,'\\')
28
- cwd = Dir.getwd
29
- Dir.chdir file_name
30
- files = Dir['*']
31
- files.each do |c|
32
- if c =~ /\.class$/
33
- process_class(folder + '.' + c[/^[^.]+/], already, intend)
34
- elsif FileTest.directory? c
35
- puts " "*intend+ '-----'
36
- process_package(folder + '.' + c, already, intend)
37
- end
38
- end
39
- Dir.chdir cwd
40
- end
41
-
42
- # total = []
43
- # #process_class('at/spardat/krimiaps/service/client/service/impl/ClientSmeSearchServiceImpl', total)
44
- # #process_class('at/spardat/krimiaps/service/client/service/impl/ClientPrivateSearchServiceImpl', total)
45
- #
46
- # # --- common
47
- # #process_package('at.spardat.krimicee.common', total) #
48
- # #process_package('at.spardat.krimiaps.common', total) # -> 79 ok
49
- # #process_package('at.spardat.common', total) # 146, in sich, koennte nach common
50
- # #process_package('at.spardat.integrator', total) #
51
- # # DatabaseAwareComponent -> ganze DB
52
- # #process_package('at.spardat.krimicee.util', total)
53
- # # ItoTestApsSchema -> ganze DB
54
- # # process_package('at.spardat.krimicee.lib', total)
55
- # # KrimiLock -> ganze DB
56
- #
57
- # #process_package('at.spardat.krimicee.dom', total)
58
- # #process_package('at.spardat.krimicee.db', total)
59
- # # KrimiLoanService, PrintHelper ->
60
- # #process_package('at.spardat.krimicee.dao', total)
61
- # #process_package('at.spardat.krimicee.dao', total)
62
- # #process_package('at.spardat.krimicee.entity', total)
63
- # #process_package('at.spardat.krimicee.entity', total)
64
- # #process_package('at.spardat.krimicee.eo', total)
65
- # #process_package('at.spardat.krimicee.sql', total)
66
- # #process_package('at.spardat.krimicee.model', total) # 1647
67
- #
68
- # puts total.size
@@ -1,41 +0,0 @@
1
- # add the lib to the load path
2
- $:.unshift File.join(File.dirname(__FILE__), 'lib')
3
-
4
- # TODO cleanup this code fragment and make a proper class
5
-
6
- require 'javaclass'
7
- include JavaClass
8
-
9
- JDK_PACKAGES = %w| java javax.accessibility javax.activity javax.crypto javax.imageio javax.jnlp javax.management
10
- javax.naming javax.net javax.print javax.rmi javax.script javax.security.auth javax.security.cert
11
- javax.security.sasl javax.sound.midi javax.sound.sampled javax.sql javax.swing javax.transaction
12
- javax.xml org.ietf.jgss org.w3c.dom org.xml.sax|.collect { |pkg| /^#{pkg}\./ }
13
-
14
- def in_jdk?(name)
15
- JDK_PACKAGES.find { |regex| name =~ regex } != nil
16
- end
17
-
18
- def imported_types(classes)
19
- own_classes = classes.names.collect { |name| name.gsub('/', '.').sub(/\.class$/, '')}.sort
20
-
21
- imported = classes.names.collect do |name|
22
- clazz = JavaClassHeader.new(classes.load_binary(name))
23
- clazz.references.used_classes.collect { |c| c.to_s.gsub('/', '.') }
24
- end.flatten.uniq.sort
25
-
26
- imported.reject { |name| in_jdk?(name) } - own_classes
27
- end
28
-
29
- # TODO detect and read spring XML configs?
30
-
31
- classes = JavaClass::Classpath::FolderClasspath.new("./target/classes")
32
- own = classes.names.collect { |name| name.gsub('/', '.').sub(/\.class$/, '')}.sort
33
- used = imported_types(classes)
34
- puts "---------- used types"
35
- puts used
36
-
37
- test_classes = JavaClass::Classpath::FolderClasspath.new("./target/test-classes")
38
- test = imported_types(test_classes) - own - used
39
- puts "---------- for tests"
40
- puts test
41
-
@@ -1,22 +0,0 @@
1
- require File.dirname(__FILE__) + '/setup'
2
- require 'javaclass'
3
-
4
- module TestJavaClass
5
-
6
- class TestJavaClassFacade < Test::Unit::TestCase # ZenTest SKIP
7
-
8
- def test_class_full_classpath
9
- cp = JavaClass.full_classpath("#{TEST_DATA_PATH}/java_home_classpath/jre-ext",
10
- "#{TEST_DATA_PATH}/jar_classpath/JarClasspathTestManifest.jar#{File::PATH_SEPARATOR}#{TEST_DATA_PATH}/folder_classpath/JarClasspathTestFolder")
11
- elem = cp.elements
12
- assert_equal(5, elem.size)
13
- assert_equal("#{TEST_DATA_PATH}/java_home_classpath/jre-ext/lib/rt.jar", elem[0].to_s)
14
- assert_equal("#{TEST_DATA_PATH}/java_home_classpath/jre-ext/lib/ext/ext.jar", elem[1].to_s)
15
- assert_equal("#{TEST_DATA_PATH}/jar_classpath/JarClasspathTestManifest.jar", elem[2].to_s)
16
- assert_equal("#{TEST_DATA_PATH}/jar_classpath/JarClasspathTest.jar", elem[3].to_s)
17
- assert_equal("#{TEST_DATA_PATH}/folder_classpath/JarClasspathTestFolder", elem[4].to_s)
18
- end
19
-
20
- end
21
-
22
- end