So, this is a large one, merging smaller feature branches might have been better, but there were quite a few places where interdependencies existed, so this is now what it is.
I'll try to be brief about all changes:
Updated build.gradle and added a task to download current identifiers.org registry file on build
Updated bigg_docker container to release 1.6 of BiGG Models
Renamed image from java to polisher to remove source of error when running MP in docker - i.e. docker-compose java java -jar -> docker-compose polisher java -jar
Decoupled BiGGDB and AnnotateDB instances from constructors in polishing and annotation steps and converted them to static for better handling across different call sites, avoiding passing them across multiple classes - singleton might have been a better choice
Added code to use JSBML offline validation instead of online validator - left old code which can be toggled by flag. We need to decide, if we want to remove this
Changed default ports for BiGGDB and ADB to correctly work in the docker variant
Replaced Connection with a hikari Connection Pool, greatly improving performance (from several hours to about 35 min on my computer)
Moved most is* queries into QueryOnce class, basically caching the results and removing overhead of a lot of queries
Rewrote identifiers.org registry parsing to support current JSON schema
Moved Annotation URI handling to Registry class to centralize and unify handling, as this was slightly different depending on input file type
Rewrote JSONParser to be more stable and adhere to schema used by cobrapy, with capabilities to correct for small schema violations
Added a rudimentary JSONwriter class, mainly for debugging purposes, which might be extended to a real JSON writer later on
Moved MatlabFields into own class
Moved GPR parsing into own class (GPRParser), added small fixes for merging of associations and code to convert invalid fbcV1 associations in model notes to correct fbcV2 GeneProductAssociations
Added basic tests for BiGGAnnotation, JSONParser, Registry
Rewrote BiGGId class to a regex based approach, should now recognize more ids correctly as BiGGIds. Changed behaviour for pseudoreactions. These are handled according to the specification now, i.e. no R_ prefix before EX, DM, SK or BIOMASS reactions.
Updated UnitTest engine to JUnit5
Removed remaining references to SQLite
This should hopefully be ready for at least a beta release now.
What remains to be done before a proper release:
More testing, especially edge cases for annotation and BiGGId functionality
Issues with id handling, most prominently species with "_boundary" at the end of the name. Reverted code to former behaviour right now, i.e. species id remains as invalid BiGGId
Clean up for logger messages
Handling issues that arise during testing
Testing/adding functionality to extract information from nodes into their proper SBML level 3 version 1 elements/attributes, e.g. fbc. (Feature Request Alina, would be nice to have an issue for that)
So, this is a large one, merging smaller feature branches might have been better, but there were quite a few places where interdependencies existed, so this is now what it is. I'll try to be brief about all changes:
This should hopefully be ready for at least a beta release now. What remains to be done before a proper release: