Skip to content
Permalink
Browse files

Initial import

  • Loading branch information
clarkware committed Aug 21, 2008
0 parents commit be0bccac1c798534e1c4ec685854c15894f40acf
Showing with 10,475 additions and 0 deletions.
  1. +208 −0 CHANGES
  2. +29 −0 LICENSE
  3. +45 −0 README
  4. +250 −0 build.xml
  5. +1,675 −0 docs/JDepend.html
  6. BIN docs/images/figure1a.jpg
  7. BIN docs/images/figure1b.jpg
  8. BIN docs/images/figure2b.jpg
  9. BIN docs/images/figure3b.jpg
  10. +179 −0 docs/jdepend-report.dot
  11. +193 −0 docs/jdepend-report.txt
  12. +390 −0 docs/jdepend-report.xml
  13. +217 −0 docs/jdepend-text.out
  14. +198 −0 docs/jdepend-xml.out
  15. +168 −0 sample/epayment/adapters/ABCGatewayAdapter.java
  16. +166 −0 sample/epayment/adapters/XYZGatewayAdapter.java
  17. +41 −0 sample/epayment/commands/AuthorizeCommand.java
  18. +41 −0 sample/epayment/commands/CaptureCommand.java
  19. +41 −0 sample/epayment/commands/CreditCommand.java
  20. +42 −0 sample/epayment/commands/SaleCommand.java
  21. +41 −0 sample/epayment/commands/VoidSaleCommand.java
  22. +45 −0 sample/epayment/framework/AbstractPaymentCommand.java
  23. +80 −0 sample/epayment/framework/IGatewayAdapter.java
  24. +33 −0 sample/epayment/framework/IPaymentCommand.java
  25. +63 −0 sample/epayment/framework/IPaymentRequest.java
  26. +30 −0 sample/epayment/framework/IPaymentResponse.java
  27. +25 −0 sample/epayment/framework/PaymentException.java
  28. +90 −0 sample/epayment/processor/PaymentProcessor.java
  29. +46 −0 sample/epayment/processor/PaymentProcessorConfigurator.java
  30. +169 −0 sample/epayment/request/PaymentRequest.java
  31. +79 −0 sample/epayment/response/PaymentResponse.java
  32. +20 −0 sample/jdepend.properties
  33. +69 −0 src/jdepend/framework/AbstractParser.java
  34. +668 −0 src/jdepend/framework/ClassFileParser.java
  35. +160 −0 src/jdepend/framework/DependencyConstraint.java
  36. +134 −0 src/jdepend/framework/FileManager.java
  37. +344 −0 src/jdepend/framework/JDepend.java
  38. +95 −0 src/jdepend/framework/JavaClass.java
  39. +137 −0 src/jdepend/framework/JavaClassBuilder.java
  40. +268 −0 src/jdepend/framework/JavaPackage.java
  41. +49 −0 src/jdepend/framework/PackageComparator.java
  42. +98 −0 src/jdepend/framework/PackageFilter.java
  43. +24 −0 src/jdepend/framework/ParserListener.java
  44. +143 −0 src/jdepend/framework/PropertyConfigurator.java
  45. +117 −0 src/jdepend/swingui/AboutDialog.java
  46. +65 −0 src/jdepend/swingui/AfferentNode.java
  47. +132 −0 src/jdepend/swingui/DependTree.java
  48. +171 −0 src/jdepend/swingui/DependTreeModel.java
  49. +86 −0 src/jdepend/swingui/EfferentNode.java
  50. +557 −0 src/jdepend/swingui/JDepend.java
  51. +181 −0 src/jdepend/swingui/PackageNode.java
  52. +39 −0 src/jdepend/swingui/StatusPanel.java
  53. +527 −0 src/jdepend/textui/JDepend.java
  54. +193 −0 src/jdepend/xmlui/JDepend.java
  55. +8 −0 test/data/jdepend.properties
  56. BIN test/data/test.jar
  57. BIN test/data/test.zip
  58. +35 −0 test/jdepend/framework/AllTests.java
  59. +162 −0 test/jdepend/framework/ClassFileParserTest.java
  60. +185 −0 test/jdepend/framework/CollectAllCyclesTest.java
  61. +114 −0 test/jdepend/framework/ComponentTest.java
  62. +93 −0 test/jdepend/framework/ConstraintTest.java
  63. +197 −0 test/jdepend/framework/CycleTest.java
  64. +31 −0 test/jdepend/framework/ExampleAbstractClass.java
  65. +48 −0 test/jdepend/framework/ExampleConcreteClass.java
  66. +20 −0 test/jdepend/framework/ExampleInterface.java
  67. +143 −0 test/jdepend/framework/ExampleTest.java
  68. +101 −0 test/jdepend/framework/FileManagerTest.java
  69. +71 −0 test/jdepend/framework/FilterTest.java
  70. +64 −0 test/jdepend/framework/JDependTestCase.java
  71. +135 −0 test/jdepend/framework/JarFileParserTest.java
  72. +140 −0 test/jdepend/framework/MetricTest.java
  73. +67 −0 test/jdepend/framework/PropertyConfiguratorTest.java
208 CHANGES
@@ -0,0 +1,208 @@
JDepend Change Log


Version 2.9.1 - 5/6/05
----------------------

- Fixed the GUI runner to support the -components option.

Version 2.9 - 12/27/04
----------------------

- Includes the Module Dependencies fixture for FitNesse, contributed
by Bob Martin. Thanks, Bob!
(See http://www.butunclebob.com/ArticleS.UncleBob.JdependFixture)

- Declared components now include an implicit trailing ".".
For example, if you want to treat all sub-packages beneath
the "com.foo" package as a component, use

java jdepend.textui.JDepend -components com.foo /path/to/classes

or, programmatically, use

jdepend.setComponents("com.foo");

Note, however, that an implicit "." will be appended ("com.foo."),
which means that the package "com.foobar", for example, will NOT be
included in the "com.foo" component.

- Added a version number to the JAR file.


Version 2.8 - 9/2/04
--------------------

- Components can now be defined using the -components option to any
JDepend user interface.

- Added the Graphviz stylesheet (contrib/jdepend2dot.xsl) to transform
the JDepend XML format into the Graphviz dot file
format. (Contributed by David Bock.)

- Fixed a minor bug related to using the exclude tag with the JDepend
Ant task.

- Fixed a minor bug that was exhausting file descriptors for large
(2000+) file sets.


Version 2.7 - 4/10/04
---------------------

- Set UTF-8 as the output encoding for the XML output so that the XML
file generated is valid if the data contains non-ASCII
characters. (Thanks to Olivier Mengue.)


Version 2.6 - 2/19/04 (Somewhere between Denver and Austin)
-----------------------------------------------------------

- Classes in .jar, .war, and .zip files are now analyzed.

- Added JavaPackage.collectAllCycles() to support the Eclipse plugin
and to start experimenting with more exhaustive cycle detection
techniques.


Version 2.5 - 2/17/03
---------------------

- Source-file analysis is no longer supported.

- Inner classes are now analyzed by default. To disable analyzing
inner classes, set the 'analyzeInnerClasses' property to 'false' in
the jdepend.properties file.

- Added setFilter() method to all JDepend class variants to support
new JDepend Ant task which includes an element for excluding
packages. (Thanks to Bob Hays for updating the Ant task!)

- Added JavaClass.getSourceFile() method which returns the name of the
source file from which the analyzed class file was generated. Source
files must be compiled with debug information (e.g. -g or
-g:source), otherwise "Unknown" is returned. (Thanks to Ben Walding
for contributing this code!)


Version 2.4 - 2/5/03
--------------------

- Source-file analysis is now deprecated. Please adjust to using
class-file analysis by simply pointing JDepend at directories
containing class files. The next version will not support the
analysis of source files.

- Added support for presetting a volatility (V) value on a
package-by-package basis.

- Unzips into versioned directory.


Version 2.3 - 1/3/03
--------------------

- Removed java.* and javax.* from the default package filter. By
default, no packages are filtered.

- Added a constructor to jdepend.framework.JDepend that takes a
PackageFilter parameter. Filters can now be applied by using this
constructor or by creating a jdepend.properties file in the
classPATH (see samples/jdepend.properties).

- Fixed several bugs related to properly identifying class and
interface names when parsing source files.

- Fixed bug parsing java.lang.Object

- Modified jdepend.xmlui.JDepend to always generate XML for the
English locale so that '.' is used as the decimal separator. XML
Schema identifies a float with a mandatory '.'. XSL is unable to
transform decimal separators other than ".".

- Reorganized directory structure to include top-level 'src' and
'tests' directories.


Version 2.2 - 10/25/01
----------------------

- Removed validation of major/minor class file versions during class
file parsing to support Java 1.4 and beyond.

- Added "Interpreting Dependency Cycles" section to documentation.

- Clean-up of build.xml for consistency and added example use of
JDepend Ant task.


Version 2.1 - 8/6/01
--------------------

- When parsing class files, constant pool class constants that refer
to array types are now properly parsed.

- When parsing source files, leading spaces are now properly parsed
for package names, imports, and class declarations.


Version 2.0 - 8/1/01
--------------------

- Added support for parsing class files in addition to source files.
Class file parsing is more accurate in its ability to identify
referenced packages not directly visible from 'package' or 'import'
statements. Analyzed package references include super classes,
implemented interfaces, class attribute types, method return types,
method parameter types, method exception types, and method local
variable types. If a given directory contains both a source file and
a class file for the same Java class, then the class file is
analyzed and the source file is ignored. Class files must exist in a
directory; JAR files are not supported in this release.


Version 1.4 - 7/20/01
---------------------

- Added package dependency constraints to support writing tests that
fail if any package dependency other than those declared in the
dependency constraints are detected.

- Added the jdepend.xmlui.JDepend class to generate the package
metrics, dependencies, and cycles in an XML format for easier
integration with other tools.


Version 1.3 - 7/5/01
--------------------

- Package dependency cycles can now detected and the packages
participating in a package dependency cycle can be traversed. By
default, the textual UI prints the hierarchical paths of each
package dependency cycle and the graphical UI marks any packages
containing cyclic package dependencies with a "Cyclic" label.

- DistanceExampleTest was renamed to ExampleTest, which now also
contains example JUnit test methods for automatically checking for
the existence of package dependency cycles.


Version 1.2 - 5/11/01
---------------------

- Recognition of 'final' and 'strictfp' class modifiers.

- Trim extra whitespace from imports and class name declaration.

- Ignore trailing comments from class name declaration.

- Add delegating addDirectory() method to the jdepend.textui.JDepend
and jdepend.swingui.JDepend classes.

- Improved command-line error handling.


Version 1.1 - 1/25/01
---------------------

- Initial public release.
29 LICENSE
@@ -0,0 +1,29 @@
Copyright (C) 1999-2004 Clarkware Consulting, Inc.
All Rights Reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

3. Neither the name of Clarkware Consulting, Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without prior written permission. For written
permission, please contact clarkware@clarkware.com.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
CLARKWARE CONSULTING OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45 README
@@ -0,0 +1,45 @@

J D E P E N D


What Is It?
-----------

JDepend traverses Java class and source file directories and
generates design quality metrics for each Java package. JDepend allows
you to automatically measure the quality of a design in terms of its
extensibility, reusability, and maintainability to effectively manage
and control package dependencies.


How Do I Get It?
----------------

The latest version of JDepend is available at
http://www.clarkware.com/software/jdepend.zip


Documentation
-------------

Documentation is available in HTML format, in the docs/ directory.
For the installation and user manual, see docs/JDepend.html.
For the API documentation, see docs/api/index.html.


Support
---------

If you have any questions, comments, enhancement requests, success
stories, or bug reports regarding JDepend, please send them to
mike@clarkware.com.


Licensing
---------

This software is licensed under the terms described in the file
named "LICENSE" in this directory.


Thanks for using JDepend!

0 comments on commit be0bcca

Please sign in to comment.
You can’t perform that action at this time.