JBoss Project JDK Version Requirements

The purpose of this wiki is to document the current project JDK requirements in one place.


Recommended JDK

The current recommended JDK, which is supported in all JBoss products is Java 6. The main reason is that Java 5 has been EOLd. Due to this reason, and also newer specs requiring Java 6, it's fine to upgrade projects to compile on 6, however, care should be taken to ensure this does not break other projects which are forced to work on earlier versions.


JDK 1.4 or Newer

Project NameReason
HibernatePrior to 3.5 could run in 1.4 or 1.5; uses 1.5 for build.  3.5 adds the ability to run in 1.6 (JDBC 4) as well; uses 1.5 & 1.6 for build.  3.6 will drop 1.4 compat.

JDK 1.5 or Newer

Project NameReason
All EE5 API JarsEE5 requires Java 5, and should support Java 5 implementations
Drools-guvnorNeeds java 5
Drools-expertNeeds java 5
JSFUnitRuns on Java 5, but JDK6 needed to compile the project because of a JDK5 bug
JBoss Marshalling (<=1.2)ServiceLoader features in 1.2 require Java 6 though...
XNIO 1.x

Although I see VFS3 is JDK6 based, any particular reason?

HornetQRequires at least Java 5, but we recommend Java 6
JBoss MessagingRequires java5
ShrinkWrapJava6 for compilation (@Override / interfaces), Java5 runtime
JBoss Tools 3.0|3.1Compiled for Java 5 since that is what AS 4.x and Eclipse 3.4 supports.

JDK 1.6 or Newer

Project NameReasons other than 5 EOL (if any) 
ModeShapeDependencies (right now only Infinispan)

Various java projects - all built on java 6 (mostly due to dependencies that require 6)

JBoss Marshalling (1.3+)ServiceLoader, Protocol optimizations for JDK 6 types
XNIO 2.xServiceLoader
JBoss Remoting 3ServiceLoader, Dependencies, support for JDK 6 types
JBoss LogManagerUses UTF-8 property files (weak reason, I know)
JBoss Threads 2.xJDK 6 concurrent data structure & thread pool features
JGroupsConcurrent data structures in JDK 6
TeiidJDBC 4

N/A; all target runtimes are JDK6 so we upgraded

InfinispanJDK 6 concurrent libs