Hello Suryaa
I wasn't aware that Apache Derby was going to be retired. Thanks for the
information! Then yes, we should definitively transition to another
database. Apache SIS is already compatible with HSQL, H2 and PostgreSQL,
with those 3 databases tested in JUnit tests. It may also be compatible
with other databases, we have just not tried other. In the meantime
(before the transition to another database), for using the current
version of SIS with a different database, replace the
`sis-embedded-data` dependency by `sis-epsg` and follow the instructions
there:
https://sis.apache.org/epsg.html#existing
Users can specify their own `javax.sql.DataSource` providing connections
to an initially empty database. If the `sis-epsg` JAR file is present in
the dependencies, it will automatically creates the EPSG tables when
first needed (note that if the EPSG tables already exist, they will not
be updated. Therefore, upgrading `sis-epsg` is not sufficient for
upgrading the tables, the tables must also be deleted for forcing a
recreation). For a programmatic shutdown, one possible way is to first
invoke `Configuration.shutdown()` then close the `DataSource` in the
database-specific way. If this way is not convenient, SIS uses JVM
shutdown hooks internally, but does not currently provides public API
for interacting with them.
For the roadmap, we plan to make a 1.6 release this week for addressing
a security issue in the reading of XML documents (GML, GPX or ISO
19139). I propose that we keep Derby for that release, then transition
to another database just after. The intent is to keep the differences
compared to 1.5 small enough for reducing the risk that some users
perceive the changes as a barrier for upgrading to 1.6.
Regards
Martin
Le 20/01/2026 à 13:38, Suryaa Charan Shivakumar a écrit :
Hello team,
Happy new year! We have been experimenting with using Apache SIS
within Apache AsterixDB to support EPSG CRS definitions. Currently,
each AsterixDB worker node runs an embedded Apache Derby instance
within its JVM to service queries requiring CRS information.
Given the recent retirement of the Apache Derby project
<https://db.apache.org/derby/#Derby+Retired>, we are evaluating our
migration options and have two primary questions:
1. Migration to H2/HSQL: Are there official plans for Apache SIS to
migrate its default EPSG metadata provider from Derby to another
engine like H2 or HSQL? Specifically, can we use H2 directly with
the current version of Apache SIS for EPSG lookups, and has this
combination been tested or verified for compatibility?
2. Programmatic Shutdown: Since we run these as embedded instances
across many worker nodes, we are looking for a reliable way to
programmatically shut down the database instance to free up
resources. We noted that H2 offers straightforward ways to trigger
a shutdown via code; does Apache SIS provide a standardized hook
to manage the lifecycle (specifically the closure) of the
underlying EPSG database?
We would appreciate any guidance or roadmaps you can share regarding
these embedded database transition.
Best Regards,
Suryaa Charan