<item name="Downloads" href="https://sourceforge.net/project/showfiles.php?group_id=134943"/>
<item name="SourceForge Project" href="https://sourceforge.net/projects/jackcess/"/>
<item name="Cookbook" href="cookbook.html"/>
- <item name="Upgrading to Jackcess 3.5.x" href="jackcess-3_5.html"/>
- <item name="Upgrading to Jackcess 3.x" href="jackcess-3.html"/>
- <item name="Upgrading to Jackcess 2.x" href="jackcess-2.html"/>
+ <item name="Upgrading to Jackcess 4.x" href="jackcess-4.html"/>
+ <item name="Upgrading to Older Versions" href="jackcess_upgrades.html"/>
<item name="FAQ" href="faq.html"/>
<item name="Support" href="https://sourceforge.net/projects/jackcess/support"/>
<item name="Jackcess Encrypt" href="https://jackcessencrypt.sourceforge.io/"/>
<subsection name="Java 9+ Compatibility (2021-TBD)">
<p>
- While Jackcess still only requires Java 8+, as of the 4.0.0 release
- it now includes an Automatic-Module-Name of
- <code>com.healthmarketscience.jackcess</code> in its manifest. That
- allows it to be used in the module path for Java 9+ projects. Note
- that using jackcess as a module requires enabling the
- <code>java.sql</code> module.
+ While Jackcess <i>still only requires Java 8+</i>, as of the 4.0.0
+ release it now includes an Automatic-Module-Name of
+ <code>com.healthmarketscience.jackcess</code> in its manifest. This
+ allows it to be used in the module path for Java 9+ projects.
</p>
<p>
This release is binary compatible with the 3.x release series.
--- /dev/null
+<?xml version="1.0"?>
+
+<document>
+ <properties>
+ <author email="jahlborn@users.sf.net">James Ahlborn</author>
+ <title>Upgrading from Jackcess 3.x (or 3.5.x) to 4.x</title>
+ </properties>
+ <body>
+
+ <section name="Jackcess 4.0">
+ <subsection name="Just give it to me straight">
+ <p>
+ Jackcess 4.x is largely binary compatible with the previous 3.x (and
+ 3.5.x) versions. In order to be more "module friendly", the
+ exceptions thrown from a few infrequently used methods have changed
+ from <code>SQLException</code> to <code>IOException</code>. Other
+ than that, code compiled against the 3.x series should work fine
+ with the 4.x series.
+ </p>
+
+ <p>
+ Even though Jackcess is now Java 9+ module compatible, <i>it still
+ only requires Java 8+</i>. However, Jackcess can now be safely used
+ in the module path of a Java 9+ project (with the module name of
+ <code>com.healthmarketscience.jackcess</code>). There are a few
+ features which require additional core Java modules to be enabled
+ (but these modules are not required if the corresponding features
+ are not utilized).
+ <ul>
+ <li><b>java.sql</b></li>
+ <ul>
+ <li>This module is necessary if Jackcess will need to interact
+ with any of the classes from the <code>java.sql</code> package
+ (e.g. handling <code>Clob</code>/<code>Blob</code> or using
+ <code>ImportUtil</code>).</li>
+ </ul>
+ <li><b>java.scripting</b></li>
+ <ul>
+ <li>This module is necessary if expression evaluation is
+ enabled (the default) and the database includes expressions
+ (e.g. default values, calculated columns, validation
+ rules, etc.).</li>
+ </ul>
+ </ul>
+ </p>
+
+ <h4>Working with Jackcess Encrypt</h4>
+ <p>
+ If you are using the <a href="https://jackcessencrypt.sourceforge.io/">Jackcess Encrypt</a>
+ 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:
+ </p>
+ <ul>
+ <li>Jackcess 4.x -> Jackcess Encrypt 4.y</li>
+ <li>Jackcess 3.x -> Jackcess Encrypt 3.y</li>
+ <li>Jackcess 2.x -> Jackcess Encrypt 2.y</li>
+ <li>Jackcess 1.x -> Jackcess Encrypt 1.y</li>
+ </ul>
+ </subsection>
+ </section>
+
+ </body>
+</document>
--- /dev/null
+<?xml version="1.0"?>
+
+<document>
+ <properties>
+ <author email="jahlborn@users.sf.net">James Ahlborn</author>
+ <title>Upgrading to Older Versions</title>
+ </properties>
+ <body>
+
+ <section name="Upgrading to Older Versions">
+ <ul>
+ <li><a href="jackcess-3_5.html">Upgrading to Jackcess 3.5.x</a></li>
+ <li><a href="jackcess-3.html">Upgrading to Jackcess 3.x</a></li>
+ <li><a href="jackcess-2.html">Upgrading to Jackcess 2.x</a></li>
+ </ul>
+ </section>
+
+ </body>
+</document>