Drools Planner optimizes planning, routing and scheduling. It solves resource optimization problems such as bin packing, vehicle routing, employee rostering and course timetabling. It scales out in data and constraints. It's open source (ASL), pure java and enterprise ready.
Drools Planner has been renamed to OptaPlanner. It is a lightweight, embeddable planning engine written in Java™. It helps normal Java™ programmers solve constraint satisfaction problems efficiently. Under the hood, it combines optimization heuristics and metaheuristics with very efficient score calculation.