Skip to content

Commit 68f5845

Browse files
committed
ARTEMIS-5972: Replace JNI with Panama Foreign Function & Memory (FFM) API for Journal Native Layer
1 parent 006d09c commit 68f5845

29 files changed

Lines changed: 5430 additions & 0 deletions

artemis-ffm/pom.xml

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
<!--
2+
Licensed to the Apache Software Foundation (ASF) under one or more
3+
contributor license agreements. See the NOTICE file distributed with
4+
this work for additional information regarding copyright ownership.
5+
The ASF licenses this file to You under the Apache License, Version 2.0
6+
(the "License"); you may not use this file except in compliance with
7+
the License. You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
-->
17+
<project xmlns="http://maven.apache.org/POM/4.0.0"
18+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
20+
<modelVersion>4.0.0</modelVersion>
21+
<parent>
22+
<groupId>org.apache.artemis</groupId>
23+
<artifactId>artemis-pom</artifactId>
24+
<version>2.55.0-SNAPSHOT</version>
25+
<relativePath>../artemis-pom/pom.xml</relativePath>
26+
</parent>
27+
28+
<artifactId>artemis-ffm</artifactId>
29+
<packaging>jar</packaging>
30+
<name>Apache Artemis FFM</name>
31+
32+
<properties>
33+
<jmh.version>1.37</jmh.version>
34+
35+
<test.stress.time>5000</test.stress.time>
36+
37+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
38+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
39+
40+
<maven.compiler.source>22</maven.compiler.source>
41+
<maven.compiler.target>22</maven.compiler.target>
42+
<maven.compiler.release>22</maven.compiler.release>
43+
44+
<activemq-surefire-argline>
45+
-Dtest.stress.time=${test.stress.time} --enable-native-access=ALL-UNNAMED
46+
</activemq-surefire-argline>
47+
</properties>
48+
49+
<dependencies>
50+
<dependency>
51+
<groupId>org.slf4j</groupId>
52+
<artifactId>slf4j-api</artifactId>
53+
<version>${slf4j.version}</version>
54+
<scope>provided</scope>
55+
<!-- License: MIT -->
56+
</dependency>
57+
58+
<dependency>
59+
<groupId>junit</groupId>
60+
<artifactId>junit</artifactId>
61+
<scope>test</scope>
62+
<!-- License: EPL 1.0 -->
63+
</dependency>
64+
<dependency>
65+
<groupId>org.junit.vintage</groupId>
66+
<artifactId>junit-vintage-engine</artifactId>
67+
<scope>test</scope>
68+
</dependency>
69+
<dependency>
70+
<groupId>org.junit.jupiter</groupId>
71+
<artifactId>junit-jupiter</artifactId>
72+
<scope>test</scope>
73+
</dependency>
74+
<dependency>
75+
<groupId>org.openjdk.jmh</groupId>
76+
<artifactId>jmh-core</artifactId>
77+
<version>${jmh.version}</version>
78+
<scope>test</scope>
79+
</dependency>
80+
<dependency>
81+
<groupId>org.openjdk.jmh</groupId>
82+
<artifactId>jmh-generator-annprocess</artifactId>
83+
<version>${jmh.version}</version>
84+
<scope>test</scope>
85+
</dependency>
86+
<dependency>
87+
<groupId>org.slf4j</groupId>
88+
<artifactId>slf4j-simple</artifactId>
89+
<version>${slf4j.version}</version>
90+
<scope>test</scope>
91+
<!-- License: MIT -->
92+
</dependency>
93+
</dependencies>
94+
95+
<profiles>
96+
<profile>
97+
<id>linux</id>
98+
<activation>
99+
<os>
100+
<family>unix</family>
101+
<name>Linux</name>
102+
</os>
103+
</activation>
104+
</profile>
105+
<profile>
106+
<id>non-linux</id>
107+
<activation>
108+
<os>
109+
<family>mac</family>
110+
</os>
111+
</activation>
112+
<build>
113+
<plugins>
114+
<plugin>
115+
<groupId>org.apache.maven.plugins</groupId>
116+
<artifactId>maven-surefire-plugin</artifactId>
117+
<configuration>
118+
<skipTests>true</skipTests>
119+
</configuration>
120+
</plugin>
121+
</plugins>
122+
</build>
123+
</profile>
124+
<profile>
125+
<id>windows</id>
126+
<activation>
127+
<os>
128+
<family>windows</family>
129+
</os>
130+
</activation>
131+
<build>
132+
<plugins>
133+
<plugin>
134+
<groupId>org.apache.maven.plugins</groupId>
135+
<artifactId>maven-surefire-plugin</artifactId>
136+
<configuration>
137+
<skipTests>true</skipTests>
138+
</configuration>
139+
</plugin>
140+
</plugins>
141+
</build>
142+
</profile>
143+
<profile>
144+
<id>no-libaio</id>
145+
<activation>
146+
<file>
147+
<missing>/usr/lib64/libaio.so.1</missing>
148+
</file>
149+
</activation>
150+
<properties>
151+
<skipTests>true</skipTests>
152+
<maven.compiler.skipMain>false</maven.compiler.skipMain>
153+
<native.skip>true</native.skip>
154+
</properties>
155+
<build>
156+
<plugins>
157+
<plugin>
158+
<groupId>org.apache.maven.plugins</groupId>
159+
<artifactId>maven-surefire-plugin</artifactId>
160+
<configuration>
161+
<skipTests>${skipTests}</skipTests>
162+
</configuration>
163+
</plugin>
164+
<plugin>
165+
<groupId>org.apache.maven.plugins</groupId>
166+
<artifactId>maven-compiler-plugin</artifactId>
167+
<executions>
168+
<execution>
169+
<id>default-compile</id>
170+
<phase>compile</phase>
171+
<goals><goal>compile</goal></goals>
172+
</execution>
173+
</executions>
174+
<configuration>
175+
<skip>${native.skip}</skip>
176+
</configuration>
177+
</plugin>
178+
</plugins>
179+
</build>
180+
</profile>
181+
</profiles>
182+
183+
<build>
184+
<resources>
185+
<resource>
186+
<directory>${basedir}/target/output/</directory>
187+
</resource>
188+
</resources>
189+
<plugins>
190+
<plugin>
191+
<groupId>org.apache.maven.plugins</groupId>
192+
<artifactId>maven-compiler-plugin</artifactId>
193+
<executions>
194+
<execution>
195+
<id>default-compile</id>
196+
<!-- Running compilation at generate-sources stage instead, to also generate the .h file
197+
ahead of running the cmake build at process-sources phase, in the profiles above -->
198+
<phase>generate-sources</phase>
199+
<goals>
200+
<goal>compile</goal>
201+
</goals>
202+
<configuration>
203+
<compilerArgs>
204+
<arg>-h</arg>
205+
<arg>./target/include</arg>
206+
</compilerArgs>
207+
</configuration>
208+
</execution>
209+
</executions>
210+
<configuration>
211+
<annotationProcessorPaths>
212+
<path>
213+
<groupId>org.openjdk.jmh</groupId>
214+
<artifactId>jmh-generator-annprocess</artifactId>
215+
<version>${jmh.version}</version>
216+
</path>
217+
</annotationProcessorPaths>
218+
<source>22</source>
219+
<target>22</target>
220+
</configuration>
221+
</plugin>
222+
223+
<plugin>
224+
<groupId>org.apache.maven.plugins</groupId>
225+
<artifactId>maven-jar-plugin</artifactId>
226+
<configuration>
227+
<archive>
228+
<manifestEntries>
229+
<Automatic-Module-Name>artemis.ffm</Automatic-Module-Name>
230+
</manifestEntries>
231+
</archive>
232+
</configuration>
233+
</plugin>
234+
</plugins>
235+
</build>
236+
</project>

0 commit comments

Comments
 (0)