Version 18

    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