javaclass 0.0.4 → 0.4.1
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 +18 -71
- data/Readme.txt +13 -22
- data/{example_task.rb → dev/example_task.rb} +1 -1
- data/dev/saikuro_task.rb +120 -0
- data/examples/chart_class_dependencies.rb +43 -0
- data/examples/chart_module_dependencies.rb +64 -0
- data/examples/check_interface_names.rb +3 -2
- data/examples/corpus.rb +52 -12
- data/examples/count_classes_in_modules.rb +2 -1
- data/examples/cumulative_dependencies.rb +4 -3
- data/examples/find_all_imported_types.rb +11 -7
- data/examples/find_incoming_dependency_graph.rb +81 -0
- data/examples/find_layers_of_modules.rb +79 -0
- data/examples/find_referenced_modules.rb +4 -6
- data/examples/find_unreferenced_classes.rb +14 -4
- data/examples/generate_class_lists.rb +1 -0
- data/examples/show_jar_api.rb +93 -0
- data/examples/test_corpus.rb +32 -0
- data/history.txt +17 -5
- data/javaclass.gemspec +9 -8
- data/lib/javaclass/analyse/dependencies.rb +1 -1
- data/lib/javaclass/analyse/transitive_dependencies.rb +2 -2
- data/lib/javaclass/classfile/class_magic.rb +1 -1
- data/lib/javaclass/classfile/constant_pool.rb +1 -0
- data/lib/javaclass/classfile/java_class_header_as_java_name.rb +4 -0
- data/lib/javaclass/classfile/java_class_header_shortcuts.rb +2 -0
- data/lib/javaclass/classlist/jar_searcher.rb +11 -5
- data/lib/javaclass/classlist/list.rb +27 -14
- data/lib/javaclass/classpath/any_classpath.rb +1 -1
- data/lib/javaclass/classpath/eclipse_classpath.rb +45 -25
- data/lib/javaclass/classpath/factory.rb +23 -13
- data/lib/javaclass/classpath/maven_artefact.rb +62 -0
- data/lib/javaclass/classpath/tracking_classpath.rb +3 -1
- data/lib/javaclass/dependencies/class_node.rb +36 -0
- data/lib/javaclass/dependencies/classpath_node.rb +37 -0
- data/lib/javaclass/dependencies/edge.rb +41 -0
- data/lib/javaclass/dependencies/graph.rb +53 -0
- data/lib/javaclass/dependencies/graphml_serializer.rb +102 -0
- data/lib/javaclass/dependencies/node.rb +82 -0
- data/lib/javaclass/dependencies/yaml_serializer.rb +103 -0
- data/lib/javaclass/dsl/java_name_factory.rb +2 -2
- data/lib/javaclass/gems/zip_file.rb +41 -33
- data/lib/javaclass/java_name.rb +1 -1
- data/lib/javaclass/java_name_scanner.rb +9 -7
- data/lib/javaclass/string_20.rb +40 -0
- data/lib/javaclass/string_hexdump.rb +18 -2
- data/lib/javaclass/string_ux.rb +3 -7
- data/planned.txt +50 -4
- data/rake_analysis.rb +46 -0
- data/test/data/api/packagename/Broken.class +0 -0
- data/test/logging_folder_classpath.rb +2 -2
- data/test/{test_adder_tree.rb → test_adder_tree_node.rb} +1 -1
- data/test/test_class_magic.rb +1 -1
- data/test/test_eclipse_classpath.rb +1 -1
- data/test/test_edge.rb +60 -0
- data/test/test_factory.rb +1 -1
- data/test/test_graph.rb +28 -0
- data/test/test_java_name.rb +13 -1
- data/test/test_javaclass_api.rb +18 -3
- data/test/test_maven_artefact.rb +37 -0
- data/test/test_node.rb +56 -0
- data/test/test_yaml_serializer.rb +105 -0
- data/test/ts_all_tests.rb +16 -3
- metadata +46 -35
- data/examples/profiler_scratchpad.rb +0 -33
- data/lib/javaclass/analyse/ideas.txt +0 -15
- data/lib/javaclass/classpath/classpaths.txt +0 -2
- data/lib/javaclass/classscanner/ideas.txt +0 -3
@@ -1,33 +0,0 @@
|
|
1
|
-
# :nodoc:
|
2
|
-
# Scratchpad script for profiler execution.
|
3
|
-
|
4
|
-
require 'ruby-prof'
|
5
|
-
|
6
|
-
# add the lib of this gem to the load path
|
7
|
-
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
8
|
-
require 'javaclass/dsl/mixin'
|
9
|
-
require File.join(File.dirname(__FILE__), 'corpus')
|
10
|
-
|
11
|
-
location = File.join(Corpus[:BIA], 'classes')
|
12
|
-
|
13
|
-
# 1) create a classpath of the given workspace
|
14
|
-
#RubyProf.start
|
15
|
-
cp = classpath(location)
|
16
|
-
puts "#{cp.elements.size} classpaths found under the workspace #{location}:\n #{cp.elements.join("\n ")}"
|
17
|
-
puts "#{cp.count} classes found in classpaths"
|
18
|
-
#result = RubyProf.stop
|
19
|
-
|
20
|
-
# 2) load all classes
|
21
|
-
RubyProf.start
|
22
|
-
cp.values
|
23
|
-
result = RubyProf.stop
|
24
|
-
|
25
|
-
# 3) iterate all constant pool entries
|
26
|
-
#RubyProf.start
|
27
|
-
# workspace.external_types
|
28
|
-
#result = RubyProf.stop
|
29
|
-
|
30
|
-
# Print a flat profile to text
|
31
|
-
printer = RubyProf::GraphPrinter.new(result)
|
32
|
-
# printer = RubyProf::FlatPrinter.new(result)
|
33
|
-
printer.print(STDOUT)
|
@@ -1,15 +0,0 @@
|
|
1
|
-
=== Metrics/Analysis across a whole classpath
|
2
|
-
|
3
|
-
* "metric" if all referencing classes of a class is another package, propose moving it there.
|
4
|
-
* "Greed Detector"
|
5
|
-
* count outgoing references (usage) per method
|
6
|
-
* which signatures are called how often
|
7
|
-
* maybe move current method there?
|
8
|
-
* CRSS Metric
|
9
|
-
* CCD: lazy init, classpath sits inside the analyser and works recursively through all elements
|
10
|
-
|
11
|
-
* {Chidamber and Kemerer Java Metrics (ckjm)}[http://www.spinellis.gr/sw/ckjm/]
|
12
|
-
* {The CRSS Metric for Package Design Quality}[http://crpit.com/confpapers/CRPITV62Melton2.pdf]
|
13
|
-
|
14
|
-
* {Evolutionary architecture and emergent design: Emergent design through metrics}[http://www.ibm.com/developerworks/java/library/j-eaed6/]
|
15
|
-
|