Skip to content

Future proof duckdb-java by making it a named module. #296

@parsaloi

Description

@parsaloi

Bug definition
I just hit an unexpected compile time error when I named my module, which requires org.duckdb

To Reproduce

module com.example.dsl.dsl.main {
    requires org.duckdb; // This is currently results in a compile time error as  duckdb-java is yet to have a module definition
    //requires duckdb.jdbc;
    requires java.sql;
    // ...

    exports com.example.dsl.sql.core;
    exports com.example.dsl.sql.dialects;
    exports com.example.dsl.sql.errors;
    exports com.example.dsl.sql.execution;
    exports com.example.dsl.sql.transactions;

    provides com.example.dsl.sql.execution.SqlExecutor
            with com.example.dsl.sql.execution.DuckDBExecutor,
                    com.example.dsl.sql.execution.SQLiteExecutor,
                    com.example.dsl.sql.execution.PostgreSQLExecutor;
}


/// This produces the following compile time error:
org.duckdb - Module not found: org.duckdb

duckdb.jdbc - dsl/src/main/java/module-info.java:24: error: module not found: duckdb.jdbc
      requires duckdb.jdbc; 

Solution proposal
Add module-info.java (module definition) for the org.duckdb library to, add/move package-info.java (package definition) to the respective packages e.g., org.duckdb.io, org.duckdb.user

Alternatives I've considered
Leave it as is, but eventually we will have to handle this, particularly for this library as the java platform evolves:

Environment

  • OS: Linux
  • CPU architecture: amd64
  • org.duckdb.duckdb_jdbc version v1.3.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions