Skip to content

Commit 4df778d

Browse files
authored
[DE-439] Shaded native image configuration (#475)
* shaded native tests * shaded native tests CI
1 parent cf2a3e5 commit 4df778d

File tree

94 files changed

+2919
-78
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+2919
-78
lines changed

.github/workflows/native.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ jobs:
1717
- docker.io/arangodb/enterprise:3.10.1
1818
topology:
1919
- cluster
20-
db-ext-names:
21-
- false
2220
java-version:
2321
- 17
22+
module:
23+
- driver
24+
- shaded
2425

2526
steps:
2627
- uses: actions/checkout@v2
@@ -36,13 +37,12 @@ jobs:
3637
ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }}
3738
STARTER_MODE: ${{matrix.topology}}
3839
DOCKER_IMAGE: ${{matrix.docker-img}}
39-
DATABASE_EXTENDED_NAMES: ${{matrix.db-ext-names}}
4040
- name: Info
4141
run: mvn -version
4242
- name: Install
4343
run: mvn --no-transfer-progress install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true
4444
- name: Test Native
45-
working-directory: driver
45+
working-directory: ${{matrix.module}}
4646
run: mvn -Pnative --no-transfer-progress test
4747

4848
test-native-ssl:
@@ -58,6 +58,9 @@ jobs:
5858
- single
5959
java-version:
6060
- 17
61+
module:
62+
- driver
63+
- shaded
6164

6265
steps:
6366
- uses: actions/checkout@v2
@@ -79,5 +82,5 @@ jobs:
7982
- name: Install
8083
run: mvn --no-transfer-progress install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true
8184
- name: Test Native
82-
working-directory: driver
85+
working-directory: ${{matrix.module}}
8386
run: mvn -Pnative --no-transfer-progress -Dgroups=ssl -DSslTest=true test

driver/src/main/resources/META-INF/native-image/com.arangodb/arangodb-java-driver/native-image.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ Args=\
44
-H:SerializationConfigurationResources=${.}/serialization-config.json \
55
--initialize-at-run-time=\
66
io.netty.handler.ssl.BouncyCastleAlpnSslUtils,\
7-
io.netty.handler.codec.compression.ZstdOptions
7+
io.netty.handler.codec.compression.ZstdOptions \
8+
-Dio.netty.noUnsafe=true \
9+
-Dio.netty.leakDetection.level=DISABLED

driver/src/test/java/com/arangodb/serde/SerdeTest.java

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55
import com.arangodb.internal.serde.SerdeUtils;
66
import com.arangodb.util.RawBytes;
77
import com.arangodb.util.RawJson;
8-
import com.fasterxml.jackson.databind.JsonNode;
98
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
109
import com.fasterxml.jackson.databind.node.ObjectNode;
1110
import org.junit.jupiter.params.ParameterizedTest;
1211
import org.junit.jupiter.params.provider.EnumSource;
1312

14-
import java.sql.Date;
15-
1613
import static org.assertj.core.api.Assertions.assertThat;
1714

1815

@@ -40,32 +37,4 @@ void rawBytesSerde(ContentType type) {
4037
assertThat(deserialized).isEqualTo(raw);
4138
}
4239

43-
@ParameterizedTest
44-
@EnumSource(ContentType.class)
45-
void utilDateSerde(ContentType type) {
46-
InternalSerde s = InternalSerde.of(type, null);
47-
long ts = 1000000000000L;
48-
java.util.Date date = new java.util.Date(ts);
49-
byte[] ser = s.serialize(date);
50-
JsonNode node = s.parse(ser);
51-
assertThat(node.isLong()).isTrue();
52-
assertThat(node.longValue()).isEqualTo(ts);
53-
java.util.Date deser = s.deserialize(ser, java.util.Date.class);
54-
assertThat(deser).isEqualTo(date);
55-
}
56-
57-
@ParameterizedTest
58-
@EnumSource(ContentType.class)
59-
void sqlDateSerde(ContentType type) {
60-
InternalSerde s = InternalSerde.of(type, null);
61-
long ts = 1000000000000L;
62-
java.sql.Date date = new Date(ts);
63-
byte[] ser = s.serialize(date);
64-
JsonNode node = s.parse(ser);
65-
assertThat(node.isLong()).isTrue();
66-
assertThat(node.longValue()).isEqualTo(ts);
67-
java.sql.Date deser = s.deserialize(ser, java.sql.Date.class);
68-
assertThat(deser).isEqualTo(date);
69-
}
70-
7140
}

driver/src/test/resources/META-INF/native-image/native-image.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Args=\
2-
-H:ResourceConfigurationFiles=target/test-classes/META-INF/native-image/resource-config.json \
2+
-H:ResourceConfigurationResources=${.}/resource-config.json \
33
-H:ReflectionConfigurationResources=${.}/reflect-config.json \
44
-H:SerializationConfigurationResources=${.}/serialization-config.json \
55
--initialize-at-build-time=\

shaded-integration-tests/pom.xml

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,6 @@
4848
<version>3.23.1</version>
4949
<scope>test</scope>
5050
</dependency>
51-
<dependency>
52-
<groupId>com.tngtech.archunit</groupId>
53-
<artifactId>archunit-junit5</artifactId>
54-
<version>1.0.1</version>
55-
<scope>test</scope>
56-
</dependency>
5751
</dependencies>
5852

5953
<dependencyManagement>
@@ -128,6 +122,12 @@
128122
<version>3.1.0</version>
129123
<scope>test</scope>
130124
</dependency>
125+
<dependency>
126+
<groupId>com.tngtech.archunit</groupId>
127+
<artifactId>archunit-junit5</artifactId>
128+
<version>1.0.1</version>
129+
<scope>test</scope>
130+
</dependency>
131131
</dependencies>
132132
</profile>
133133
<profile>
@@ -160,10 +160,34 @@
160160
<artifactId>yasson</artifactId>
161161
<version>3.0.2</version>
162162
</dependency>
163+
<dependency>
164+
<groupId>com.tngtech.archunit</groupId>
165+
<artifactId>archunit-junit5</artifactId>
166+
<version>1.0.1</version>
167+
<scope>test</scope>
168+
</dependency>
163169
</dependencies>
164170
</profile>
165171
<profile>
166172
<id>native</id>
173+
<properties>
174+
<testSourceDirectory>src/test/native/java</testSourceDirectory>
175+
<serde>jackson</serde>
176+
</properties>
177+
<dependencies>
178+
<dependency>
179+
<groupId>com.arangodb</groupId>
180+
<artifactId>arangodb-java-driver-shaded</artifactId>
181+
<version>7.0.0-SNAPSHOT</version>
182+
<scope>test</scope>
183+
</dependency>
184+
<dependency>
185+
<groupId>com.arangodb</groupId>
186+
<artifactId>jackson-dataformat-velocypack</artifactId>
187+
<version>3.1.0</version>
188+
<scope>test</scope>
189+
</dependency>
190+
</dependencies>
167191
<build>
168192
<plugins>
169193
<plugin>

0 commit comments

Comments
 (0)