Here are my notes. (Sorry that they are not general public notes. They are just for me. But, it might help you gleen how to alter ObjectDB build environment in a way where you don't have to wait for the rest of the world to finish Java 9 updating their 3rd party modules that ObjectDB may require.) "Modularize" is the tool I created, which helps extracts a JAR ("Modularize Extract"), creates the module-info.java file ("Modularize ModuleInfo "), and compresses the resulting files into a modular JAR ("Modularize Package"). When we get Java 9 version of ObjectDB that no longer has javax/transaction/Synchronization.class requirement, we can remove java.transaction.jar from our ModUpgrades, and thus can remove ModUpgrades folder and remove its javac compiler parameters from our IDE build and run configurations. com.objectdb.jar ("com.objectdb.notes.txt") =========================================== Download: http://www.objectdb.com Decompress "objectdb-2.7.2_05.zip". Copy "bin/objectdb.jar" to UniLogical's Modularize's WorkingDirectory folder. "Modularize Extract". Remove "javax" but use it for: java.transaction (see ModUpgrades/java.transaction.notes.txt) javax.jdo (see javax.jdo.notes.txt) javax.persistence (see javax.persistence.notes.txt) To get past org.springframework dependency, in WorkingDirectory: (Or get it from current com.objectdb.jar.) - Create org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter.java with this content: package org.springframework.orm.jpa.vendor; public class AbstractJpaVendorAdapter extends Object{ } - javac org\springframework\orm\jpa\vendor\AbstractJpaVendorAdapter.java "Modularize ModuleInfo com.objectdb" "Modularize Package" javax.jdo.jar ("javax.jdo.notes.txt") ===================================== Take "javax/jdo" out of "objectdb-2.7.2_05.zip/bin/objectdb.jar". "Modularize ModuleInfo javax.jdo" "Modularize Package" javax.persistence.jar ("javax.persistence.notes.txt") ===================================================== Take "javax/persistence" out of "objectdb-2.7.2_05.zip/bin/objectdb.jar". "Modularize ModuleInfo javax.persistence" "Modularize Package" java.transaction.jar ("java.transaction.notes.txt") =================================================== Need dummy ModUpdates/java.transaction.jar to be able to build new one. Create manual "module-info.java" with empty for "java.transaction". "Modularize Package" Copy to ModUpdates Take "javax/transaction" out of "objectdb-2.7.2_05.zip/bin/objectdb.jar". Delete "transaction/xa". Obtain "/jmods/java.transaction.jmod". "Modularize Extract". Copy "classes/javax" on top of above so we get the 3 newer classes from Java 9 (javax/transaction/InvalidTransactionException.class, TransactionRequiredException .class, TransactionRolledbackException.class). "Modularize ModuleInfo java.transaction" "Modularize Package" Put module in ModUpgrades. ModUpdates folder notes ======================= The "ModUpgrades" folder is used to override deprecated modules, the ones that are allowed to be upgraded, with our own replacement modules. See http://openjdk.java.net/jeps/261 and search for "(An asterisk, '*', in these lists indicates an upgradeable module.)" to see which modules are allowed to be upgraded. Also see http://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-F640FA9D-FB66-4D85-AD2B-D931174C09A3 !!!!!!!!!! Use "--upgrade-module-path ModUpgrades" in javac and java commands to override these JDK internal modules. Add the following to our projects' Settings > Build, Execution, Deployment > Compiler > Java Compiler > Java Options > Additional command line parameters: --upgrade-module-path ../MoxyDoxServer/ModUpgrades !!!!!!!!!!