This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 0051687b13b Remove the usage of lt_downsampling_java8 (#13108)
0051687b13b is described below
commit 0051687b13bc913f9762ece76f45988e4b40ad47
Author: Haonan <[email protected]>
AuthorDate: Thu Aug 8 01:20:58 2024 +0800
Remove the usage of lt_downsampling_java8 (#13108)
---
library-udf/pom.xml | 7 --
.../apache/iotdb/library/dprofile/UDTFSample.java | 24 ++---
.../apache/iotdb/library/dprofile/util/Area.java | 62 ++++++++++++
.../apache/iotdb/library/dprofile/util/Bucket.java | 85 ++++++++++++++++
.../library/dprofile/util/LTThreeBuckets.java | 57 +++++++++++
.../library/dprofile/util/OnePassBucketizer.java | 68 +++++++++++++
.../library/dprofile/util/SlidingCollector.java | 111 +++++++++++++++++++++
.../iotdb/library/dprofile/util/Triangle.java | 59 +++++++++++
pom.xml | 55 ++++------
9 files changed, 472 insertions(+), 56 deletions(-)
diff --git a/library-udf/pom.xml b/library-udf/pom.xml
index 2aca5427ad7..f893e0f0dc4 100644
--- a/library-udf/pom.xml
+++ b/library-udf/pom.xml
@@ -68,13 +68,6 @@
<groupId>com.github.wendykierp</groupId>
<artifactId>JTransforms</artifactId>
</dependency>
- <!-- Sampling -->
- <dependency>
- <groupId>com.github.ggalmazor</groupId>
- <artifactId>lt_downsampling_java8</artifactId>
- <!-- This version is only available in the jitpack.io repo -->
- <version>0.0.6</version>
- </dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
diff --git
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java
index 2d39eef3152..bf014a63de9 100644
---
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.library.dprofile;
+import org.apache.iotdb.library.dprofile.util.LTThreeBuckets;
import org.apache.iotdb.library.util.NoNumberException;
import org.apache.iotdb.library.util.Util;
import org.apache.iotdb.udf.api.UDTF;
@@ -33,11 +34,8 @@ import
org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
import
org.apache.iotdb.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
import org.apache.iotdb.udf.api.type.Type;
-import com.github.ggalmazor.ltdownsampling.LTThreeBuckets;
-import com.github.ggalmazor.ltdownsampling.Point;
import org.apache.commons.lang3.tuple.Pair;
-import java.math.BigDecimal;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
@@ -129,29 +127,29 @@ public class UDTFSample implements UDTF {
if (this.k < n) {
if (this.method == Method.TRIANGLE) {
- List<Point> input = new LinkedList<>();
+ List<Pair<Long, Double>> input = new LinkedList<>();
for (int i = 0; i < n; i++) {
Row row = rowWindow.getRow(i);
- BigDecimal time = BigDecimal.valueOf(row.getTime());
- BigDecimal data = BigDecimal.valueOf(Util.getValueAsDouble(row));
- input.add(new Point(time, data));
+ long time = row.getTime();
+ double data = Util.getValueAsDouble(row);
+ input.add(Pair.of(time, data));
}
if (k > 2) {
// The first and last element will always be sampled so the buckets
is k - 2
- List<Point> output = LTThreeBuckets.sorted(input, k - 2);
- for (Point p : output) {
+ List<Pair<Long, Double>> output = LTThreeBuckets.sorted(input, k -
2);
+ for (Pair<Long, Double> p : output) {
switch (dataType) {
case INT32:
- collector.putInt(p.getX().longValue(), p.getY().intValue());
+ collector.putInt(p.getLeft(), p.getRight().intValue());
break;
case INT64:
- collector.putLong(p.getX().longValue(), p.getY().longValue());
+ collector.putLong(p.getLeft(), p.getRight().longValue());
break;
case FLOAT:
- collector.putFloat(p.getX().longValue(),
p.getY().floatValue());
+ collector.putFloat(p.getLeft(), p.getRight().floatValue());
break;
case DOUBLE:
- collector.putDouble(p.getX().longValue(),
p.getY().doubleValue());
+ collector.putDouble(p.getLeft(), p.getRight());
break;
default:
throw new NoNumberException();
diff --git
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Area.java
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Area.java
new file mode 100644
index 00000000000..10023a6294d
--- /dev/null
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Area.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.library.dprofile.util;
+
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static java.lang.Math.abs;
+
+/**
+ * this class is copied and modified from <a
+ * href="https://github.com/ggalmazor/lt_downsampling_java8">...</a> project
+ */
+class Area<T extends Pair<Long, Double>> {
+ private final T generator;
+ private final double value;
+
+ private Area(T generator, double value) {
+ this.generator = generator;
+ this.value = value;
+ }
+
+ static <U extends Pair<Long, Double>> Area<U> ofTriangle(
+ Pair<Long, Double> a, U b, Pair<Long, Double> c) {
+ // area of a triangle = |[Ax(By - Cy) + Bx(Cy - Ay) + Cx(Ay - By)] / 2|
+ List<Double> addends =
+ Arrays.asList(
+ a.getLeft() * (b.getRight() - c.getRight()),
+ b.getLeft() * (c.getRight() - a.getRight()),
+ c.getLeft() * (a.getRight() - b.getRight()));
+ double sum = addends.stream().reduce(0d, Double::sum);
+ double value = abs(sum / 2);
+ return new Area<>(b, value);
+ }
+
+ T getGenerator() {
+ return generator;
+ }
+
+ public double getValue() {
+ return value;
+ }
+}
diff --git
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Bucket.java
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Bucket.java
new file mode 100644
index 00000000000..caa640707cc
--- /dev/null
+++
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Bucket.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.library.dprofile.util;
+
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.function.Function;
+
+import static java.util.stream.Collectors.toList;
+
+/**
+ * this class is copied and modified from <a
+ * href="https://github.com/ggalmazor/lt_downsampling_java8">...</a> project
+ */
+class Bucket<T extends Pair<Long, Double>> {
+ private final List<T> data;
+ private final T first;
+ private final T last;
+ private final Pair<Long, Double> center;
+ private final T result;
+
+ private Bucket(List<T> data, T first, T last, Pair<Long, Double> center, T
result) {
+ this.data = data;
+ this.first = first;
+ this.last = last;
+ this.center = center;
+ this.result = result;
+ }
+
+ static <U extends Pair<Long, Double>> Bucket<U> of(List<U> us) {
+ U first = us.get(0);
+ U last = us.get(us.size() - 1);
+ Pair<Long, Double> center = centerBetween(first, last);
+ return new Bucket<>(us, first, last, center, first);
+ }
+
+ static <U extends Pair<Long, Double>> Bucket<U> of(U u) {
+ return new Bucket<>(Collections.singletonList(u), u, u, u, u);
+ }
+
+ T getResult() {
+ return result;
+ }
+
+ T getFirst() {
+ return first;
+ }
+
+ T getLast() {
+ return last;
+ }
+
+ Pair<Long, Double> getCenter() {
+ return center;
+ }
+
+ <U> List<U> map(Function<T, U> mapper) {
+ return data.stream().map(mapper).collect(toList());
+ }
+
+ static Pair<Long, Double> centerBetween(Pair<Long, Double> a, Pair<Long,
Double> b) {
+ Pair<Long, Double> vector = Pair.of(b.getLeft() - a.getLeft(),
b.getRight() - a.getRight());
+ Pair<Long, Double> halfVector = Pair.of(vector.getLeft() / 2,
vector.getRight() / 2);
+ return Pair.of(a.getLeft() + halfVector.getLeft(), a.getRight() +
halfVector.getRight());
+ }
+}
diff --git
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/LTThreeBuckets.java
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/LTThreeBuckets.java
new file mode 100644
index 00000000000..f63cc2b74c1
--- /dev/null
+++
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/LTThreeBuckets.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.library.dprofile.util;
+
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * this class is copied and modified from <a
+ * href="https://github.com/ggalmazor/lt_downsampling_java8">...</a> project
+ */
+public final class LTThreeBuckets {
+
+ public static List<Pair<Long, Double>> sorted(
+ List<Pair<Long, Double>> input, int desiredBuckets) {
+ return sorted(input, input.size(), desiredBuckets);
+ }
+
+ public static List<Pair<Long, Double>> sorted(
+ List<Pair<Long, Double>> input, int inputSize, int desiredBuckets) {
+ List<Pair<Long, Double>> results = new ArrayList<>();
+
+ OnePassBucketizer.bucketize(input, inputSize, desiredBuckets).stream()
+ .collect(new SlidingCollector<>(3, 1))
+ .stream()
+ .map(Triangle::of)
+ .forEach(
+ triangle -> {
+ if (results.isEmpty()) results.add(triangle.getFirst());
+
+ results.add(triangle.getResult());
+
+ if (results.size() == desiredBuckets + 1)
results.add(triangle.getLast());
+ });
+
+ return results;
+ }
+}
diff --git
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/OnePassBucketizer.java
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/OnePassBucketizer.java
new file mode 100644
index 00000000000..1c5eddca379
--- /dev/null
+++
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/OnePassBucketizer.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.library.dprofile.util;
+
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * this class is copied and modified from <a
+ * href="https://github.com/ggalmazor/lt_downsampling_java8">...</a> project
+ */
+class OnePassBucketizer {
+
+ static List<Bucket<Pair<Long, Double>>> bucketize(
+ List<Pair<Long, Double>> input, int inputSize, int desiredBuckets) {
+ int middleSize = inputSize - 2;
+ int bucketSize = middleSize / desiredBuckets;
+ int remainingElements = middleSize % desiredBuckets;
+
+ if (bucketSize == 0)
+ throw new IllegalArgumentException(
+ "Can't produce "
+ + desiredBuckets
+ + " buckets from an input series of "
+ + (middleSize + 2)
+ + " elements");
+
+ List<Bucket<Pair<Long, Double>>> buckets = new ArrayList<>();
+
+ // Add first point as the only point in the first bucket
+ buckets.add(Bucket.of(input.get(0)));
+
+ List<Pair<Long, Double>> rest = input.subList(1, input.size() - 1);
+
+ // Add middle buckets.
+ // When inputSize is not a multiple of desiredBuckets, remaining elements
are equally
+ // distributed on the first buckets.
+ while (buckets.size() < desiredBuckets + 1) {
+ int size = buckets.size() <= remainingElements ? bucketSize + 1 :
bucketSize;
+ buckets.add(Bucket.of(rest.subList(0, size)));
+ rest = rest.subList(size, rest.size());
+ }
+
+ // Add last point as the only point in the last bucket
+ buckets.add(Bucket.of(input.get(input.size() - 1)));
+
+ return buckets;
+ }
+}
diff --git
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/SlidingCollector.java
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/SlidingCollector.java
new file mode 100644
index 00000000000..c369fb1d81a
--- /dev/null
+++
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/SlidingCollector.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.library.dprofile.util;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Queue;
+import java.util.Set;
+import java.util.function.BiConsumer;
+import java.util.function.BinaryOperator;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collector;
+
+import static java.lang.Integer.max;
+import static java.util.stream.Collectors.toList;
+
+/**
+ * this class is copied and modified from <a
+ * href="https://github.com/ggalmazor/lt_downsampling_java8">...</a> project
+ */
+public class SlidingCollector<T> implements Collector<T, List<List<T>>,
List<List<T>>> {
+
+ private final int size;
+ private final int step;
+ private final int window;
+ private final Queue<T> buffer = new ArrayDeque<>();
+ private int totalIn = 0;
+
+ public SlidingCollector(int size, int step) {
+ this.size = size;
+ this.step = step;
+ this.window = max(size, step);
+ }
+
+ @Override
+ public Supplier<List<List<T>>> supplier() {
+ return ArrayList::new;
+ }
+
+ @Override
+ public BiConsumer<List<List<T>>, T> accumulator() {
+ return (lists, t) -> {
+ buffer.offer(t);
+ ++totalIn;
+ if (buffer.size() == window) {
+ dumpCurrent(lists);
+ shiftBy(step);
+ }
+ };
+ }
+
+ @Override
+ public Function<List<List<T>>, List<List<T>>> finisher() {
+ return lists -> {
+ if (!buffer.isEmpty()) {
+ final int totalOut = estimateTotalOut();
+ if (totalOut > lists.size()) {
+ dumpCurrent(lists);
+ }
+ }
+ return lists;
+ };
+ }
+
+ private int estimateTotalOut() {
+ return max(0, (totalIn + step - size - 1) / step) + 1;
+ }
+
+ private void dumpCurrent(List<List<T>> lists) {
+ final List<T> batch = buffer.stream().limit(size).collect(toList());
+ lists.add(batch);
+ }
+
+ private void shiftBy(int by) {
+ for (int i = 0; i < by; i++) {
+ buffer.remove();
+ }
+ }
+
+ @Override
+ public BinaryOperator<List<List<T>>> combiner() {
+ return (l1, l2) -> {
+ throw new UnsupportedOperationException("Combining not possible");
+ };
+ }
+
+ @Override
+ public Set<Characteristics> characteristics() {
+ return EnumSet.noneOf(Characteristics.class);
+ }
+}
diff --git
a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Triangle.java
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Triangle.java
new file mode 100644
index 00000000000..6f9400a5264
--- /dev/null
+++
b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/Triangle.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.library.dprofile.util;
+
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.util.List;
+
+import static java.util.Comparator.comparing;
+
+/**
+ * this class is copied and modified from <a
+ * href="https://github.com/ggalmazor/lt_downsampling_java8">...</a> project
+ */
+class Triangle<T extends Pair<Long, Double>> {
+ private final Bucket<T> left, center, right;
+
+ private Triangle(Bucket<T> left, Bucket<T> center, Bucket<T> right) {
+ this.left = left;
+ this.center = center;
+ this.right = right;
+ }
+
+ static <U extends Pair<Long, Double>> Triangle<U> of(List<Bucket<U>>
buckets) {
+ return new Triangle<>(buckets.get(0), buckets.get(1), buckets.get(2));
+ }
+
+ T getFirst() {
+ return left.getFirst();
+ }
+
+ T getLast() {
+ return right.getLast();
+ }
+
+ T getResult() {
+ return center.map(b -> Area.ofTriangle(left.getResult(), b,
right.getCenter())).stream()
+ .max(comparing(Area::getValue))
+ .orElseThrow(() -> new RuntimeException("Can't obtain max area
triangle"))
+ .getGenerator();
+ }
+}
diff --git a/pom.xml b/pom.xml
index a17a51150f6..7f9ad66f481 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1390,16 +1390,6 @@
<system>Jira</system>
<url>https://issues.apache.org/jira/browse/iotdb</url>
</issueManagement>
- <!--
- Needed for fetching lt_downsampling_java8 (which is used by library-udf)
- (Adding this in the root or when building other parts, this transitive
dependency can be fetched)
- -->
- <repositories>
- <repository>
- <id>jitpack.io</id>
- <url>https://jitpack.io</url>
- </repository>
- </repositories>
<!-- Only configure the site distribution as the rest is handled by the
apache parent -->
<distributionManagement>
<site>
@@ -1509,6 +1499,25 @@
</activation>
<properties>
<maven.compiler.release>8</maven.compiler.release>
+ <!--
+ Add argLine for Java 9 and above, due to
+ [JEP 260: Encapsulate Most Internal APIs],
+ [JEP 396: Strongly Encapsulate JDK Internals by Default],
+ [JEP 403: Strongly Encapsulate JDK Internals]
+ -->
+ <argLine><![CDATA[
+ --add-opens=java.base/java.lang=ALL-UNNAMED
+ --add-opens=java.base/java.util=ALL-UNNAMED
+ --add-opens=java.base/java.nio=ALL-UNNAMED
+ --add-opens=java.base/java.io=ALL-UNNAMED
+ --add-opens=java.base/java.net=ALL-UNNAMED
+ --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
+
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
+
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
+
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+ ]]></argLine>
</properties>
</profile>
<!-- Current version of spotless cannot support JDK11 below -->
@@ -1524,32 +1533,6 @@
<spotless.skip>true</spotless.skip>
</properties>
</profile>
- <!--
- Add argLine for Java 16 and above, due to [JEP 396: Strongly Encapsulate
JDK Internals by Default]
- (https://openjdk.java.net/jeps/396)
- -->
- <profile>
- <id>.java-16</id>
- <activation>
- <jdk>16</jdk>
- </activation>
- <properties>
- <argLine>--illegal-access=permit
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.java [...]
- </properties>
- </profile>
- <!--
- Add argLine for Java 16 and above, due to [JEP 396: Strongly Encapsulate
JDK Internals by Default]
- (https://openjdk.java.net/jeps/396)
- -->
- <profile>
- <id>.java-17-and-above</id>
- <activation>
- <jdk>[17,)</jdk>
- </activation>
- <properties>
-
<argLine>--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add [...]
- </properties>
- </profile>
<!-- Little helper profile that will disable running the cmake tests
when the maven tests are being skipped -->
<profile>
<id>.skipTests</id>