| <?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> |
| |
| <groupId>org.apache.skywalking</groupId> |
| <artifactId>apm</artifactId> |
| <version>9.4.0</version> |
| |
| <parent> |
| <groupId>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>29</version> |
| <relativePath /> |
| </parent> |
| |
| <modules> |
| <module>apm-protocol</module> |
| </modules> |
| |
| <packaging>pom</packaging> |
| |
| <name>apm</name> |
| <url>https://github.com/apache/skywalking</url> |
| |
| <scm> |
| <url>https://github.com/apache/skywalking</url> |
| <connection>scm:git:https://github.com/apache/skywalking.git</connection> |
| <developerConnection>scm:git:https://github.com/apache/skywalking.git</developerConnection> |
| <tag>v9.4.0</tag> |
| </scm> |
| |
| <issueManagement> |
| <system>GitHub</system> |
| <url>https://github.com/apache/skywalking/issues</url> |
| </issueManagement> |
| |
| <licenses> |
| <license> |
| <name>The Apache Software License, Version 2.0</name> |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| </license> |
| </licenses> |
| |
| <mailingLists> |
| <mailingList> |
| <name>SkyWalking Developer List</name> |
| <post>dev@skywalking.apache.org</post> |
| <subscribe>dev-subscribe@skywalking.apache.org</subscribe> |
| <unsubscribe>dev-unsubscribe@skywalking.apache.org</unsubscribe> |
| </mailingList> |
| <mailingList> |
| <name>SkyWalking Commits</name> |
| <post>commits@skywalking.apache.org</post> |
| <subscribe>commits-subscribe@skywalking.apache.org</subscribe> |
| <unsubscribe>commits-unsubscribe@skywalking.apache.org</unsubscribe> |
| </mailingList> |
| </mailingLists> |
| |
| <profiles> |
| <profile> |
| <id>backend</id> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| </activation> |
| <modules> |
| <module>oap-server</module> |
| <module>oap-server-bom</module> |
| </modules> |
| </profile> |
| <profile> |
| <id>ui</id> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| </activation> |
| <modules> |
| <module>apm-webapp</module> |
| </modules> |
| </profile> |
| <profile> |
| <id>dist</id> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| </activation> |
| <modules> |
| <module>apm-dist</module> |
| </modules> |
| </profile> |
| <profile> |
| <id>all</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <modules> |
| <module>oap-server</module> |
| <module>oap-server-bom</module> |
| <module>apm-webapp</module> |
| <module>apm-dist</module> |
| </modules> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>${exec-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>git submodule update</id> |
| <phase>initialize</phase> |
| <inherited>false</inherited> |
| <configuration> |
| <executable>git</executable> |
| <arguments> |
| <argument>submodule</argument> |
| <argument>update</argument> |
| <argument>--init</argument> |
| <argument>--recursive</argument> |
| </arguments> |
| </configuration> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| |
| <properties> |
| <!-- Built in properties --> |
| <maven.compiler.source>11</maven.compiler.source> |
| <maven.compiler.target>11</maven.compiler.target> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| |
| <powermock.version>2.0.9</powermock.version> |
| <checkstyle.version>6.18</checkstyle.version> |
| <junit.version>5.9.2</junit.version> |
| <mockito-core.version>4.11.0</mockito-core.version> |
| <lombok.version>1.18.22</lombok.version> |
| |
| <!-- core lib dependency --> |
| <grpc.version>1.49.0</grpc.version> |
| <netty.version>4.1.86.Final</netty.version> |
| <netty-tcnative-boringssl-static.version>2.0.52.Final</netty-tcnative-boringssl-static.version> |
| <gson.version>2.9.0</gson.version> |
| <os-maven-plugin.version>1.6.2</os-maven-plugin.version> |
| <protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version> |
| <com.google.protobuf.protoc.version>3.19.2</com.google.protobuf.protoc.version> |
| <protoc-gen-grpc-java.plugin.version>1.42.1</protoc-gen-grpc-java.plugin.version> |
| <javax.annotation-api.version>1.3.2</javax.annotation-api.version> |
| <objenesis.version>3.1</objenesis.version> |
| <!-- necessary for Java 9+ --> |
| <org.apache.tomcat.annotations-api.version>6.0.53</org.apache.tomcat.annotations-api.version> |
| |
| <!-- |
| The version of Antlr compiler (maven plugin) must match the version of runtime (maven dependency), |
| hence we don't allow arbitrary dependency overriding in oap-server-bom and keep the version only here |
| in a single place. Upgrading Antlr version here requires recompiling the oal-rt/oal-rt modules so users |
| won't face error like "ANTLR Tool version 4.9.3 used for code generation does not match the current runtime version 4.7.1". |
| --> |
| <antlr.version>4.11.1</antlr.version> |
| |
| <!-- Plugin versions --> |
| <maven-failsafe-plugin.version>3.0.0-M8</maven-failsafe-plugin.version> |
| <takari-maven-plugin.version>0.6.1</takari-maven-plugin.version> |
| <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version> |
| <build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version> |
| <maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version> |
| <jmh.version>1.21</jmh.version> |
| <checkstyle.fails.on.error>true</checkstyle.fails.on.error> |
| <assertj-core.version>3.20.2</assertj-core.version> |
| |
| <skipUTs>false</skipUTs> |
| |
| <system-stubs.version>2.0.2</system-stubs.version> |
| </properties> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-params</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-inline</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-junit-jupiter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-reflect</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-core</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.openjdk.jmh</groupId> |
| <artifactId>jmh-core</artifactId> |
| <version>${jmh.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <version>${lombok.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| <version>${javax.annotation-api.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>org.junit</groupId> |
| <artifactId>junit-bom</artifactId> |
| <version>${junit.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>${mockito-core.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-inline</artifactId> |
| <version>${mockito-core.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-junit-jupiter</artifactId> |
| <version>${mockito-core.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-reflect</artifactId> |
| <version>${powermock.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-core</artifactId> |
| <version>${assertj-core.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>uk.org.webcompere</groupId> |
| <artifactId>system-stubs-jupiter</artifactId> |
| <version>${system-stubs.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.openjdk.jmh</groupId> |
| <artifactId>jmh-generator-annprocess</artifactId> |
| <version>${jmh.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- These dependencies will be bundled in JDK9+ but we don't need them, just exclude them. --> |
| <dependency> |
| <groupId>javax.xml.bind</groupId> |
| <artifactId>jaxb-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jaxb</groupId> |
| <artifactId>jaxb-runtime</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr4-runtime</artifactId> |
| <version>${antlr.version}</version> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <configuration> |
| <argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>integration-test</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-jar-plugin</artifactId> |
| <configuration> |
| <forceCreation>true</forceCreation> |
| </configuration> |
| </plugin> |
| <!-- |
| maven-surefire-plugin will exclude integration tests (ITs) |
| and leave them for maven-failsafe-plugin to run, which is bound to the `verify` goal. |
| If you want to run the ITs please run ./mvnw integration-test, |
| e.g. you want to run the ITs in oap-server, run `./mvnw -Pbackend clean integration-test` |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <skip>${skipUTs}</skip> |
| <argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr4-maven-plugin</artifactId> |
| <version>${antlr.version}</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>kr.motd.maven</groupId> |
| <artifactId>os-maven-plugin</artifactId> |
| <version>${os-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <phase>initialize</phase> |
| <goals> |
| <goal>detect</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>enforce-java</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <phase>validate</phase> |
| <configuration> |
| <rules> |
| <requireJavaVersion> |
| <version>11</version> |
| </requireJavaVersion> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <version>${maven-checkstyle-plugin.version}</version> |
| <configuration> |
| <configLocation>${maven.multiModuleProjectDirectory}/apm-checkstyle/checkStyle.xml</configLocation> |
| <encoding>UTF-8</encoding> |
| <consoleOutput>true</consoleOutput> |
| <includeTestSourceDirectory>true</includeTestSourceDirectory> |
| <failOnViolation>${checkstyle.fails.on.error}</failOnViolation> |
| <sourceDirectories> |
| <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> |
| <sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory> |
| </sourceDirectories> |
| <resourceIncludes> |
| **/*.properties, |
| **/*.sh, |
| **/*.bat, |
| **/*.yml, |
| **/*.yaml, |
| **/*.xml |
| </resourceIncludes> |
| <resourceExcludes> |
| **/.asf.yaml, |
| **/.github/** |
| </resourceExcludes> |
| <excludes> |
| **/target/generated-test-sources/**, |
| org/apache/skywalking/apm/network/register/v2/**/*.java, |
| org/apache/skywalking/apm/network/common/**/*.java, |
| org/apache/skywalking/apm/network/servicemesh/**/*.java, |
| org/apache/skywalking/apm/network/language/**/*.java, |
| org/apache/skywalking/oap/server/core/remote/grpc/proto/*.java, |
| org/apache/skywalking/oal/rt/grammar/*.java, |
| org/apache/skywalking/oap/server/exporter/grpc/*.java, |
| org/apache/skywalking/oap/server/configuration/service/*.java, |
| **/generated/*_jmhType*.java, |
| **/generated/*_jmhTest.java, |
| org/junit/**/*.java |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <id>validate</id> |
| <phase>process-sources</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok-maven-plugin</artifactId> |
| <version>1.18.20.0</version> |
| <configuration> |
| <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> |
| <addOutputDirectory>false</addOutputDirectory> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>delombok</goal> |
| </goals> |
| </execution> |
| </executions> |
| <dependencies> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <version>${lombok.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <configuration> |
| <sourcepath> |
| ${project.build.directory}/generated-sources/delombok; |
| ${project.build.directory}/generated-sources/protobuf/java; |
| ${project.build.directory}/generated-sources/protobuf/grpc-java; |
| ${project.build.directory}/generated-sources/antlr4;; |
| </sourcepath> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |