maven/org/apache/tsfile/tsfile-parent/1.1.0/tsfile-parent-1.1.0.pom

1085 lines
52 KiB
Plaintext
Raw Normal View History

2025-07-07 09:27:28 +08:00
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<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>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>32</version>
</parent>
<groupId>org.apache.tsfile</groupId>
<artifactId>tsfile-parent</artifactId>
<version>1.1.0</version>
<packaging>pom</packaging>
<name>Apache TsFile Project Parent POM</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<argLine/>
<spotless.skip>false</spotless.skip>
<cmake.version>3.29.3-b2</cmake.version>
<spotless.version>2.43.0</spotless.version>
<google.java.format.version>1.22.0</google.java.format.version>
<drill.freemarker.maven.plugin.version>1.21.1</drill.freemarker.maven.plugin.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<!--
This will suppress the generation of a hidden timestamp at the top of each generated html page
and hopefully let the site generation nod to too big updates every time.
-->
<notimestamp>true</notimestamp>
<!--Don't fail the build, just because there were issues in the JavaDoc generation.-->
<failOnError>false</failOnError>
</configuration>
</plugin>
<!--
We need to increase the memory available to tests as we were
getting out-of-memory errors when building on Windows machines.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<argLine>${argLine} -Xmx1024m</argLine>
</configuration>
</plugin>
<!--
Plugin for doing the code analysis.
-->
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.9.1.2184</version>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.16.1</version>
<configuration>
<consoleOutput>true</consoleOutput>
<excludes>
<!-- Git related files -->
<exclude>**/.git/**</exclude>
<exclude>**/.mvn/**</exclude>
<exclude>**/.gitignore</exclude>
<!-- Maven related files -->
<exclude>**/target/**</exclude>
<!-- Eclipse related files -->
<exclude>**/.project</exclude>
<exclude>**/.settings/**</exclude>
<exclude>**/.classpath</exclude>
<!-- IntelliJ related files -->
<exclude>**/.idea/**</exclude>
<exclude>**/*.iml</exclude>
<!-- Runtime log -->
<exclude>**/*.log</exclude>
<!-- Exclude CVS files -->
<exclude>**/*.cvs</exclude>
<!-- generated by Github -->
<exclude>**/.github/**</exclude>
<!-- figures -->
<exclude>**/.eps</exclude>
<exclude>**/.png</exclude>
<exclude>**/.jpg</exclude>
<exclude>**/.jpeg</exclude>
<!--Generated by Apache Release -->
<exclude>local-snapshots-dir/**</exclude>
<!-- visualization plans -->
<exclude>**/*.plan</exclude>
<exclude>**/NOTICE-binary</exclude>
<exclude>**/LICENSE-binary</exclude>
<!-- json does not support comments-->
<exclude>**/*.json</exclude>
<!-- Exclude website build files-->
<exclude>docs/src/zh/README.md</exclude>
<exclude>docs/src/README.md</exclude>
<exclude>docs/pnpm-lock.yaml</exclude>
<!-- generated by make tool-->
<exclude>**/cmake/**</exclude>
<exclude>**/build/**</exclude>
<exclude>**/.clang-format</exclude>
<!-- generated by cython-->
<exclude>**/tsfile/tsfile_pywrapper.cpp</exclude>
<exclude>**/venv/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless.version}</version>
<configuration>
<java>
<googleJavaFormat>
<version>${google.java.format.version}</version>
<style>GOOGLE</style>
</googleJavaFormat>
<importOrder>
<order>org.apache.tsfile,,javax,java,\#</order>
</importOrder>
<removeUnusedImports/>
</java>
<lineEndings>UNIX</lineEndings>
</configuration>
<executions>
<execution>
<id>spotless-check</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>4.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>2.24.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<!--DO NOT UPDATE to 3.3.x, the release will fail-->
<version>3.2.1</version>
</plugin>
<plugin>
<groupId>au.com.acegi</groupId>
<artifactId>xml-format-maven-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>4.9.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.9</version>
</plugin>
<plugin>
<groupId>com.googlecode.cmake-maven-project</groupId>
<artifactId>cmake-maven-plugin</artifactId>
<version>${cmake.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<configuration>
<skip>${spotless.skip}</skip>
</configuration>
</plugin>
<!--
Strange things usually happen if you run with a too low Java version.
This plugin not only checks the minimum java version of 1.8, but also
checks all dependencies (and transitive dependencies) for reported CVEs.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.sonatype.ossindex.maven</groupId>
<artifactId>ossindex-maven-enforcer-rules</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-dependency-tree</artifactId>
<version>3.2.1</version>
</dependency>
</dependencies>
<executions>
<!-- Ensure we're not mixing dependency versions -->
<execution>
<id>enforce-version-convergence</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<dependencyConvergence/>
</rules>
</configuration>
</execution>
<!--
Fails the build if classes are included from multiple
artifacts and these are not identical.
-->
<execution>
<id>enforce-ban-duplicate-classes</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<banDuplicateClasses>
<scopes>
<scope>compile</scope>
<scope>provided</scope>
</scopes>
<findAllDuplicates>true</findAllDuplicates>
<ignoreWhenIdentical>true</ignoreWhenIdentical>
</banDuplicateClasses>
</rules>
<fail>true</fail>
</configuration>
</execution>
<!-- Ensure dependencies are compatible with Java 8 -->
<execution>
<id>enforce-java8-compatability</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>1.8</maxJdkVersion>
</enforceBytecodeVersion>
</rules>
</configuration>
</execution>
<!-- Make sure no dependencies are used for which known vulnerabilities exist. -->
<execution>
<id>vulnerability-checks</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<!-- Just generate warnings for now -->
<fail>true</fail>
<rules>
<requireJavaVersion>
<version>1.8.0</version>
</requireJavaVersion>
<banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies">
<excludeCoordinates>
<!-- TODO: For this CVE no fix exists yet (Keep an eye on it) -->
<exclude>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>4.1.97.Final</version>
</exclude>
<!--
CVE-2016-1000027 seems to effect the HTTP Invoker, which we are not using.
These are marked deprecated anyway and are removed in Spring 6.x. Unfortunately,
we are still stuck at 5.x due to the javax-namespace issues.
-->
<exclude>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.30</version>
</exclude>
<!--
For this CVE no fix exists and will probably never exist
(We should discuss dropping 2.11 anyway)
-->
<exclude>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.4.8</version>
</exclude>
<!--
We can't update to a fixed version as we're stuck with this version
as it was the last to support the javax namespace.
-->
<exclude>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.4.8</version>
</exclude>
<!--
TODO: For this CVE no fix exists yet, however we should keep an eye on this:
https://docs.google.com/presentation/d/1W5KU7ffh4dheR8iD54ulABImi6byAhSI-OhEKw2adRo/edit#slide=id.gaf11915f86_0_0
-->
<exclude>
<groupId>io.atomix</groupId>
<artifactId>atomix-raft</artifactId>
<version>3.1.12</version>
</exclude>
</excludeCoordinates>
</banVulnerable>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!--
Even if Maven transitively pulls in dependencies, relying on these can
quite often cause hard to find problems. So it's a good practice to make
sure everything directly required is also directly added as a dependency.
On the other side adding unused dependency only over-complicates the
dependency graph, so the maven-dependency-plugin checks we depend on
what we need and only that and that runtime dependencies are correctly
imported with runtime scope.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>check-dependencies</id>
<goals>
<goal>analyze-only</goal>
</goals>
<phase>verify</phase>
<configuration>
<failOnWarning>true</failOnWarning>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
</plugin>
<!--for code style check -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>9.3</version>
<!-- Starting with version 10, checkstyle requires Java 11 -->
<!--version>10.12.3</version-->
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
<configuration>
<outputFile>target/checkstyle-report.xml</outputFile>
<configLocation>checkstyle.xml</configLocation>
<propertyExpansion>baseDir=${project.basedir}</propertyExpansion>
</configuration>
</execution>
</executions>
</plugin>
<!--
Check if all files contain Apache headers in them.
Ignore this plugin, we use license-maven-plugin to check apache header.
-->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>license-check</id>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>au.com.acegi</groupId>
<artifactId>xml-format-maven-plugin</artifactId>
<executions>
<execution>
<id>xml-format</id>
<goals>
<goal>xml-format</goal>
</goals>
<phase>compile</phase>
<configuration>
<!-- configure your formatting preferences here (see link below) -->
<indentSize>4</indentSize>
<excludes>
<exclude>**/target/**</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<!--
Generate the legally required text files in the jars
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<id>process-resource-bundles</id>
<goals>
<goal>process</goal>
</goals>
<configuration>
<resourceBundles>
<!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
</resourceBundles>
<!-- Content in this directory will be appended to generated resources -->
<appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- Separates the unit tests from the integration tests. -->
<!-- TODO: Integration-Tests should be executed by the failsafe plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>unit-tests</id>
<goals>
<goal>test</goal>
</goals>
<phase>test</phase>
<configuration>
<includes>
<!-- Include unit tests within integration-test phase. -->
<include>src/test/**/*Test.java</include>
</includes>
<excludes>
<!-- Exclude integration tests within (unit) test phase. -->
<exclude>src/test/**/*IT.java</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>integration-tests</id>
<goals>
<goal>test</goal>
</goals>
<phase>integration-test</phase>
<configuration>
<includes>
<!-- Include integration tests within integration-test phase. -->
<include>src/test/**/*IT.java</include>
</includes>
<excludes>
<!-- Exclude unit tests within (unit) test phase. -->
<exclude>src/test/**/*Test.java</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<!-- Also package the sources as jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>create-source-package</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.drill.tools</groupId>
<artifactId>drill-fmpp-maven-plugin</artifactId>
<version>${drill.freemarker.maven.plugin.version}</version>
</plugin>
</plugins>
</build>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<mailingLists>
<mailingList>
<name>Apache TsFile Developer List</name>
<subscribe>mailto:dev-subscribe@tsfile.apache.org</subscribe>
<unsubscribe>mailto:dev-unsubscribe@tsfile.apache.org</unsubscribe>
<post>mailto:dev@tsfile.apache.org</post>
<archive>https://mail-archives.apache.org/mod_mbox/tsfile-dev/</archive>
</mailingList>
<mailingList>
<name>Apache TsFile Commits List</name>
<subscribe>mailto:commit-subscribe@tsfile.apache.org</subscribe>
<unsubscribe>mailto:commits-unsubscribe@tsfile.apache.org</unsubscribe>
<post>mailto:commits@tsfile.apache.org</post>
<archive>https://mail-archives.apache.org/mod_mbox/tsfile-commits/</archive>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:ssh://git@github.com/apache/tsfile.git</connection>
<developerConnection>scm:git:ssh://git@github.com/apache/tsfile.git</developerConnection>
<url>ssh://git@github.com:apache/tsfile.git</url>
<tag>v1.1.0</tag>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/apache/tsfile/issues</url>
</issueManagement>
<profiles>
<!-- Build the java version of TsFile -->
<profile>
<id>with-java</id>
<modules>
<module>java</module>
</modules>
</profile>
<!-- Build the c++ version of TsFile -->
<profile>
<id>with-cpp</id>
<modules>
<module>cpp</module>
</modules>
</profile>
<!-- Build the python version of TsFile -->
<profile>
<id>with-python</id>
<modules>
<module>python</module>
</modules>
</profile>
<profile>
<id>.java-9-and-above</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<!-- TODO: This seems to break the build on everything above Java 8 -->
<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 -->
<profile>
<id>.java-11-below</id>
<activation>
<jdk>(,11]</jdk>
</activation>
<properties>
<!-- This was the last version to support Java 8, Just for run -->
<spotless.version>2.27.1</spotless.version>
<!-- To avoid format conflicts -->
<spotless.skip>true</spotless.skip>
</properties>
</profile>
<!-- Profile for linux x86_64 (mainly Intel Processors) (Self-Enabling) -->
<profile>
<id>.os-linux-x86_64</id>
<activation>
<os>
<family>unix</family>
<name>Linux</name>
<arch>x86_64</arch>
</os>
</activation>
<properties>
<os.suffix>linux</os.suffix>
<os.classifier>linux-x86_64</os.classifier>
<cmake.generator>Unix Makefiles</cmake.generator>
<python.venv.bin>venv/bin/</python.venv.bin>
<python.exe.bin>python3</python.exe.bin>
<cython.compiler>unix</cython.compiler>
</properties>
</profile>
<!-- Profile for linux amd64 (mainly AMD Processors) (Self-Enabling) -->
<profile>
<id>.os-linux-amd64</id>
<activation>
<os>
<family>unix</family>
<name>Linux</name>
<arch>amd64</arch>
</os>
</activation>
<properties>
<os.suffix>linux</os.suffix>
<os.classifier>linux-amd64</os.classifier>
<cmake.generator>Unix Makefiles</cmake.generator>
<python.venv.bin>venv/bin/</python.venv.bin>
<python.exe.bin>python3</python.exe.bin>
<cython.compiler>unix</cython.compiler>
</properties>
</profile>
<!-- Profile for linux aarch64 (mainly ARM64 Processors) (Self-Enabling) -->
<profile>
<id>.os-linux-aarch64</id>
<activation>
<os>
<family>unix</family>
<name>Linux</name>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<os.suffix>linux</os.suffix>
<os.classifier>linux-${os.arch}</os.classifier>
<cmake.generator>Unix Makefiles</cmake.generator>
<python.venv.bin>venv/bin/</python.venv.bin>
<python.exe.bin>python3</python.exe.bin>
<cython.compiler>unix</cython.compiler>
</properties>
</profile>
<!-- Profile for mac x86_64 (mainly Intel Processors) (Self-Enabling) -->
<profile>
<id>.os-mac-x86_64</id>
<activation>
<os>
<family>mac</family>
<arch>x86_64</arch>
</os>
</activation>
<properties>
<os.suffix>mac</os.suffix>
<os.classifier>mac-x86_64</os.classifier>
<cmake.generator>Unix Makefiles</cmake.generator>
<python.venv.bin>venv/bin/</python.venv.bin>
<python.exe.bin>python3</python.exe.bin>
<cython.compiler>unix</cython.compiler>
</properties>
</profile>
<!-- Profile for mac aarch64 (mainly new Mac Processors) (Self-Enabling) -->
<profile>
<id>.os-mac-aarch64</id>
<activation>
<os>
<family>mac</family>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<os.suffix>mac</os.suffix>
<os.classifier>mac-aarch64</os.classifier>
<cmake.generator>Unix Makefiles</cmake.generator>
<python.venv.bin>venv/bin/</python.venv.bin>
<python.exe.bin>python3</python.exe.bin>
<cython.compiler>unix</cython.compiler>
</properties>
</profile>
<!-- profile for windows x86_64 (mainly Intel Processors) (Self-Enabling) -->
<profile>
<id>.os-windows-x86_64</id>
<activation>
<os>
<family>windows</family>
<arch>x86_64</arch>
</os>
</activation>
<properties>
<os.suffix>win</os.suffix>
<os.classifier>windows-x86_64</os.classifier>
<cmake.generator>MinGW Makefiles</cmake.generator>
<!-- The generated code relied on Boost and that relies on VS and can't be built with MinGW -->
<!--cmake.generator>Visual Studio 17 2022</cmake.generator-->
<python.venv.bin>venv/Scripts/</python.venv.bin>
<python.exe.bin>python</python.exe.bin>
<cython.compiler>mingw32</cython.compiler>
</properties>
</profile>
<!-- profile for windows amd64 (mainly AMD Processors) (Self-Enabling) -->
<profile>
<id>.os-windows-amd64</id>
<activation>
<os>
<family>windows</family>
<arch>amd64</arch>
</os>
</activation>
<properties>
<os.suffix>win</os.suffix>
<os.classifier>windows-amd64</os.classifier>
<cmake.generator>MinGW Makefiles</cmake.generator>
<!-- The generated code relied on Boost and that relies on VS and can't be built with MinGW -->
<!--cmake.generator>Visual Studio 17 2022</cmake.generator-->
<python.venv.bin>venv/Scripts/</python.venv.bin>
<python.exe.bin>python</python.exe.bin>
<cython.compiler>mingw32</cython.compiler>
</properties>
</profile>
<!-- profile for windows aarch64 (mainly VM on newer Mac) (Self-Enabling) -->
<profile>
<id>.os-windows-aarch64</id>
<activation>
<os>
<family>windows</family>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<os.suffix>win</os.suffix>
<os.classifier>windows-aarch64</os.classifier>
<cmake.generator>MinGW Makefiles</cmake.generator>
<!-- The generated code relied on Boost and that relies on VS and can't be built with MinGW -->
<!--cmake.generator>Visual Studio 17 2022</cmake.generator-->
<python.venv.bin>venv/Scripts/</python.venv.bin>
<python.exe.bin>python</python.exe.bin>
<cython.compiler>mingw32</cython.compiler>
</properties>
</profile>
<!-- Little helper profile that will disable running the cmake tests when the maven tests are being skipped -->
<profile>
<id>.skipTests</id>
<activation>
<property>
<name>skipTests</name>
</property>
</activation>
<properties>
<ctest.skip.tests>true</ctest.skip.tests>
</properties>
</profile>
<!-- Make sure the source assembly has the right name -->
<profile>
<id>apache-release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>source-release-assembly</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<!--
heads up: combine.self in the following is highlighted
as an error in Eclipse's xml editor view.
Just ignore that.
See https://issues.apache.org/jira/browse/MNG-5454 sigh.
-->
<configuration combine.self="append">
<finalName>apache-tsfile-${project.version}</finalName>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<!--
Generate an SBOM for the project
-->
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<!-- Only run this in the root module of the project -->
<inherited>false</inherited>
<configuration>
<outputName>apache-${project.artifactId}-${project.version}-sbom</outputName>
</configuration>
<executions>
<execution>
<goals>
<goal>makeAggregateBom</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<!--
Create SHA512 checksum files for the release artifacts.
-->
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<executions>
<execution>
<id>sign-source-release</id>
<goals>
<goal>files</goal>
</goals>
<phase>package</phase>
<configuration>
<algorithms>
<algorithm>SHA-512</algorithm>
</algorithms>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>apache-tsfile-${project.version}-source-release.zip</include>
</includes>
</fileSet>
</fileSets>
<failIfNoFiles>false</failIfNoFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>with-code-coverage</id>
<build>
<plugins>
<!--
Jacoco is a code coverage analysis plugin when tests run.
(not a static code analysis tool)
-->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
<configuration>
<rules>
<rule implementation="org.jacoco.maven.RuleConfiguration">
<element>BUNDLE</element>
<limits>  
<!-- Cover methodes >=30%. (the plugin does not support
ignore getter and setter and toString etc..) -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>METHOD</counter>
<value>COVEREDRATIO</value>
<minimum>0.00</minimum>
</limit>
<!-- if-else, swtich etc.. >=70% -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.00</minimum>
</limit>
<!-- class files >=95% -->
<limit implementation="org.jacoco.report.check.Limit">
<counter>CLASS</counter>
<value>COVEREDRATIO</value>
<minimum>0.00</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
<executions>
<!-- For UT-->
<execution>
<id>prepare-ut</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</destFile>
<propertyName>surefire.jacoco.args</propertyName>
</configuration>
</execution>
<!-- attached to Maven test phase -->
<execution>
<id>ut-report</id>
<goals>
<goal>report</goal>
<goal>check</goal>
</goals>
<phase>test</phase>
<configuration>
<dataFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</dataFile>
<outputDirectory>${project.build.directory}/jacoco-unit-reports</outputDirectory>
</configuration>
</execution>
<!-- For IT-->
<execution>
<id>before-integration-test-execution</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<destFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</destFile>
<propertyName>failsafe.jacoco.args</propertyName>
</configuration>
</execution>
<execution>
<id>after-integration-test-execution</id>
<goals>
<goal>report</goal>
<goal>check</goal>
</goals>
<phase>integration-test</phase>
<configuration>
<dataFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</dataFile>
<outputDirectory>${project.build.directory}/jacoco-integration-reports</outputDirectory>
</configuration>
</execution>
<execution>
<id>merge-unit-and-integration</id>
<goals>
<goal>merge</goal>
</goals>
<phase>post-integration-test</phase>
<configuration>
<fileSets>
<fileSet>
<directory>${project.build.directory}/</directory>
<includes>
<include>*.exec</include>
</includes>
</fileSet>
</fileSets>
<destFile>${project.build.directory}/${project.build.finalName}-merged.exec</destFile>
</configuration>
</execution>
<execution>
<id>create-merged-report</id>
<goals>
<goal>report</goal>
<goal>check</goal>
</goals>
<phase>post-integration-test</phase>
<configuration>
<dataFile>${project.build.directory}/${project.build.finalName}-merged.exec</dataFile>
<outputDirectory>${project.build.directory}/jacoco-merged-reports</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- overwrite argLine-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${argLine} @{surefire.jacoco.args} -Xmx1024m</argLine>
</configuration>
</plugin>
<!-- for IT-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<argLine>${argLine} @{failsafe.jacoco.args} -Xmx1024m</argLine>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>enforce</id>
<properties>
<enforcer.skip>false</enforcer.skip>
</properties>
</profile>
<!--
This profile is intended to help when having problems with Maven.
When enabled, it automatically generates an "effective.pom" in the target directory.
This version is the fully expanded version where all inherited configuration is in
place and all variables are resolved and profile configuration is included.
-->
<profile>
<id>debug-pom</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-help-plugin</artifactId>
<executions>
<execution>
<id>generate-effective-pom</id>
<phase>validate</phase>
<goals>
<goal>effective-pom</goal>
</goals>
<configuration>
<output>${project.build.directory}/effective.pom</output>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>