Skip to content

Bump JMEOS bindings to 1.3 (wrap MEOS C API 1.3) #1

@estebanzimanyi

Description

@estebanzimanyi

Background

MobilitySpark currently consumes JMEOS via two vendored JARs in libs/:

  • MobilityDB-JMEOS.jar (3.9 MB)
  • MobilityDB-JMEOS-Linux.jar (21 MB — bundles the MEOS native library)

The Maven dependency block in pom.xml is decorative — JMEOS is not published on Maven Central and the declared org.jmeos:meos:1.0 coordinate doesn't resolve from any public repo. The actual integration is JAR-based.

JMEOS itself is undergoing a major upgrade to wrap the MEOS C API 1.3 in JMEOS PR #9 — currently OPEN, BLOCKED on review since 2025-10-10. PR #8 is from a fork (SachaDelsaux/JMEOS:JMEOS_v1.3) and represents what the user calls "JMEOS 1.3". Once it merges, MobilitySpark needs a coordinated bump: build new JARs, replace the vendored copies, and update any code paths that depend on changed JMEOS signatures.

This issue tracks that work.

What changes upstream

JMEOS PR #8 stats:

The Maven artefact version stays at 1.0-SNAPSHOT on both main and the v1.3 branch. The "1.3" refers to the MEOS C API version the bindings wrap, not a JMEOS Maven version bump.

What MobilitySpark consumes from JMEOS

A full grep across the four Java files in src/main/java/ finds two JMEOS imports total:

import static jmeos.functions.functions.meos_finalize;
import static jmeos.functions.functions.meos_initialize;

Both methods still exist in PR #8's functions.java (lines 4430 and 4435). The API-compat risk on the MobilitySpark side is essentially zero — the bump should compile cleanly once the new JARs are in place.

Staged plan

Stage Effort Blocker
0 JMEOS PR #8 merges to MobilityDB/JMEOS:main external Currently OPEN, BLOCKED on review since 2025-10-10. Needs @GaspardMerten + @mschoema sign-off.
1 Build new MobilityDB-JMEOS.jar + MobilityDB-JMEOS-Linux.jar from the merged 1.3 bindings, against MEOS 1.3 native library ~30 min, requires Linux build env with MEOS 1.3 installed Stage 0
2 Replace the two JARs in MobilitySpark/libs/; correct the pom.xml dependency block (the <artifactId>meos</artifactId> is a typo for jmeos, but currently has no functional effect since the artefact does not resolve from any Maven repo) ~30 min mechanical Stage 1
3 Verify MobilitySpark compiles with mvn clean install; run integration test (the meos_initialize / meos_finalize calls in Main.java are the canary) ~30 min Stage 2
4 Update README to reference MEOS 1.3 (currently the cmake instructions install whatever is on MobilityDB/MobilityDB:master); pin the MEOS source version explicitly ~15 min Stage 3

Total once unblocked: ~2 hours of focused work. All gated on JMEOS PR #8 merging.

Companion artefact

A draft PR captures the staged plan in-tree at doc/BUMP_TO_JMEOS_1.3.md so contributors can find it without leaving the repo: see [PR linked below].

Outstanding questions for upstream coordination

  1. JMEOS PR doc: add PR Reviewer Guide + visibility wiring (uniform with MobilityDB/MobilityDuck) #8 cleanup items — flag back to @GaspardMerten:
    • Remove the hs_err_pid17967.log JVM-crash binary.
    • Move or exclude scale10.csv (~50 MB) per the PR body's own note.
  2. MEOS 1.3 native library availability — confirm a stable tag / release on MobilityDB/MobilityDB so the Linux JAR can bundle it. The cmake MEOS=ON build path needs a known-good source state for reproducibility.
  3. JMEOS Maven publication strategy — long-term, JMEOS publication on Maven Central would replace the vendored-JAR pattern in MobilitySpark with a clean <dependency> block. Out of scope for this bump but worth raising.

Cc

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions