-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpom.xml
More file actions
207 lines (190 loc) · 9.08 KB
/
Copy pathpom.xml
File metadata and controls
207 lines (190 loc) · 9.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openprojectx.bigdata.test.example</groupId>
<artifactId>spark-test-parent</artifactId>
<version>0.1.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>spark-test-parent</name>
<description>Maven Java port of the bigdata-test Spark JUnit 5 example, with Apache and Cloudera Spark modules.
</description>
<modules>
<module>spark-test-bom</module>
<module>spark-test-common</module>
<module>spark-apache</module>
<module>spark-cloudera</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>17</maven.compiler.release>
<!-- bigdata-test framework, published locally as 0.1.1-SNAPSHOT -->
<bigdata-test.version>0.1.38</bigdata-test.version>
<!-- shared, version-line independent dependencies -->
<junit.version>5.11.4</junit.version>
<scala.binary.version>2.12</scala.binary.version>
<gcs.version>4.0.4</gcs.version>
<iceberg.aws.bundle.version>1.8.1</iceberg.aws.bundle.version>
<confluent.version>8.2.1</confluent.version>
<!-- plugins -->
<surefire.version>3.5.2</surefire.version>
<hadoop-native-loader.version>0.1.4</hadoop-native-loader.version>
<java-dns.version>0.1.1</java-dns.version>
<!-- forked test JVM options mirrored from the Gradle example -->
<bigdata.test.argLine>--add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED -Xms2048m -Xmx8192m
</bigdata.test.argLine>
</properties>
<repositories>
<!-- Maven Central first (mirrored to the fast tencent nexus by ~/.m2/settings.xml);
the Cloudera/Confluent repos are only consulted for artifacts not on Central. -->
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/repository/cloudera-repos/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>confluent</id>
<url>https://packages.confluent.io/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<!-- Pin jackson-annotations to Apache Spark 3.5's Jackson line (2.15.2). Maven's
nearest-wins would otherwise select Cloudera Spark's 2.12.7, whose
JsonFormat.Feature lacks READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE that
Testcontainers 2.0.4's shaded Jackson requires. Annotations are forward
compatible, and jackson-databind/core are intentionally left at each Spark
line's own version. -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.15.2</version>
</dependency>
<!-- Pin commons-compress to the version Testcontainers 2.0.4 needs. Maven's
nearest-wins would otherwise select Spark/Hadoop's 1.23.0, which lacks the
TarArchiveOutputStream.putArchiveEntry(TarArchiveEntry) overload added in 1.26.
Testcontainers' MountableFile copy then fails with a (swallowed) NoSuchMethodError
on a background thread, so withCopyFileToContainer silently delivers nothing, e.g.
the Kafka TLS keystore never lands in the container ("keystore does not exist"). -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.28.0</version>
</dependency>
<!-- commons-compress 1.28.0 also calls commons-lang3 3.15+ (ArrayFill) and
commons-io 2.12+ (FileTimes) APIs; Spark/Hadoop pin older ones that Maven's
nearest-wins would otherwise keep, breaking Testcontainers' archive copy. -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.18.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.18.0</version>
</dependency>
<!-- The Confluent serializer needs a full Avro; Cloudera Spark ships a stripped
avro 1.11.1.7.x (no Conversions.BigDecimalConversion) that Maven's nearest-wins
would keep. Gradle resolves to 1.12.1; pin it here for both lines. -->
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.12.1</version>
</dependency>
<!-- Confluent Avro serializer + schema registry client, used by the bigdata-test
Kafka Avro seeder (KafkaAvroProducers). The Gradle example adds these as
testImplementation; they are not pulled transitively by the extensions module. -->
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-avro-serializer</artifactId>
<version>${confluent.version}</version>
</dependency>
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-schema-registry-client</artifactId>
<version>${confluent.version}</version>
</dependency>
<!-- The org.openprojectx.* dependencies (bigdata-test framework + java-dns agent) are
managed by the spark-test-bom module; the consuming modules import that BOM.
(The parent cannot import it here: the BOM inherits this parent, so a self-import
cycle would result.) -->
<!-- JUnit 5 -->
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- GCS connector (version-line independent) -->
<dependency>
<groupId>com.google.cloud.bigdataoss</groupId>
<artifactId>gcs-connector</artifactId>
<version>${gcs.version}</version>
</dependency>
<dependency>
<groupId>com.google.cloud.bigdataoss</groupId>
<artifactId>gcsio</artifactId>
<version>${gcs.version}</version>
</dependency>
<dependency>
<groupId>com.google.cloud.bigdataoss</groupId>
<artifactId>util-hadoop</artifactId>
<version>${gcs.version}</version>
</dependency>
<!-- Iceberg AWS bundle (pinned to 1.8.1 by the Spark platform BOM in both lines) -->
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-aws-bundle</artifactId>
<version>${iceberg.aws.bundle.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.6.1</version>
</plugin>
<!-- Extracts the bundled Hadoop native libs and prepends
-Djava.library.path / -Dhadoop.home.dir to the argLine. -->
<plugin>
<groupId>org.openprojectx.hadoop.native.loader.core</groupId>
<artifactId>maven-plugin</artifactId>
<version>${hadoop-native-loader.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>