Choco is Java library that can be used for:
- teaching (a user-oriented constraint solver with open-source code)
- research (state-of-the-art algorithms and techniques, user-defined constraints, domains and variables)
- real-life applications (many application now embed choco)
http://www.emn.fr/x-info/choco-solver/doku.php
http://www.softpedia.com/get/Programming/Components-Libraries/Choco.shtml