James Ahlborn Upgrading from Jackcess 2.x to 3.x

Unlike the change from 1.x to 2.x, the change from 2.x to 3.x is relatively non-impactful. The major change was that 3.x requires Java 8+. Other than that, the Jackcess API should be binary compatible with existing code. Some additional notes:

  • Dependencies have been updated.
    • Commons-lang has been replaced with Commons-lang3. This is used internally so it should not really affect code using the Jackcess API.
    • Log4j is no longer referenced at all. The included logging file is now configured for the java.util logging framework. Of course any bridge compatible with Commons-logging may still be utilized.
    • The optional Apache POI dependency has been updated to 4.0 (if utilized for advanced OLE support).
  • LocalDateTime is now the preferred date/time type.
    • There are now parallel LocalDateTime based methods for all Date based methods. That said, use of these two collections of methods is mutally exclusive. By default, the backwards compatible Date based methods are enabled. The LocalDateTime based methods can be enabled by setting the appropriate DateTimeType on the Database.
  • Path is now supported.
    • There are now parallel Path based methods for all File based methods.

Working with Jackcess Encrypt

If you are using the Jackcess Encrypt project, then you will need to use a version compatible with the relevant Jackess API. Fortunately, the major versions match, so it's pretty simple:

  • Jackcess 3.x -> Jackcess Encrypt 3.y
  • Jackcess 2.x -> Jackcess Encrypt 2.y
  • Jackcess 1.x -> Jackcess Encrypt 1.y

Moving forward, all new feature development will be in Jackcess 3.x. Some bugfixes may be backported to a 2.x branch on a case by case basis. However, no new feature development will be done on the 2.x branch.