<?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.commons</groupId>
    <artifactId>commons-parent</artifactId>
    <version>47</version>
  </parent>

  <artifactId>commons-weaver-base</artifactId>
  <version>2.0</version>
  <packaging>pom</packaging>

  <name>Apache Commons Weaver</name>

  <description>
    Apache Commons Weaver provides an easy way to enhance compiled Java
    classes by generating ("weaving") bytecode into those classes.
  </description>

  <url>http://commons.apache.org/proper/commons-weaver</url>

  <issueManagement>
    <system>jira</system>
    <url>http://issues.apache.org/jira/browse/WEAVER</url>
  </issueManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <commons.componentid>weaver</commons.componentid>
    <commons.module.name>org.apache.commons.weaver</commons.module.name>
    <commons.release.version>2.0</commons.release.version>
    <commons.release.name>commons-weaver-${commons.release.version}</commons.release.name>
    <commons.rc.version>RC1</commons.rc.version>
    <commons.jira.id>WEAVER</commons.jira.id>
    <commons.jira.pid>12315320</commons.jira.pid>
    <commons.site.path>commons-weaver</commons.site.path>
    <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${commons.site.path}</commons.scmPubUrl>

    <commons.japicmp.version>0.11.1</commons.japicmp.version>
    <!-- remove after 2.0 release: -->
    <commons.japicmp.breakBuildOnBinaryIncompatibleModifications>false</commons.japicmp.breakBuildOnBinaryIncompatibleModifications>

    <!-- most Java-related items are defined in parent/pom.xml;
         define these here for the animal-sniffer config of commons-parent: -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <ant.version>1.9.4</ant.version>
    <asm.version>6.2.1</asm.version>
  </properties>

  <developers>
    <developer>
      <id>kinow</id>
      <name>Bruno P. Kinoshita</name>
      <email>kinow AT apache DOT org</email>
      <organization>Apache</organization>
    </developer>
    <developer>
      <id>mbenson</id>
      <name>Matt Benson</name>
      <email>mbenson AT apache DOT org</email>
      <organization>Apache</organization>
    </developer>
    <developer>
      <id>struberg</id>
      <name>Mark Struberg</name>
      <email>struberg AT apache DOT org</email>
      <organization>Apache</organization>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:http://gitbox.apache.org/repos/asf/commons-weaver.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-weaver.git</developerConnection>
    <url>http://gitbox.apache.org/repos/asf/commons-weaver.git</url>
    <tag>2.0_RC1</tag>
  </scm>

  <distributionManagement>
    <site>
      <id>commons.site</id>
      <name>Apache Commons Site SVN</name>
      <url>scm:svn:${commons.scmPubUrl}</url>
    </site>
  </distributionManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <configuration combine.self="override">
            <!-- disable passphrase setup from parent -->
          </configuration>
        </plugin>
        <plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-shade-plugin</artifactId>
	        <version>3.1.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludeSubProjects>false</excludeSubProjects>
            <excludes>
	      <!-- notice -->
              <exclude>LICENSE-asm*.txt</exclude>
	      <!-- generated -->
              <exclude>**/target/**</exclude>
              <exclude>**/dependency-reduced-pom.xml</exclude>
	      <!-- hidden -->
              <exclude>**/.*</exclude>
              <exclude>**/.*/**</exclude>
	      <!-- binary -->
              <exclude>**/*.svg</exclude>
	      <!-- empty -->
              <exclude>**/src/site/resources/profile.japicmp</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.9</version>
        </plugin>
        <!-- override skip property of parent pom, can be removed once
             we adopt parent 48+ -->
        <plugin>
          <groupId>com.github.siom79.japicmp</groupId>
          <artifactId>japicmp-maven-plugin</artifactId>
          <configuration>
            <skip>false</skip>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-notices</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target xmlns:if="ant:if" xmlns:unless="ant:unless">
                <presetdef name="truth">
                  <condition value="true" else="false" />
                </presetdef>

                <macrodef name="seek">
                  <attribute name="name" />
                  <attribute name="addto" />
                  <sequential>
                    <augment id="@{addto}-sought">
                      <string value="@{name}" />
                    </augment>
                    <union id="@{name}-ws" />
                    <step dir="${project.basedir}" name="@{name}" addto="@{addto}" ws="@{name}-ws" />
                  </sequential>
                </macrodef>

                <macrodef name="step">
                  <attribute name="name" />
                  <attribute name="dir" />
                  <attribute name="addto" />
                  <attribute name="ws" />
                  <sequential>
                    <local name="seenDir" />
                    <truth property="seenDir">
                      <resourcecount when="gt" count="0">
                        <intersect id="intersection">
                          <resources refid="@{ws}" />
                          <file name="@{dir}" />
                        </intersect>
                      </resourcecount>
                    </truth>
                    <sequential unless:true="${seenDir}">
                      <augment id="@{ws}">
                        <file file="@{dir}" />
                      </augment>
                      <local name="exists" />
                      <truth property="exists">
                        <available file="@{dir}/@{name}" />
                      </truth>

                      <sequential if:true="${exists}">
                        <augment id="@{addto}">
                          <file file="@{dir}/@{name}" />
                        </augment>
                      </sequential>
                      <sequential unless:true="${exists}">
                        <local name="parent.dir" />
                        <dirname property="parent.dir" file="@{dir}" />
                        <step dir="${parent.dir}" name="@{name}" addto="@{addto}" ws="@{ws}" />
                      </sequential>
                    </sequential>
                  </sequential>
                </macrodef>

                <truth property="pom-only">
                  <equals arg1="${project.packaging}" arg2="pom" />
                </truth>
                <sequential unless:true="${pom-only}">
                  <union id="notices" />
                  <union id="notices-sought" />
                  <seek name="LICENSE.txt" addto="notices" />
                  <seek name="NOTICE.txt" addto="notices" />
                  <seek name="LICENSE-asm${asm.version}.txt" addto="notices" />

                  <resourcecount refid="notices-sought" property="notices.sought" />
                  <condition property="found-all-notices">
                    <resourcecount refid="notices" when="eq" count="${notices.sought}" />
                  </condition>
                  <sequential unless:set="found-all-notices">
                    <echo>Notices sought:</echo>
                    <pathconvert refid="notices-sought" pathsep="${line.separator}" />
                    <echo>Notices found:</echo>
                    <pathconvert refid="notices" pathsep="${line.separator}" />
                    <fail message="Some notices not found." />
                  </sequential>

                  <mkdir dir="${project.build.directory}/generated-resources/notices/META-INF" />
                  <copy verbose="true" todir="${project.build.directory}/generated-resources/notices/META-INF">
                    <resources refid="notices" />
                  </copy>

                  <mkdir dir="${project.build.directory}/generated-test-resources/notices/META-INF" />
                  <copy verbose="true" todir="${project.build.directory}/generated-test-resources/notices/META-INF">
                    <resources refid="notices" />
                  </copy>

                  <mkdir dir="${project.build.directory}/apidocs/META-INF" />
                  <copy verbose="true" todir="${project.build.directory}/apidocs/META-INF">
                    <resources refid="notices" />
                  </copy>
                </sequential>
              </target>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>${ant.version}</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <tag>${commons.release.version}_${commons.rc.version}</tag>
          <preparationGoals>changes:changes-check</preparationGoals>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <configuration>
          <content>${project.build.directory}/staging</content>
          <ignorePathsToDelete>
            <ignorePathToDelete>javadocs</ignorePathToDelete>
          </ignorePathsToDelete>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-markdown</artifactId>
            <version>1.8</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <inherited>false</inherited>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-source-notices</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>add-resource</goal>
            </goals>
            <configuration>
              <resources>
                <resource>
                  <directory>${project.build.directory}/generated-resources/notices</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <inherited>false</inherited>
	<configuration>
	  <checkoutDirectoryName>commons-weaver</checkoutDirectoryName>
	</configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <inherited>false</inherited>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <inherited>false</inherited>
        <configuration>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>java10plus</id>
      <activation>
        <jdk>[10,)</jdk>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
                <groupId>com.github.siom79.japicmp</groupId>
                <artifactId>japicmp-maven-plugin</artifactId>
                <dependencies>
                  <dependency>
                    <groupId>org.glassfish.jaxb</groupId>
                    <artifactId>jaxb-runtime</artifactId>
                    <version>2.3.0.1</version>
                  </dependency>
                  <!-- needed temporarily to compare against the 1.x API -->
                  <dependency>
                    <groupId>javax.activation</groupId>
                    <artifactId>javax.activation-api</artifactId>
                    <version>1.2.0</version>
                  </dependency>
                </dependencies>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <inherited>false</inherited>
            <executions>
              <execution>
                <goals>
                  <goal>single</goal>
                </goals>
                <!-- disable assembly:single from commons-parent
                     release profile; multimodule assembly handled
                     by dist module -->
                <phase />
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <modules>
    <module>build-tools</module>
    <module>parent</module>
    <module>processor</module>
    <module>maven-plugin</module>
    <module>ant</module>
    <module>modules</module>
    <module>dist</module>
  </modules>

</project>
