<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <artifactId>apm-sniffer</artifactId>
    <groupId>org.apache.skywalking</groupId>
    <version>8.6.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>apm-agent-core</artifactId>
  <name>apm-agent-core</name>
  <url>http://maven.apache.org</url>
  <build>
    <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>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <excludes>
                  <exclude>net.bytebuddy:byte-buddy:jar:</exclude>
                  <exclude>com.google.errorprone:error_prone_annotations:jar:</exclude>
                  <exclude>com.google.code.findbugs:jsr305:jar:</exclude>
                  <exclude>com.google.android:annotations:jar:</exclude>
                  <exclude>com.google.api.grpc:proto-google-common-protos:jar:</exclude>
                  <exclude>org.checkerframework:checker-compat-qual:jar:</exclude>
                  <exclude>org.codehaus.mojo:animal-sniffer-annotations:jar:</exclude>
                </excludes>
              </artifactSet>
              <relocations>
                <relocation>
                  <pattern>${shade.com.google.source}</pattern>
                  <shadedPattern>${shade.com.google.target}</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>${shade.io.grpc.source}</pattern>
                  <shadedPattern>${shade.io.grpc.target}</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>${shade.io.netty.source}</pattern>
                  <shadedPattern>${shade.io.netty.target}</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>${shade.io.opencensus.source}</pattern>
                  <shadedPattern>${shade.io.opencensus.target}</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>${shade.io.perfmark.source}</pattern>
                  <shadedPattern>${shade.io.perfmark.target}</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>${shade.org.slf4j.source}</pattern>
                  <shadedPattern>${shade.org.slf4j.target}</shadedPattern>
                </relocation>
              </relocations>
              <filters>
                <filter>
                  <artifact>com.google.protobuf:protobuf-java</artifact>
                  <excludes>
                    <exclude>google/protobuf/*.proto</exclude>
                    <exclude>google/protobuf/compiler/*.proto</exclude>
                  </excludes>
                </filter>
              </filters>
              <transformers>
                <transformer />
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <delete />
              </target>
            </configuration>
          </execution>
          <execution>
            <id>unpack</id>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <echo />
                <unzip />
                <echo />
                <move />
                <move />
                <move />
                <echo />
                <jar />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>net.bytebuddy</groupId>
      <artifactId>byte-buddy</artifactId>
      <version>1.10.19</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>net.bytebuddy</groupId>
      <artifactId>byte-buddy-agent</artifactId>
      <version>1.10.19</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.github.tomakehurst</groupId>
      <artifactId>wiremock</artifactId>
      <version>2.6.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>jackson-annotations</artifactId>
          <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jackson-core</artifactId>
          <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jackson-databind</artifactId>
          <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-server</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-servlet</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-servlets</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jetty-webapp</artifactId>
          <groupId>org.eclipse.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>httpclient</artifactId>
          <groupId>org.apache.httpcomponents</groupId>
        </exclusion>
        <exclusion>
          <artifactId>xmlunit-core</artifactId>
          <groupId>org.xmlunit</groupId>
        </exclusion>
        <exclusion>
          <artifactId>xmlunit-legacy</artifactId>
          <groupId>org.xmlunit</groupId>
        </exclusion>
        <exclusion>
          <artifactId>json-path</artifactId>
          <groupId>com.jayway.jsonpath</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jopt-simple</artifactId>
          <groupId>net.sf.jopt-simple</groupId>
        </exclusion>
        <exclusion>
          <artifactId>commons-lang3</artifactId>
          <groupId>org.apache.commons</groupId>
        </exclusion>
        <exclusion>
          <artifactId>zjsonpatch</artifactId>
          <groupId>com.flipkart.zjsonpatch</groupId>
        </exclusion>
        <exclusion>
          <artifactId>handlebars</artifactId>
          <groupId>com.github.jknack</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-testing</artifactId>
      <version>1.32.1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>mockito-core</artifactId>
          <groupId>org.mockito</groupId>
        </exclusion>
        <exclusion>
          <artifactId>opencensus-api</artifactId>
          <groupId>io.opencensus</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.github.stefanbirkner</groupId>
      <artifactId>system-rules</artifactId>
      <version>1.18.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.openjdk.jmh</groupId>
      <artifactId>jmh-generator-annprocess</artifactId>
      <version>1.21</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <version>2.0.7</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>powermock-module-junit4-common</artifactId>
          <groupId>org.powermock</groupId>
        </exclusion>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito2</artifactId>
      <version>2.0.7</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>powermock-api-support</artifactId>
          <groupId>org.powermock</groupId>
        </exclusion>
        <exclusion>
          <artifactId>mockito-core</artifactId>
          <groupId>org.mockito</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.objenesis</groupId>
      <artifactId>objenesis</artifactId>
      <version>3.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.openjdk.jmh</groupId>
      <artifactId>jmh-core</artifactId>
      <version>1.21</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>commons-math3</artifactId>
          <groupId>org.apache.commons</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jopt-simple</artifactId>
          <groupId>net.sf.jopt-simple</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.16</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
      <version>1.3.2</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>${bytebuddy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <properties>
    <shade.io.perfmark.target>${shade.package}.${shade.io.perfmark.source}</shade.io.perfmark.target>
    <shade.org.slf4j.target>${shade.package}.${shade.org.slf4j.source}</shade.org.slf4j.target>
    <shade.io.opencensus.source>io.opencensus</shade.io.opencensus.source>
    <shade.io.grpc.target>${shade.package}.${shade.io.grpc.source}</shade.io.grpc.target>
    <netty-tcnative-boringssl-static.version>2.0.7.Final</netty-tcnative-boringssl-static.version>
    <os-maven-plugin.version>1.4.1.Final</os-maven-plugin.version>
    <shade.io.netty.source>io.netty</shade.io.netty.source>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <wiremock.version>2.6.0</wiremock.version>
    <ststem-rules.version>1.18.0</ststem-rules.version>
    <shade.io.opencensus.target>${shade.package}.${shade.io.opencensus.source}</shade.io.opencensus.target>
    <slf4j.version>1.7.25</slf4j.version>
    <shade.io.netty.target>${shade.package}.${shade.io.netty.source}</shade.io.netty.target>
    <shade.package>org.apache.skywalking.apm.dependencies</shade.package>
    <shade.com.google.source>com.google</shade.com.google.source>
    <guava.version>20.0</guava.version>
    <shade.io.perfmark.source>io.perfmark</shade.io.perfmark.source>
    <shade.org.slf4j.source>org.slf4j</shade.org.slf4j.source>
    <shade.io.grpc.source>io.grpc</shade.io.grpc.source>
    <shade.com.google.target>${shade.package}.${shade.com.google.source}</shade.com.google.target>
  </properties>
</project>
