JSR-331 successfully passed the Final Approval Ballot. The JCP Executive Committee that includes representatives of IBM, RedHat, Fujitsu, Intel, SAP, Eclipse, HP, and others voted “Yes” on the Final Release that we submitted in January. Nobody voted “No” or “Abstained”. I even received personal emails from representatives of Oracle and Twitter who apologized for missing the voting deadline – they congratulated us and wrote they would vote “Yes” too.
Great thanks to the members of the JSR-331 Expert Group and all contributors! We started these CP standardization efforts only 2.5 years ago and now we got an official standard for Constraint Programming API. I really hope it will contribute to the acceptance of Constraint Programming technology by the real-world application developers.
We currently have 3 working JSR-331 implementations based on these open-sourced CP solvers: Choco, JaCoP, and Constrainer. Several more CP vendors expressed their intention to provide JSR-331 implementations too. I expect that this year we will receive and make publicly available implementations from these teams:
- IBM CP Optimizer (Jean-Francois Puget and Paul Shaw)
- Cream (Naoyuki Tamura)
- JSetL (Federico Bergenti)
- JOpt (Nick Coleman).
Hopefully Google’s “or-tools” team will join these efforts too.
While the JSR-331 Final Release is a very important milestone, it is just a milestone on the long road to CP Standardization. We are switching to the Maintenance mode. Essentially, it means that we will continue JSR-331 development by adding new features in accordance with already specified plans. As the Maintenance Lead, I will collect suggestions for modifications and improvements to the Final Release. We will fix typos and bugs, provide updates to accommodate new features and changing technology. Among our immediate tasks are: improvement of the TCK with different compliance tests, implementations of real constrained variables and additional global constraints. We will work on development of several vertical packages such as Scheduling, Configuration, and Routing that will be build on top of JSR-331 in a vendor-neutral way. You may take a look at examples of the initial implementation of the Scheduler. All CP specialists who want to contribute may get an access to the source code repository – just drop me an email.