Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
313 changes: 313 additions & 0 deletions kafka-streams-app/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,317 @@
</plugin>
</plugins>
</build>
<!-- Optional extended temporal-type families, mirroring the MobilityDB/MEOS
CMake build flags. Family inclusion is selected at build time with the
same uppercase flag names and ON|OFF (also 1|0) values as MEOS:
-DCBUFFER=ON -DNPOINT=OFF -DPOSE=ON -DRGEO=ON -DH3=ON
Defaults match MEOS: NPOINT is included by default; CBUFFER, POSE, RGEO,
and H3 are excluded unless their flag is ON|1. RGEO requires POSE (enable
both). When a family is excluded, its generated MeosOps* facade sources
and its smoke test are dropped from the build. -->
<profiles>
<profile>
<id>cbuffer-exclude-unset</id>
<activation>
<property><name>!CBUFFER</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTCbuffer.java</exclude>
<exclude>**/meos/MeosOpsFreeCbuffer.java</exclude>
<exclude>**/meos/MeosOpsCbufferSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosCbufferSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>cbuffer-exclude-off</id>
<activation>
<property><name>CBUFFER</name><value>OFF</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTCbuffer.java</exclude>
<exclude>**/meos/MeosOpsFreeCbuffer.java</exclude>
<exclude>**/meos/MeosOpsCbufferSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosCbufferSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>cbuffer-exclude-zero</id>
<activation>
<property><name>CBUFFER</name><value>0</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTCbuffer.java</exclude>
<exclude>**/meos/MeosOpsFreeCbuffer.java</exclude>
<exclude>**/meos/MeosOpsCbufferSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosCbufferSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pose-exclude-unset</id>
<activation>
<property><name>!POSE</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTPose.java</exclude>
<exclude>**/meos/MeosOpsFreePose.java</exclude>
<exclude>**/meos/MeosOpsPoseSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosPoseSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pose-exclude-off</id>
<activation>
<property><name>POSE</name><value>OFF</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTPose.java</exclude>
<exclude>**/meos/MeosOpsFreePose.java</exclude>
<exclude>**/meos/MeosOpsPoseSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosPoseSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pose-exclude-zero</id>
<activation>
<property><name>POSE</name><value>0</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTPose.java</exclude>
<exclude>**/meos/MeosOpsFreePose.java</exclude>
<exclude>**/meos/MeosOpsPoseSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosPoseSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>rgeo-exclude-unset</id>
<activation>
<property><name>!RGEO</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTRGeometry.java</exclude>
<exclude>**/meos/MeosOpsTRGeometryInst.java</exclude>
<exclude>**/meos/MeosOpsFreeRgeo.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>rgeo-exclude-off</id>
<activation>
<property><name>RGEO</name><value>OFF</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTRGeometry.java</exclude>
<exclude>**/meos/MeosOpsTRGeometryInst.java</exclude>
<exclude>**/meos/MeosOpsFreeRgeo.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>rgeo-exclude-zero</id>
<activation>
<property><name>RGEO</name><value>0</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTRGeometry.java</exclude>
<exclude>**/meos/MeosOpsTRGeometryInst.java</exclude>
<exclude>**/meos/MeosOpsFreeRgeo.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>h3-exclude-unset</id>
<activation>
<property><name>!H3</name></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTh3index.java</exclude>
<exclude>**/meos/MeosOpsFreeH3.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>h3-exclude-off</id>
<activation>
<property><name>H3</name><value>OFF</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTh3index.java</exclude>
<exclude>**/meos/MeosOpsFreeH3.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>h3-exclude-zero</id>
<activation>
<property><name>H3</name><value>0</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTh3index.java</exclude>
<exclude>**/meos/MeosOpsFreeH3.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>npoint-exclude-off</id>
<activation>
<property><name>NPOINT</name><value>OFF</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTNpoint.java</exclude>
<exclude>**/meos/MeosOpsTNpointInst.java</exclude>
<exclude>**/meos/MeosOpsFreeNpoint.java</exclude>
<exclude>**/meos/MeosOpsNpointSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosNpointSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>npoint-exclude-zero</id>
<activation>
<property><name>NPOINT</name><value>0</value></property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<exclude>**/meos/MeosOpsTNpoint.java</exclude>
<exclude>**/meos/MeosOpsTNpointInst.java</exclude>
<exclude>**/meos/MeosOpsFreeNpoint.java</exclude>
<exclude>**/meos/MeosOpsNpointSet.java</exclude>
</excludes>
<testExcludes combine.children="append">
<testExclude>**/MeosNpointSmokeTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.mobilitydb.kafka.meos;

import functions.GeneratedFunctions;
import jnr.ffi.Pointer;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

/**
* Runtime check that the cbuffer facade family calls into libmeos and returns
* correct results. Compiled and run only when the build includes the cbuffer
* family ({@code -DCBUFFER=ON}); the family requires a libmeos built with
* {@code -DCBUFFER=ON}.
*/
@EnabledIfSystemProperty(named = "mobilitykafka.meos.enabled", matches = "true")
class MeosCbufferSmokeTest {

@BeforeAll
static void init() {
GeneratedFunctions.meos_initialize_error_handler((level, code, message) -> { });
GeneratedFunctions.meos_initialize();
}

@AfterAll
static void finalizeMeos() {
GeneratedFunctions.meos_finalize();
}

@Test
void cbuffer() {
Pointer cb = MeosOpsFreeCbuffer.cbuffer_make(MeosOpsFreeGeo.geom_in("POINT(1 1)", 0), 0.5);
assertNotNull(cb);
assertEquals(0.5, MeosOpsFreeCbuffer.cbuffer_radius(cb), 1e-9);
assertNotNull(MeosOpsFreeCbuffer.cbuffer_out(cb, 6));
}
}
Loading