mirror of
https://github.com/Graylog2/graylog2-server.git
synced 2026-03-13 09:32:21 +08:00
960 lines
40 KiB
XML
960 lines
40 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
|
|
Copyright (C) 2020 Graylog, Inc.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the Server Side Public License, version 1,
|
|
as published by MongoDB, Inc.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Server Side Public License for more details.
|
|
|
|
You should have received a copy of the Server Side Public License
|
|
along with this program. If not, see
|
|
<http://www.mongodb.com/licensing/server-side-public-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">
|
|
<parent>
|
|
<groupId>org.graylog</groupId>
|
|
<artifactId>graylog-project-parent</artifactId>
|
|
<version>6.3.0-SNAPSHOT</version>
|
|
<relativePath>../graylog-project-parent</relativePath>
|
|
</parent>
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>org.graylog2</groupId>
|
|
<artifactId>data-node</artifactId>
|
|
<packaging>jar</packaging>
|
|
|
|
<name>DataNode</name>
|
|
<description>Graylog management tool for Opensearch</description>
|
|
|
|
<inceptionYear>2023</inceptionYear>
|
|
|
|
<properties>
|
|
<mainClass>org.graylog.datanode.bootstrap.Main</mainClass>
|
|
|
|
<maven.compiler.source>17</maven.compiler.source>
|
|
<maven.compiler.target>17</maven.compiler.target>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<opensearch.version>2.15.0</opensearch.version>
|
|
|
|
<!--
|
|
We don't need to sign anything in this module. This fixes a release build error related to setting
|
|
the <outputDirectory> to a different path: https://issues.apache.org/jira/browse/MGPG-44
|
|
-->
|
|
<gpg.skip>true</gpg.skip>
|
|
<maven.source.skip>true</maven.source.skip>
|
|
<maven.javadoc.skip>true</maven.javadoc.skip>
|
|
<maven.deploy.skip>true</maven.deploy.skip>
|
|
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.graylog2</groupId>
|
|
<artifactId>graylog2-server</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.graylog</groupId>
|
|
<artifactId>graylog-storage-opensearch2</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.github.rvesse</groupId>
|
|
<artifactId>airline</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.auto.value</groupId>
|
|
<artifactId>auto-value-annotations</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.graylog.autovalue</groupId>
|
|
<artifactId>auto-value-javabean</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.inject</groupId>
|
|
<artifactId>guice</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.inject.extensions</groupId>
|
|
<artifactId>guice-assistedinject</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>jakarta.inject</groupId>
|
|
<artifactId>jakarta.inject-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.graylog</groupId>
|
|
<artifactId>jadconfig</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.zafarkhaja</groupId>
|
|
<artifactId>java-semver</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.graylog.repackaged</groupId>
|
|
<artifactId>semver4j</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mongodb</groupId>
|
|
<artifactId>mongodb-driver-sync</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mongodb</groupId>
|
|
<artifactId>mongodb-driver-legacy</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mongojack</groupId>
|
|
<artifactId>mongojack</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.graylog.repackaged</groupId>
|
|
<artifactId>os-platform-finder</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-annotation</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-log4j2</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-jvm</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-jmx</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-json</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.bouncycastle</groupId>
|
|
<artifactId>bcpkix-jdk18on</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.bouncycastle</groupId>
|
|
<artifactId>bcprov-jdk18on</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-common</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-buffer</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-handler</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-codec</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-codec-dns</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-codec-http</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-resolver-dns</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-transport-native-epoll</artifactId>
|
|
<classifier>linux-x86_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-transport-native-epoll</artifactId>
|
|
<classifier>linux-aarch_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-transport-native-kqueue</artifactId>
|
|
<classifier>osx-x86_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-transport-native-kqueue</artifactId>
|
|
<classifier>osx-aarch_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-tcnative-boringssl-static</artifactId>
|
|
<classifier>osx-x86_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-tcnative-boringssl-static</artifactId>
|
|
<classifier>osx-aarch_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-tcnative-boringssl-static</artifactId>
|
|
<classifier>linux-x86_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-tcnative-boringssl-static</artifactId>
|
|
<classifier>linux-aarch_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.jsonwebtoken</groupId>
|
|
<artifactId>jjwt-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.jsonwebtoken</groupId>
|
|
<artifactId>jjwt-impl</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.jsonwebtoken</groupId>
|
|
<artifactId>jjwt-jackson</artifactId>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-backward-codecs</artifactId>
|
|
<version>${lucene.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.inject</groupId>
|
|
<artifactId>jersey-hk2</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.ext</groupId>
|
|
<artifactId>jersey-bean-validation</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.media</groupId>
|
|
<artifactId>jersey-media-multipart</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.containers</groupId>
|
|
<artifactId>jersey-container-grizzly2-http</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.hk2</groupId>
|
|
<artifactId>guice-bridge</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.hk2</groupId>
|
|
<artifactId>hk2-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.hk2</groupId>
|
|
<artifactId>hk2-locator</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>jakarta.ws.rs</groupId>
|
|
<artifactId>jakarta.ws.rs-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>javax.xml.bind</groupId>
|
|
<artifactId>jaxb-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-slf4j2-impl</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>jcl-over-slf4j</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>log4j-over-slf4j</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-jul</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-annotations</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
<artifactId>jackson-datatype-guava</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
<artifactId>jackson-datatype-jdk8</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
<artifactId>jackson-datatype-joda</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.module</groupId>
|
|
<artifactId>jackson-module-jsonSchema-jakarta</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
|
|
<artifactId>jackson-jakarta-rs-json-provider</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-yaml</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-csv</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.reflections</groupId>
|
|
<artifactId>reflections</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.github.rholder</groupId>
|
|
<artifactId>guava-retrying</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>commons-io</groupId>
|
|
<artifactId>commons-io</artifactId>
|
|
<version>${commons-io.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>joda-time</groupId>
|
|
<artifactId>joda-time</artifactId>
|
|
<version>${joda-time.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.cryptomator</groupId>
|
|
<artifactId>siv-mode</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.shiro</groupId>
|
|
<artifactId>shiro-core</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.graylog.shaded</groupId>
|
|
<artifactId>opensearch2-rest-high-level-client</artifactId>
|
|
<version>${opensearch.shaded.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>commons-logging</groupId>
|
|
<artifactId>commons-logging</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.graylog.shaded</groupId>
|
|
<artifactId>opensearch2-rest-client-sniffer</artifactId>
|
|
<version>${opensearch.shaded.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>commons-logging</groupId>
|
|
<artifactId>commons-logging</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-collections4</artifactId>
|
|
<version>4.5.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-exec</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.github.stateless4j</groupId>
|
|
<artifactId>stateless4j</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-smile</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.assertj</groupId>
|
|
<artifactId>assertj-core</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>testcontainers</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-core</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>io.rest-assured</groupId>
|
|
<artifactId>rest-assured</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-junit-jupiter</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.graylog2</groupId>
|
|
<artifactId>graylog2-server</artifactId>
|
|
<version>${project.version}</version>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
|
|
</dependencies>
|
|
|
|
<build>
|
|
<finalName>datanode</finalName>
|
|
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<excludes>
|
|
<exclude>**/*.properties</exclude>
|
|
</excludes>
|
|
</resource>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<filtering>true</filtering>
|
|
<includes>
|
|
<include>**/*.properties</include>
|
|
</includes>
|
|
</resource>
|
|
</resources>
|
|
|
|
<testResources>
|
|
<testResource>
|
|
<directory>src/test/resources</directory>
|
|
<filtering>true</filtering>
|
|
<excludes>
|
|
<exclude>indices/**</exclude>
|
|
</excludes>
|
|
</testResource>
|
|
<testResource>
|
|
<directory>src/test/resources/indices</directory>
|
|
<targetPath>${project.build.testOutputDirectory}/indices</targetPath>
|
|
<filtering>false</filtering>
|
|
</testResource>
|
|
</testResources>
|
|
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>test-jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<version>3.6.1</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>buildnumber-maven-plugin</artifactId>
|
|
<version>3.2.1</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<version>3.5.1</version>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.graylog.repackaged</groupId>
|
|
<artifactId>download-maven-plugin</artifactId>
|
|
<version>${download-maven-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>unpack-opensearch-tar-linux-x64</id>
|
|
<phase>generate-resources</phase>
|
|
<goals>
|
|
<goal>wget</goal>
|
|
</goals>
|
|
<configuration>
|
|
<url>
|
|
https://artifacts.opensearch.org/releases/bundle/opensearch/${opensearch.version}/opensearch-${opensearch.version}-linux-x64.tar.gz
|
|
</url>
|
|
<sha512>
|
|
a72f218b581903b1ddf1072498560bc5304516ed57feb39735f920985740366c2779ed9174251a13b9a9dabdfc184119c325bb387dadf96485dc7964ecf32d54
|
|
</sha512>
|
|
<outputFileName>opensearch-${opensearch.version}-linux-x64.tar.gz</outputFileName>
|
|
<outputDirectory>${project.build.directory}/opensearch</outputDirectory>
|
|
<unpack>true</unpack>
|
|
<fileMappers>
|
|
<org.codehaus.plexus.components.io.filemappers.RegExpFileMapper>
|
|
<pattern>^(opensearch-\d+\.\d+\.\d+)/</pattern>
|
|
<replacement>$1-linux-x64/</replacement>
|
|
</org.codehaus.plexus.components.io.filemappers.RegExpFileMapper>
|
|
</fileMappers>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>unpack-opensearch-tar-linux-aarch64</id>
|
|
<phase>generate-resources</phase>
|
|
<goals>
|
|
<goal>wget</goal>
|
|
</goals>
|
|
<configuration>
|
|
<url>
|
|
https://artifacts.opensearch.org/releases/bundle/opensearch/${opensearch.version}/opensearch-${opensearch.version}-linux-arm64.tar.gz
|
|
</url>
|
|
<sha512>
|
|
866c348ac39b7b35e671917349269383c75e1f9d10768742067807569180d1914fd09c6ae7e71d5e74bd77c8c8165ea17c19290b71f887f074dfe8e68dff66bb
|
|
</sha512>
|
|
<outputFileName>opensearch-${opensearch.version}-linux-aarch64.tar.gz</outputFileName>
|
|
<outputDirectory>${project.build.directory}/opensearch</outputDirectory>
|
|
<unpack>true</unpack>
|
|
<fileMappers>
|
|
<org.codehaus.plexus.components.io.filemappers.RegExpFileMapper>
|
|
<pattern>^(opensearch-\d+\.\d+\.\d+)/</pattern>
|
|
<replacement>$1-linux-aarch64/</replacement>
|
|
</org.codehaus.plexus.components.io.filemappers.RegExpFileMapper>
|
|
</fileMappers>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>download-repository-s3-plugin</id>
|
|
<phase>generate-resources</phase>
|
|
<goals>
|
|
<goal>wget</goal>
|
|
</goals>
|
|
<configuration>
|
|
<url>
|
|
https://artifacts.opensearch.org/releases/plugins/repository-s3/${opensearch.version}/repository-s3-${opensearch.version}.zip
|
|
</url>
|
|
<outputFileName>repository-s3-${opensearch.version}.zip</outputFileName>
|
|
<outputDirectory>${project.build.directory}/opensearch-plugins</outputDirectory>
|
|
<sha512>
|
|
de44a181133a33a08703e8464b52aa2ac29d1d9918d9478c307b98909a571baaaf0c9dcb664349802c3dd85fa53275bd2228248fd129179631b9096d470eb8d5
|
|
</sha512>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>download-repository-gcs-plugin</id>
|
|
<phase>generate-resources</phase>
|
|
<goals>
|
|
<goal>wget</goal>
|
|
</goals>
|
|
<configuration>
|
|
<url>
|
|
https://artifacts.opensearch.org/releases/plugins/repository-gcs/${opensearch.version}/repository-gcs-${opensearch.version}.zip
|
|
</url>
|
|
<outputFileName>repository-gcs-${opensearch.version}.zip</outputFileName>
|
|
<outputDirectory>${project.build.directory}/opensearch-plugins</outputDirectory>
|
|
<sha512>
|
|
b6e6039d002dba0184adb0e1992d2d26d58d06a57d167871e8b40802bcc1cb7ed12132fb3956e43c0dd91eb60eab7dc3e0d830926cdeb7574c53398c8d253cf9
|
|
</sha512>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>fix-opensearch-config-permissions</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<!-- Some config files in opensearch-*/config/ use 660 permissions. That's a problem
|
|
when running OpenSearch under a different user account than the owner of the
|
|
OpenSearch config files. (OS packages or container image)
|
|
-->
|
|
<chmod dir="${project.build.directory}/opensearch"
|
|
includes="opensearch-*/config/**"
|
|
perm="ugo+r"/>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>remove-unused-opensearch-plugins-x64</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
<configuration>
|
|
<mainClass>org.graylog.datanode.build.RemoveOpensearchPlugins</mainClass>
|
|
<arguments>
|
|
<argument>${project.build.directory}/opensearch/opensearch-${opensearch.version}-linux-x64</argument>
|
|
<!--caution, the plugin order is relevant. Plugins have dependencies on other plugins
|
|
and need to be removed in correct order-->
|
|
<argument>opensearch-alerting</argument>
|
|
<argument>opensearch-custom-codecs</argument>
|
|
<argument>opensearch-geospatial</argument>
|
|
<argument>opensearch-neural-search</argument>
|
|
<argument>opensearch-knn</argument>
|
|
<argument>opensearch-notifications</argument>
|
|
<argument>opensearch-notifications-core</argument>
|
|
<argument>opensearch-performance-analyzer</argument>
|
|
<argument>opensearch-reports-scheduler</argument>
|
|
<argument>opensearch-security-analytics</argument>
|
|
<argument>opensearch-sql</argument>
|
|
<argument>opensearch-observability</argument>
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>remove-unused-opensearch-plugins-aarch64</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
<configuration>
|
|
<mainClass>org.graylog.datanode.build.RemoveOpensearchPlugins</mainClass>
|
|
<arguments>
|
|
<argument>${project.build.directory}/opensearch/opensearch-${opensearch.version}-linux-aarch64</argument>
|
|
<!--caution, the plugin order is relevant. Plugins have dependencies on other plugins
|
|
and need to be removed in correct order-->
|
|
<argument>opensearch-alerting</argument>
|
|
<argument>opensearch-custom-codecs</argument>
|
|
<argument>opensearch-geospatial</argument>
|
|
<argument>opensearch-neural-search</argument>
|
|
<argument>opensearch-knn</argument>
|
|
<argument>opensearch-notifications</argument>
|
|
<argument>opensearch-notifications-core</argument>
|
|
<argument>opensearch-performance-analyzer</argument>
|
|
<argument>opensearch-reports-scheduler</argument>
|
|
<argument>opensearch-security-analytics</argument>
|
|
<argument>opensearch-sql</argument>
|
|
<argument>opensearch-observability</argument>
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>install-required-opensearch-plugins-x64</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
<configuration>
|
|
<mainClass>org.graylog.datanode.build.InstallOpensearchPlugins</mainClass>
|
|
<arguments>
|
|
<argument>${project.build.directory}/opensearch/opensearch-${opensearch.version}-linux-x64</argument>
|
|
<argument>${project.build.directory}/opensearch-plugins/repository-s3-${opensearch.version}.zip</argument>
|
|
<argument>${project.build.directory}/opensearch-plugins/repository-gcs-${opensearch.version}.zip</argument>
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>install-required-opensearch-plugins-aarch64</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
<configuration>
|
|
<mainClass>org.graylog.datanode.build.InstallOpensearchPlugins</mainClass>
|
|
<arguments>
|
|
<argument>${project.build.directory}/opensearch/opensearch-${opensearch.version}-linux-aarch64</argument>
|
|
<argument>${project.build.directory}/opensearch-plugins/repository-s3-${opensearch.version}.zip</argument>
|
|
<argument>${project.build.directory}/opensearch-plugins/repository-gcs-${opensearch.version}.zip</argument>
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-csv-docs</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
<configuration>
|
|
<mainClass>org.graylog.datanode.docs.ConfigurationDocsGenerator</mainClass>
|
|
<arguments>
|
|
<argument>csv</argument>
|
|
<argument>${project.build.directory}/datanode-conf-docs.csv</argument>
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-conf-example</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
<configuration>
|
|
<mainClass>org.graylog.datanode.docs.ConfigurationDocsGenerator</mainClass>
|
|
<arguments>
|
|
<argument>conf</argument>
|
|
<argument>${project.build.directory}/datanode.conf.generated</argument>
|
|
<!-- use the following line if you want to distribute the generated version instead of manually created -->
|
|
<!-- <argument>${project.build.directory}/datanode.conf.example</argument> -->
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-dependencies</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>copy-dependencies</goal>
|
|
</goals>
|
|
<configuration>
|
|
<includeScope>runtime</includeScope>
|
|
<outputDirectory>${project.build.directory}/lib</outputDirectory>
|
|
<overWriteReleases>false</overWriteReleases>
|
|
<overWriteSnapshots>false</overWriteSnapshots>
|
|
<overWriteIfNewer>true</overWriteIfNewer>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<configuration>
|
|
<finalName>graylog-datanode-${project.version}</finalName>
|
|
<archive>
|
|
<manifest>
|
|
<addClasspath>true</addClasspath>
|
|
<classpathPrefix>lib/</classpathPrefix>
|
|
<mainClass>${mainClass}</mainClass>
|
|
</manifest>
|
|
</archive>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.cyclonedx</groupId>
|
|
<artifactId>cyclonedx-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>makeAggregateBom</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<projectType>application</projectType>
|
|
<includeBomSerialNumber>true</includeBomSerialNumber>
|
|
<includeCompileScope>true</includeCompileScope>
|
|
<includeProvidedScope>true</includeProvidedScope>
|
|
<includeRuntimeScope>true</includeRuntimeScope>
|
|
<includeSystemScope>true</includeSystemScope>
|
|
<includeTestScope>false</includeTestScope>
|
|
<includeLicenseText>false</includeLicenseText>
|
|
<outputReactorProjects>true</outputReactorProjects>
|
|
<outputFormat>all</outputFormat>
|
|
<outputName>graylog-data-node-${project.version}-sbom</outputName>
|
|
<outputDirectory>${project.build.directory}/sbom</outputDirectory>
|
|
<skipNotDeployed>false</skipNotDeployed>
|
|
<verbose>true</verbose>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>generate-data-node-artifact</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<attach>true</attach>
|
|
<appendAssemblyId>true</appendAssemblyId>
|
|
<descriptors>
|
|
<descriptor>src/main/assembly/datanode.xml</descriptor>
|
|
</descriptors>
|
|
<!-- to make it easier to collect assemblies, we put them into the _parent's_ build directory -->
|
|
<outputDirectory>${project.basedir}/../target/assembly</outputDirectory>
|
|
<finalName>datanode-${project.version}-${maven.build.timestamp}</finalName>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>parse-version</id>
|
|
<phase>generate-resources</phase>
|
|
<goals>
|
|
<goal>parse-version</goal>
|
|
</goals>
|
|
<configuration>
|
|
<propertyPrefix>maven</propertyPrefix>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>buildnumber-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>create</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.mycila</groupId>
|
|
<artifactId>license-maven-plugin</artifactId>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<configuration>
|
|
<rules>
|
|
<RestrictImports>
|
|
<groups>
|
|
<group>
|
|
<reason>Data Node packages must be allowed for the data-node/ module.</reason>
|
|
<allowedImports>
|
|
<allowedImport>org.graylog.datanode.**</allowedImport>
|
|
</allowedImports>
|
|
</group>
|
|
</groups>
|
|
</RestrictImports>
|
|
</rules>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>release</id>
|
|
<build>
|
|
<finalName>datanode-${project.version}</finalName>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar-no-fork</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<configuration>
|
|
<quiet>true</quiet>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|