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

Open
#296 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
java
Domain
databases

Research direction

Start with the module-info.java and package-info.java files named in the proposal, then reproduce the Java module compilation failure using the example requires declarations. Determine the module metadata and package definitions needed for the org.duckdb library; done means a named client module can resolve org.duckdb without the reported module-not-found errors.

Written by the indexing model from the issue text.

Description

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
Dominant language
C++
Stars
127
Forks
80
Avg merge
13h 41m
Merged PRs (30d)
44

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from duckdb/duckdb-java

All issues in duckdb/duckdb-java

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.