<?xml version="1.0"?>
<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">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.logging.log4j</groupId>

    <artifactId>log4j</artifactId>

    <version>2.17.0</version>

    <relativePath>../</relativePath>

  </parent>

  <artifactId>log4j-api</artifactId>

  <packaging>jar</packaging>

  <name>Apache Log4j API</name>

  <description>The Apache Log4j API</description>

  <properties>
    <log4jParentDir>${basedir}/..</log4jParentDir>

    <docLabel>API Documentation</docLabel>

    <projectDir>/api</projectDir>

    <maven.doap.skip>true</maven.doap.skip>

  </properties>

  <dependencies>
    
    <dependency>
      <groupId>org.apache.felix</groupId>

      <artifactId>org.apache.felix.framework</artifactId>

      <scope>test</scope>

    </dependency>

    <dependency>
      <groupId>org.osgi</groupId>

      <artifactId>org.osgi.core</artifactId>

      <scope>provided</scope>

    </dependency>

    <dependency>
      <groupId>org.junit.vintage</groupId>

      <artifactId>junit-vintage-engine</artifactId>

    </dependency>

    <dependency>
      <groupId>org.junit.jupiter</groupId>

      <artifactId>junit-jupiter-migrationsupport</artifactId>

    </dependency>

    <dependency>
      <groupId>org.junit.jupiter</groupId>

      <artifactId>junit-jupiter-params</artifactId>

    </dependency>

    <dependency>
      <groupId>org.junit.jupiter</groupId>

      <artifactId>junit-jupiter-engine</artifactId>

    </dependency>

    <dependency>
      <groupId>org.assertj</groupId>

      <artifactId>assertj-core</artifactId>

    </dependency>

    <dependency>
      <groupId>org.eclipse.tycho</groupId>

      <artifactId>org.eclipse.osgi</artifactId>

      <scope>test</scope>

    </dependency>

    <dependency>
      <groupId>org.apache.maven</groupId>

      <artifactId>maven-core</artifactId>

      <scope>test</scope>

    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>

      <artifactId>commons-lang3</artifactId>

      <scope>test</scope>

    </dependency>

    
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>

      <artifactId>jackson-core</artifactId>

      <scope>test</scope>

    </dependency>

    
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>

      <artifactId>jackson-databind</artifactId>

      <scope>test</scope>

    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-dependency-plugin</artifactId>

        <version>3.0.2</version>

        <executions>
          <execution>
            <id>unpack-classes</id>

            <phase>prepare-package</phase>

            <goals>
              <goal>unpack</goal>

            </goals>

            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.apache.logging.log4j</groupId>

                  <artifactId>log4j-api-java9</artifactId>

                  <version>${project.version}</version>

                  <type>zip</type>

                  <overWrite>false</overWrite>

                </artifactItem>

              </artifactItems>

              <includes>**/*.class</includes>

              <excludes>**/*.java</excludes>

              <outputDirectory>${project.build.directory}</outputDirectory>

              <overWriteReleases>false</overWriteReleases>

              <overWriteSnapshots>true</overWriteSnapshots>

            </configuration>

          </execution>

        </executions>

      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>

        <artifactId>build-helper-maven-plugin</artifactId>

        <version>1.7</version>

        <executions>
          <execution>
            <id>add-source</id>

            <phase>generate-sources</phase>

            <goals>
              <goal>add-source</goal>

            </goals>

            <configuration>
              <sources>
                <source>${project.build.directory}/log4j-api-java9</source>

              </sources>

            </configuration>

          </execution>

        </executions>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <executions>
          <execution>
            <id>default-compile</id>

            
            <configuration>
              <source>1.8</source>

              <target>1.8</target>

            </configuration>

          </execution>

        </executions>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>
          <properties>
            <configurationParameters>
              
              junit.jupiter.execution.parallel.enabled = true
              junit.jupiter.execution.parallel.mode.default = concurrent
            </configurationParameters>

          </properties>

          <reuseForks>true</reuseForks>

          <redirectTestOutputToFile>true</redirectTestOutputToFile>

          <excludedGroups>performance,smoke</excludedGroups>

        </configuration>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-jar-plugin</artifactId>

        <executions>
          <execution>
            <id>default-jar</id>

            <goals>
              <goal>jar</goal>

            </goals>

            <configuration combine.self="override">
              <archive>
                <manifestFile>${manifestfile}</manifestFile>

                <manifestEntries>
                  <Specification-Title>${project.name}</Specification-Title>

                  <Specification-Version>${project.version}</Specification-Version>

                  <Specification-Vendor>${project.organization.name}</Specification-Vendor>

                  <Implementation-Title>${project.name}</Implementation-Title>

                  <Implementation-Version>${project.version}</Implementation-Version>

                  <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>

                  <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>

                  <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>

                  <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>

                  <Multi-Release>true</Multi-Release>

                </manifestEntries>

              </archive>

            </configuration>

          </execution>

          <execution>
            <id>default</id>

            <goals>
              <goal>test-jar</goal>

            </goals>

            <configuration>
              <archive>
                <manifestFile>${manifestfile}</manifestFile>

                <manifestEntries>
                  <Specification-Title>${project.name}</Specification-Title>

                  <Specification-Version>${project.version}</Specification-Version>

                  <Specification-Vendor>${project.organization.name}</Specification-Vendor>

                  <Implementation-Title>${project.name}</Implementation-Title>

                  <Implementation-Version>${project.version}</Implementation-Version>

                  <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>

                  <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>

                  <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>

                  <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>

                </manifestEntries>

              </archive>

            </configuration>

          </execution>

        </executions>

      </plugin>

      
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-remote-resources-plugin</artifactId>

        <executions>
          <execution>
            <goals>
              <goal>process</goal>

            </goals>

            <configuration>
              <skip>false</skip>

            </configuration>

          </execution>

        </executions>

      </plugin>

      <plugin>
        <groupId>org.apache.felix</groupId>

        <artifactId>maven-bundle-plugin</artifactId>

        <configuration>
          <instructions>
            <Export-Package>org.apache.logging.log4j.*</Export-Package>

            <Import-Package>
              sun.reflect;resolution:=optional,
              *
            </Import-Package>

            <Bundle-Activator>org.apache.logging.log4j.util.Activator</Bundle-Activator>

            <_fixupmessages>"Classes found in the wrong directory";is:=warning</_fixupmessages>

          </instructions>

        </configuration>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-deploy-plugin</artifactId>

        <version>${deploy.plugin.version}</version>

      </plugin>

    </plugins>

  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-changes-plugin</artifactId>

        <version>${changes.plugin.version}</version>

        <reportSets>
          <reportSet>
            <reports>
              <report>changes-report</report>

            </reports>

          </reportSet>

        </reportSets>

        <configuration>
          <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>

          <useJql>true</useJql>

        </configuration>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-checkstyle-plugin</artifactId>

        <version>${checkstyle.plugin.version}</version>

        <configuration>
          
          <configLocation>${log4jParentDir}/checkstyle.xml</configLocation>

          <suppressionsLocation>${log4jParentDir}/checkstyle-suppressions.xml</suppressionsLocation>

          <enableRulesSummary>false</enableRulesSummary>

          <propertyExpansion>basedir=${basedir}</propertyExpansion>

          <propertyExpansion>licensedir=${log4jParentDir}/checkstyle-header.txt</propertyExpansion>

        </configuration>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-javadoc-plugin</artifactId>

        <version>${javadoc.plugin.version}</version>

        <configuration>
          <bottom>&lt;p align="center">Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br />
            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p></bottom>

          
          <doclint>none</doclint>

          <detectOfflineLinks>false</detectOfflineLinks>

          <linksource>true</linksource>

          <links>
            <link>http://www.osgi.org/javadoc/r4v43/core/</link>

          </links>

        </configuration>

        <reportSets>
          <reportSet>
            <id>non-aggregate</id>

            <reports>
              <report>javadoc</report>

            </reports>

          </reportSet>

        </reportSets>

      </plugin>

      <plugin>
        <groupId>com.github.spotbugs</groupId>

        <artifactId>spotbugs-maven-plugin</artifactId>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-jxr-plugin</artifactId>

        <version>${jxr.plugin.version}</version>

        <reportSets>
          <reportSet>
            <id>non-aggregate</id>

            <reports>
              <report>jxr</report>

            </reports>

          </reportSet>

          <reportSet>
            <id>aggregate</id>

            <reports>
              <report>aggregate</report>

            </reports>

          </reportSet>

        </reportSets>

      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-pmd-plugin</artifactId>

        <version>${pmd.plugin.version}</version>

        <configuration>
          <targetJdk>${maven.compiler.target}</targetJdk>

        </configuration>

      </plugin>

    </plugins>

  </reporting>

</project>
