gcontracts 1.0 released

I am happy to tell you that gcontracts version 1.0 has just been released and is available for download on github, licensed under BSD. Bugs, enhancements and feature requests should be reported over github's issue tracking system. About gcontracts As I've already mentioned in a previous blog-post "Contract-Oriented Programming with Groovy", I started a github project called gcontracts which aims to enable "contract-oriented" programming aka "design by contract" in Groovy. This is done by relying on Groovy's ability to transform the abstract syntax tree (AST) during the compilation process and is mainly based on intelligent injection of  Java assert statements. If you aren't familiar with contract-oriented programming, I advice to take a look at my blog-post Contracts in the Domain Model [0] which explains the principle idea of contracts, assertions and todays role of contract-oriented programming in software development processes.
Be warned, there is still a long way ahead, especially in fields of performance improvements, configurability and more advanced topics like loop invariants, pre- and postcondition inheritance and configurability, although the basic features are tested and working.
Features gcontracts comes with a set of Java annotations whereas each annotation represents a particular assertion type. Each annotation has a single parameter which is used at declaration-time to specify a closure with a boolean expression, representing the assertion on the actual object's state. gcontracts 1.0 comes with the following assertion type annotations: gcontracts > 1.0 Upcoming features in next versions of gcontracts will include: Using gcontracts in your project The easiest way of getting a gcontracts.jar is to get it from github's download section. In addition, the project's root directory provides a Maven pom.xml for comfortable generation of the gcontracts.jar file. The library itself will be published to a public Maven repository soon. Once you got a copy of the jar, add it to the project's classpath. This should be enough to let the Groovy compiler detect it and execute it during compilation. Hint: If you decide to pull the repository from github, take care that you can't compile gcontracts and your project in a single compilation pass. This means, you need to ensure that your build process (let it be your IDE, or Ant, or Maven, ...) already has access to a compiled gcontracts.jar!

[0] Contracts in the Domain Model
[1] gcontracts wiki on github