This release is mostly due to many, many upgrades in dependencies, which involved a few days of work on my part in getting the stack up to date with breaking changes. A partial list of upgrades:
- Jetty 9.2.2
- Log4j 2.0.2
- SLF4j 1.7.7
- Disruptor 3.3.0
- Less4j 1.8.0
- Tanuki Service Wrapper 3.5.25
- Ext JS 5.0.1 (work still in progress)
- Apache Commons DPCP + Pool + Codec + FileUpload + HTTP Client
- Groovy 2.3.6
- JRuby 1.7.13
- LuaJ 3.0
- Clojure 1.6.0
- Quercus 4.0.39
- jDeb
- Redline RPM
- and more ...
The whole stack is at the very cutting edge! Ouch! Except for one niggling problem:
NASHORN?As of now Sincerity will default to using Rhino, even on JVM 8. The reason is that the the currently released Nashorn is simply broken, and will be broken likely until the release of JVM 8u40 in March 2015. Only then, after testing, will I release a version of Sincerity that defaults to Nashorn.
That said, the whole stack
does work with the development build of Nashorn, and works well: performance is overall significantly better than Rhino, though at the expense of slower startup time due to Nashorn's resource-heavy compilation. There are occasional bugs as Nashorn progresses, which I am constantly reporting to the Nashorn team, and they are prompt to fix. So, though I use it on some production systems, it is definitely not recommended for the general audience at this time.
Still, if you want to use Nashorn with Prudence/Sincerity, you will get good results with the development release, and of course I would very appreciate testing and bug reports:
1) Fetch the Mercurial repository:
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/nashorn2) Build it and replace the nashorn.jar in your JDK.
3) Then force Sincerity to use Nashorn via an environment var:
SINCERITY_JAVASCRIPT=NashornPRUDENCE 2.0-beta8One new feature is support for Cross-Origin Resource Sharing (CORS) via a filter:
http://threecrickets.com/prudence/manual/filters/#built-in-filters_cross-origin-resource-sharing-corsThis in particular allows you to support Swagger-compliant REST documentation. More robust support for this is forthcoming.