diff --git a/build-jmeos.sh b/build-jmeos.sh index f6a59fb..5c165c3 100755 --- a/build-jmeos.sh +++ b/build-jmeos.sh @@ -115,6 +115,26 @@ LIBMEOS_SO="$(find "${MDB_DIR}/build" -name 'libmeos.so' -print -quit)" [ -n "${LIBMEOS_SO}" ] || { echo "error: libmeos.so not produced by the MEOS build" >&2; exit 1; } log "Built ${LIBMEOS_SO}" +# --------------------------------------------------------------------------- +# 1b. Provision MEOS's SRID/network reference data at its default runtime path. +# --------------------------------------------------------------------------- +# libmeos resolves SRIDs by reading spatial_ref_sys.csv from a fixed default +# path (meos/src/geo/tspatial_transform_meos.c: SPATIAL_REF_SYS_CSV = +# "/usr/local/share/spatial_ref_sys.csv"). A full `cmake --install` would place +# it there (meos/CMakeLists.txt), but this script only builds the `meos` target, +# so the data files are staged explicitly. Without them, any SRID-touching call +# (npoint, tgeompoint) makes libmeos print "Cannot open the spatial_ref_sys.csv +# file" to stdout, which corrupts the surefire fork channel and terminates the +# JVM under test ("The forked VM terminated without properly saying goodbye"). +MEOS_DATA_DIR="${MEOS_DATA_DIR:-/usr/local/share}" +log "Provisioning MEOS reference data into ${MEOS_DATA_DIR}" +provision_data() { + local src="$1" dst="$2" + install -Dm644 "${src}" "${dst}" 2>/dev/null || sudo install -Dm644 "${src}" "${dst}" +} +provision_data "${MDB_DIR}/meos/src/geo/spatial_ref_sys.csv" "${MEOS_DATA_DIR}/spatial_ref_sys.csv" +provision_data "${MDB_DIR}/meos/examples/data/ways1000.csv" "${MEOS_DATA_DIR}/ways1000.csv" + # --------------------------------------------------------------------------- # 2. Build JMEOS.jar against that libmeos.so. # --------------------------------------------------------------------------- diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeCbuffer.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeCbuffer.java index 269f8a8..f2f0f19 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeCbuffer.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeCbuffer.java @@ -100,7 +100,7 @@ public static int cbuffer_hash(Pointer arg0) { *
Pure per-event; safe in any scalar position.
*Classification: scalar comparison/hash
*/ - public static int cbuffer_hash_extended(Pointer arg0, int arg1) { + public static long cbuffer_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "cbuffer_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); @@ -1868,12 +1868,12 @@ public static String cbuffer_as_ewkt(Pointer arg0, int arg1) { *I/O / catalog / lifecycle helper.
*Classification: IO/serialization
*/ - public static String cbuffer_as_hexwkb(Pointer arg0, byte arg1, Pointer arg2) { + public static String cbuffer_as_hexwkb(Pointer arg0, byte arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "cbuffer_as_hexwkb requires libmeos — set -Dmobilitykafka.meos.enabled=true"); } - return GeneratedFunctions.cbuffer_as_hexwkb(arg0, arg1, arg2); + return GeneratedFunctions.cbuffer_as_hexwkb(arg0, arg1); } /** diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeNpoint.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeNpoint.java index 4cf74ec..5f84e0c 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeNpoint.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreeNpoint.java @@ -152,7 +152,7 @@ public static int npoint_hash(Pointer arg0) { *Pure per-event; safe in any scalar position.
*Classification: scalar comparison/hash
*/ - public static int npoint_hash_extended(Pointer arg0, int arg1) { + public static long npoint_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "npoint_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreePose.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreePose.java index e17b637..9fcd881 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreePose.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsFreePose.java @@ -139,7 +139,7 @@ public static int pose_hash(Pointer arg0) { *Pure per-event; safe in any scalar position.
*Classification: scalar comparison/hash
*/ - public static int pose_hash_extended(Pointer arg0, int arg1) { + public static long pose_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "pose_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); @@ -906,12 +906,12 @@ public static String pose_as_ewkt(Pointer arg0, int arg1) { *I/O / catalog / lifecycle helper.
*Classification: IO/serialization
*/ - public static String pose_as_hexwkb(Pointer arg0, byte arg1, Pointer arg2) { + public static String pose_as_hexwkb(Pointer arg0, byte arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "pose_as_hexwkb requires libmeos — set -Dmobilitykafka.meos.enabled=true"); } - return GeneratedFunctions.pose_as_hexwkb(arg0, arg1, arg2); + return GeneratedFunctions.pose_as_hexwkb(arg0, arg1); } /** diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSTBox.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSTBox.java index 2cec49a..f8d3e78 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSTBox.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSTBox.java @@ -275,7 +275,7 @@ public static int stbox_hash(Pointer arg0) { *Object-model role: {@code accessor}.
*Classification: role=accessor
*/ - public static int stbox_hash_extended(Pointer arg0, int arg1) { + public static long stbox_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "stbox_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); @@ -695,12 +695,12 @@ public static Pointer stbox_zmin(Pointer arg0) { *Object-model role: {@code output}.
*Classification: IO/serialization
*/ - public static String stbox_as_hexwkb(Pointer arg0, byte arg1, Pointer arg2) { + public static String stbox_as_hexwkb(Pointer arg0, byte arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "stbox_as_hexwkb requires libmeos — set -Dmobilitykafka.meos.enabled=true"); } - return GeneratedFunctions.stbox_as_hexwkb(arg0, arg1, arg2); + return GeneratedFunctions.stbox_as_hexwkb(arg0, arg1); } /** diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSet.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSet.java index b80a2f3..47a3cfd 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSet.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSet.java @@ -162,7 +162,7 @@ public static int set_hash(Pointer arg0) { *Object-model role: {@code accessor}.
*Classification: role=accessor
*/ - public static int set_hash_extended(Pointer arg0, int arg1) { + public static long set_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "set_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpan.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpan.java index 75102b4..8f93ff9 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpan.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpan.java @@ -162,7 +162,7 @@ public static int span_hash(Pointer arg0) { *Object-model role: {@code accessor}.
*Classification: role=accessor
*/ - public static int span_hash_extended(Pointer arg0, int arg1) { + public static long span_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "span_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpanSet.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpanSet.java index 3eb5dad..7f0c714 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpanSet.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsSpanSet.java @@ -148,7 +148,7 @@ public static int spanset_hash(Pointer arg0) { *Object-model role: {@code accessor}.
*Classification: role=accessor
*/ - public static int spanset_hash_extended(Pointer arg0, int arg1) { + public static long spanset_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "spanset_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); diff --git a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsTBox.java b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsTBox.java index 2fd6827..4f65f6e 100644 --- a/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsTBox.java +++ b/kafka-streams-app/src/main/java/org/mobilitydb/meos/MeosOpsTBox.java @@ -176,7 +176,7 @@ public static int tbox_hash(Pointer arg0) { *Object-model role: {@code accessor}.
*Classification: role=accessor
*/ - public static int tbox_hash_extended(Pointer arg0, int arg1) { + public static long tbox_hash_extended(Pointer arg0, long arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "tbox_hash_extended requires libmeos — set -Dmobilitykafka.meos.enabled=true"); @@ -400,12 +400,12 @@ public static Pointer tbox_xmin_inc(Pointer arg0) { *Object-model role: {@code output}.
*Classification: IO/serialization
*/ - public static String tbox_as_hexwkb(Pointer arg0, byte arg1, Pointer arg2) { + public static String tbox_as_hexwkb(Pointer arg0, byte arg1) { if (!MEOS_AVAILABLE) { throw new UnsupportedOperationException( "tbox_as_hexwkb requires libmeos — set -Dmobilitykafka.meos.enabled=true"); } - return GeneratedFunctions.tbox_as_hexwkb(arg0, arg1, arg2); + return GeneratedFunctions.tbox_as_hexwkb(arg0, arg1); } /**