[jsword-svn] jsword-support/tools/jdepend/jdepend-2.9.1 s

jswordcvs at crosswire.org jswordcvs at crosswire.org
Tue Aug 16 11:03:07 MST 2005


Update of /cvs/jsword/jsword-support/tools/jdepend/jdepend-2.9.1
In directory www.crosswire.org:/tmp/cvs-serv29457/tools/jdepend/jdepend-2.9.1

Added Files:
	build.xml LICENSE README CHANGES 
Log Message:
Upgrading jsword-support/tools

--- NEW FILE: README ---

                            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 at clarkware.com.


  Licensing
  ---------

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

  Thanks for using JDepend!

--- NEW FILE: CHANGES ---
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.

--- NEW FILE: build.xml ---
<?xml version="1.0"?>

<project name="jdepend" default="test">

  <description>
    Builds and tests JDepend - the Java package dependency analyzer.
  </description>

  <property file="build.properties"/>
  <property environment="env"/>

  <property name="Name" value="${ant.project.name}"/>
  <property name="version" value="2.9.1"/>

  <property name="src.dir" location="src"/>
  <property name="test.dir" location="test"/>
  <property name="build.dir" location="build"/>
  <property name="docs.dir" location="docs"/>
  <property name="dist.dir" location="dist"/>
  <property name="run.dir" location="${build.dir}"/>

  <property name="javadoc.dir" location="${build.dir}/docs/api"/>
  <property name="dist.name" value="${Name}-${version}"/>
  <property name="package.dir" location="${dist.dir}/${dist.name}"/>

  <property name="build.debug" value="true"/>

  <path id="project.classpath">
    <pathelement location="${build.dir}"/>
  </path>

  <target name="prepare">
    <tstamp />
    <mkdir dir="${build.dir}"/>
    <available property="junit.available"
               classname="junit.framework.TestCase"/>
  </target>

  <target name="compile" depends="prepare"
    description="Compiles the source code">
    <javac srcdir="${src.dir}"
           destdir="${build.dir}"
           debug="${build.debug}">
      <classpath refid="project.classpath"/>
    </javac>
  </target>

  <target name="compile-sample" depends="prepare"
    description="Compiles the sample code">
    <javac srcdir="sample"
           destdir="${build.dir}"
           debug="${build.debug}">
      <classpath refid="project.classpath"/>
    </javac>
  </target>

  <target name="compile-tests" depends="compile"
          if="junit.available"
    description="Compiles the test code">
    <javac srcdir="${test.dir}"
           destdir="${build.dir}"
           debug="${build.debug}">
      <classpath refid="project.classpath"/>
    </javac>
  </target>

  <target name="test" depends="compile-tests"
          if="junit.available"
          description="Runs all the tests">
    <junit haltonfailure="yes" fork="yes">
      <test name="jdepend.framework.AllTests"/>
      <formatter type="plain" usefile="false"/>
      <sysproperty key="jdepend.home" value="${basedir}"/>
      <classpath refid="project.classpath"/>
    </junit>
  </target>

  <target name="run-jdepend" depends="compile"
          description="Runs JDepend on itself">
    <java classname="jdepend.textui.JDepend" fork="yes">
      <classpath refid="project.classpath"/>
      <arg file="${run.dir}"/>
    </java>
  </target>

  <target name="run-jdepend-components" depends="compile"
          description="Runs JDepend on itself">
    <java classname="jdepend.textui.JDepend" fork="yes">
      <classpath refid="project.classpath"/>
      <arg value="-components"/>
      <arg value="jdepend,java,junit"/>
      <arg value="${run.dir}"/>
    </java>
  </target>

  <target name="validate-jdepend-task">

    <fail message="ANT_HOME must be set" unless="env.ANT_HOME"/>

    <available property="jdependtask.available"
               classname="org.apache.tools.ant.taskdefs.optional.jdepend.JDependTask"/>

    <fail message="Missing jdepend.jar in system CLASSPATH"
          unless="jdependtask.available"/>

  </target>

  <target name="run-jdepend-task"
          if="jdependtask.available"
          depends="validate-jdepend-task, compile"
          description="Runs the JDepend Ant task">
            
    <jdepend fork="yes" 
             outputfile="${docs.dir}/jdepend-report.txt">
      <exclude name="java.*"/>
      <exclude name="javax.*"/>
      <classespath>
        <pathelement location="${run.dir}"/>
      </classespath>
      <classpath refid="project.classpath"/>
    </jdepend>

  </target>

  <target name="run-jdepend-task-html"
          if="jdependtask.available"
          depends="validate-jdepend-task, compile"
          description="Runs the JDepend Ant task producing HTML">

    <jdepend fork="yes"
             format="xml"
             outputfile="${docs.dir}/jdepend-report.xml">
      <classespath>
        <pathelement location="${run.dir}"/>
      </classespath>
      <classpath refid="project.classpath"/>
    </jdepend>

    <style basedir="${docs.dir}"
           destdir="${docs.dir}"
           includes="jdepend-report.xml"
           style="${ant.home}/etc/jdepend.xsl"/>

  </target>

  <target name="jdepend-to-graphviz"
          depends="compile"
     description="Runs JDepend and converts XML output into Graphviz">

    <java classname="jdepend.xmlui.JDepend" fork="yes">
      <classpath refid="project.classpath"/>
      <arg value="-file"/>
      <arg value="${docs.dir}/jdepend-report.xml"/>
      <arg value="${run.dir}"/>
    </java>

    <style basedir="${docs.dir}"
           destdir="${docs.dir}"
           includes="jdepend-report.xml"
           extension=".dot"
           style="contrib/jdepend2dot.xsl"/>

  </target>

  <target name="javadoc" depends="compile"
          description="Generates JavaDoc">
    
    <mkdir dir="${javadoc.dir}"/>
    
    <javadoc packagenames="*"
             sourcepath="${src.dir}"
             destdir="${javadoc.dir}"
             author="true"
             version="true"
             windowtitle="JDepend ${version} API"
             doctitle="JDepend ${version} API"
             bottom="Copyright &#169; 1999-2005 Clarkware Consulting, Inc.">
      <classpath refid="project.classpath"/>
    </javadoc>
  </target>


  <target name="jar" depends="compile"
          description="Creates a JAR file">
    
    <mkdir dir="${dist.dir}"/>
    
    <jar destfile="${dist.dir}/${dist.name}.jar"
         basedir="${build.dir}" />

  </target>

  <target name="package"
          depends="clean, test, jar, javadoc"
          description="Creates a distribution file">

    <copy todir="${package.dir}">
      <fileset dir="${basedir}">
        <include name="build.xml"/>
        <include name="README"/>
        <include name="CHANGES"/>
        <include name="LICENSE"/>
      </fileset>
    </copy>
    
    <copy todir="${package.dir}/docs">
      <fileset dir="${docs.dir}"/>
    </copy>
    
    <copy todir="${package.dir}/src">
      <fileset dir="${src.dir}"/>
    </copy>
    
    <copy todir="${package.dir}/test">
      <fileset dir="${test.dir}"/>
    </copy>  
    
    <copy todir="${package.dir}/sample">
      <fileset dir="sample"/>
    </copy>
    
    <copy todir="${package.dir}/contrib">
      <fileset dir="contrib">
        <include name="jdepend2dot.sh"/>
        <include name="jdepend2dot.xsl"/>
        <include name="**/fitnesse/*"/>
      </fileset>
    </copy> 
    
    <copy todir="${package.dir}/lib"
          file="${dist.dir}/${dist.name}.jar"/>

    <tar tarfile="${dist.dir}/${dist.name}.tar.gz"
         basedir="${dist.dir}/"
         compression="gzip"
         includes="${dist.name}/**" />

    <zip destfile="${dist.dir}/${dist.name}.zip"
         basedir="${dist.dir}/"
         includes="${dist.name}/**" />
    
  </target> 

  <target name="clean" 
          description="Deletes all build artifacts">
    <delete dir="${build.dir}"/>
    <delete dir="${dist.dir}"/>
  </target>

</project>

--- NEW FILE: LICENSE ---
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 at 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.



More information about the jsword-svn mailing list