What is jContractor?
--------------------
jContractor is a 100% pure Java implementation of Design By Contract
for the Java language. Contracts are written as methods that follow a
simple naming convention. jContractor provides runtime contract
checking by instrumenting the bytecode of classes that define
contracts. jContractor can either add contract checking code to class
files to be executed later, or it can instrument classes at runtime as
they are loaded. All contracts are written in standard Java, so there
is no need to learn a special contract specification language.
jContractor is purely library based, requires no preprocessing or
modifications to the JVM.
Documentation
-------------
The "jContractor Crash Course" is included with this distribution.
This is a very brief tutorial to present the more important bits of
the system, and get users started. A complete user's manual will be
available on the web site as soon as it is written (hopefully in the
very near future).
Requirements
------------
jContractor relies on two Java libraries that are not included in this
distribution:
* The Bytecode Engineering Library (BCEL) -
http://bcel.sourceforge.net/. This version of jContractor has been
tested with BCEL version 4.4.1.
* werken.opt - http://code.werken.com/. This version of jContractor
has been tested with werken.opt version 0.9.1 (beta).
Please download these libraries and place the JAR files on your
class path.
jContractor has been tested with JDK 1.4.0 Beta 2 on Linux.
Installation
------------
Just place the jContractor JAR file on your class path, and everything
should work, provided you meet the requirements set forth in the
previous section. See the "jContractor Crash Course" (located in the
doc/ directory) for a quick intro to the tool.
New versions
------------
The official jContractor home page is
http://jcontractor.sourceforge.net/. Here you will find the latest
version, the latest documentation, mailing lists, bug trackers, and so
much more.
License
------
jContractor is released under the Apache Open Source License, a copy
of which may be found in the LICENSE file.