<?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>41</version>
  </parent>

  <artifactId>commons-weaver-base</artifactId>
  <version>1.4-SNAPSHOT</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>1.3</commons.release.version>
    <commons.release.name>commons-weaver-${commons.release.version}</commons.release.name>
    <commons.rc.version>RC2</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.9.1</commons.japicmp.version>

    <!-- 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.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>

    <ant.version>1.9.4</ant.version>
    <asm.version>5.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:svn:http://svn.apache.org/repos/asf/commons/proper/weaver/trunk/</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/commons/proper/weaver/trunk/</developerConnection>
    <url>http://svn.apache.org/viewvc/commons/proper/weaver/trunk/</url>
  </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.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>
      </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.6</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>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>
