Home | History | Annotate | Download | only in 39
      1 <?xml version="1.0" encoding="ISO-8859-1"?>
      2 <!--
      3 
      4    Licensed to the Apache Software Foundation (ASF) under one or more
      5    contributor license agreements.  See the NOTICE file distributed with
      6    this work for additional information regarding copyright ownership.
      7    The ASF licenses this file to You under the Apache License, Version 2.0
      8    (the "License"); you may not use this file except in compliance with
      9    the License.  You may obtain a copy of the License at
     10 
     11        http://www.apache.org/licenses/LICENSE-2.0
     12 
     13    Unless required by applicable law or agreed to in writing, software
     14    distributed under the License is distributed on an "AS IS" BASIS,
     15    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16    See the License for the specific language governing permissions and
     17    limitations under the License.
     18 
     19 -->
     20 <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">
     21   <modelVersion>4.0.0</modelVersion>
     22   <parent>
     23     <groupId>org.apache</groupId>
     24     <artifactId>apache</artifactId>
     25     <version>16</version>
     26   </parent>
     27   <groupId>org.apache.commons</groupId>
     28   <artifactId>commons-parent</artifactId>
     29   <packaging>pom</packaging>
     30   <version>39</version>
     31   <name>Apache Commons Parent</name>
     32   <url>http://commons.apache.org/</url>
     33   <description>The Apache Commons Parent POM provides common settings for all Apache Commons components.</description>
     34 
     35 <!--
     36 Version 39:
     37 
     38 - Update Compiler Plugin : 3.2 -> 3.3
     39 - Update Build Helper Plugin : 1.8 -> 1.9.1
     40 - Update Release Plugin : 2.5.1 -> 2.5.2
     41 - Update Javadoc Plugin : 2.10.2 -> 2.10.3
     42 - Update Jacoco 0.7.4.201502262128 -> 0.7.5.201505241946
     43 - Move assembly to standard location. src/main => src/assembly/src.xml
     44 - Update animal-sniffer Plugin : 1.13 -> 1.14 (for java 7+ builds) supporting Java8
     45 - dropped the trunks-proper profile
     46 
     47  -->
     48 
     49   <!-- Maven versions plugin reports an error if this is omitted -->
     50   <prerequisites>
     51     <maven>3.0.1</maven>
     52   </prerequisites>
     53 
     54   <ciManagement>
     55     <system>continuum</system>
     56     <url>https://continuum-ci.apache.org/</url>
     57   </ciManagement>
     58 
     59   <!--
     60     In release 31, the maven.compile.* properties were corrected to maven.compiler.*
     61     [See COMMONSSITE-69]
     62     If updating from a previous version, please check the property definitions
     63 
     64     Starting with version 22, the RAT plugin has changed Maven group and id, so any existing configuration
     65     needs to be updated.
     66     To fix component POMs, please change any occurrences of:
     67         <groupId>org.codehaus.mojo</groupId>
     68         <artifactId>rat-maven-plugin</artifactId>
     69     to the new values:
     70         <groupId>org.apache.rat</groupId>
     71         <artifactId>apache-rat-plugin</artifactId>
     72 
     73     Site deployment
     74     ===============
     75     Cannot define this here at present, see https://issues.apache.org/jira/browse/COMMONSSITE-26.
     76 
     77     The following should be added to the component POM:
     78 
     79     <distributionManagement>
     80       <site>
     81         <id>commons.site</id>
     82         <name>Apache Commons Site SVN</name>
     83         <url>scm:svn:${commons.scmPubUrl}</url>
     84       </site>
     85     </distributionManagement>
     86 
     87     Alternatively you can map the component's existing site id to the
     88     commons.scmPubServer property.
     89 
     90     Coverage tool selection
     91     =======================
     92     Starting with release 30, there are optional profiles for both Cobertura and JaCoCo.
     93     These can be enabled independently on the command-line:
     94 
     95     mvn site -Pcobertura -Pjacoco
     96 
     97     Or the component can define a default coverage tool by creating either (or both) of the following files:
     98 
     99     src/site/resources/profile.cobertura
    100     src/site/resources/profile.jacoco
    101 
    102     These can later be overridden by cancelling the profile:
    103 
    104     mvn site -P!jacoco
    105 
    106   -->
    107 
    108   <!--
    109     This section *must* be overwritten by subprojects. It is only to allow
    110     a release of the commons-parent POM.
    111   -->
    112   <scm>
    113     <connection>scm:svn:http://svn.apache.org/repos/asf/commons/proper/commons-parent/tags/commons-parent-39</connection>
    114     <developerConnection>scm:svn:https://svn.apache.org/repos/asf/commons/proper/commons-parent/tags/commons-parent-39</developerConnection>
    115     <url>http://svn.apache.org/viewvc/commons/proper/commons-parent/tags/commons-parent-39</url>
    116   </scm>
    117 
    118   <mailingLists>
    119     <!-- N.B. commons-site now uses the Apache POM so has its own copy of the mailing list definitions -->
    120     <!--
    121         Components should normally override the default mailing list report by using the comnand
    122         mvn commons:mail-page
    123         This generates the file src/site/xdoc/mail-lists.xml which when processed will replace the PIR version.
    124      -->
    125     <!-- Changes to this list should be synchronised with the commons build plugin -->
    126     <mailingList>
    127       <name>Commons User List</name>
    128       <subscribe>user-subscribe (a] commons.apache.org</subscribe>
    129       <unsubscribe>user-unsubscribe (a] commons.apache.org</unsubscribe>
    130       <post>user (a] commons.apache.org</post>
    131       <archive>http://mail-archives.apache.org/mod_mbox/commons-user/</archive>
    132       <otherArchives>
    133         <otherArchive>http://markmail.org/list/org.apache.commons.users/</otherArchive>
    134         <otherArchive>http://old.nabble.com/Commons---User-f319.html</otherArchive>
    135         <otherArchive>http://www.mail-archive.com/user@commons.apache.org/</otherArchive>
    136         <otherArchive>http://news.gmane.org/gmane.comp.jakarta.commons.user</otherArchive>
    137       </otherArchives>
    138     </mailingList>
    139     <mailingList>
    140       <name>Commons Dev List</name>
    141       <subscribe>dev-subscribe (a] commons.apache.org</subscribe>
    142       <unsubscribe>dev-unsubscribe (a] commons.apache.org</unsubscribe>
    143       <post>dev (a] commons.apache.org</post>
    144       <archive>http://mail-archives.apache.org/mod_mbox/commons-dev/</archive>
    145       <otherArchives>
    146         <otherArchive>http://markmail.org/list/org.apache.commons.dev/</otherArchive>
    147         <otherArchive>http://old.nabble.com/Commons---Dev-f317.html</otherArchive>
    148         <otherArchive>http://www.mail-archive.com/dev@commons.apache.org/</otherArchive>
    149         <otherArchive>http://news.gmane.org/gmane.comp.jakarta.commons.devel</otherArchive>
    150       </otherArchives>
    151     </mailingList>
    152     <mailingList>
    153       <name>Commons Issues List</name>
    154       <subscribe>issues-subscribe (a] commons.apache.org</subscribe>
    155       <unsubscribe>issues-unsubscribe (a] commons.apache.org</unsubscribe>
    156       <archive>http://mail-archives.apache.org/mod_mbox/commons-issues/</archive>
    157       <otherArchives>
    158         <otherArchive>http://markmail.org/list/org.apache.commons.issues/</otherArchive>
    159         <otherArchive>http://old.nabble.com/Commons---Issues-f25499.html</otherArchive>
    160         <otherArchive>http://www.mail-archive.com/issues@commons.apache.org/</otherArchive>
    161       </otherArchives>
    162     </mailingList>
    163     <mailingList>
    164       <name>Commons Commits List</name>
    165       <subscribe>commits-subscribe (a] commons.apache.org</subscribe>
    166       <unsubscribe>commits-unsubscribe (a] commons.apache.org</unsubscribe>
    167       <archive>http://mail-archives.apache.org/mod_mbox/commons-commits/</archive>
    168       <otherArchives>
    169         <otherArchive>http://markmail.org/list/org.apache.commons.commits/</otherArchive>
    170         <otherArchive>http://www.mail-archive.com/commits@commons.apache.org/</otherArchive>
    171       </otherArchives>
    172     </mailingList>
    173     <mailingList>
    174       <name>Apache Announce List</name>
    175       <subscribe>announce-subscribe (a] apache.org</subscribe>
    176       <unsubscribe>announce-unsubscribe (a] apache.org</unsubscribe>
    177       <archive>http://mail-archives.apache.org/mod_mbox/www-announce/</archive>
    178       <otherArchives>
    179         <otherArchive>http://markmail.org/list/org.apache.announce/</otherArchive>
    180         <otherArchive>http://old.nabble.com/Apache-News-and-Announce-f109.html</otherArchive>
    181         <otherArchive>http://www.mail-archive.com/announce@apache.org/</otherArchive>
    182         <otherArchive>http://news.gmane.org/gmane.comp.apache.announce</otherArchive>
    183       </otherArchives>
    184     </mailingList>
    185   </mailingLists>
    186   <build>
    187     <!-- TODO find a better way to add N&L files to jars and test jars
    188          See also maven-remote-resources-plugin configuration below.
    189     -->
    190     <resources>
    191       <!-- This is the default setting from the super-pom -->
    192       <resource>
    193         <directory>src/main/resources</directory>
    194       </resource>
    195       <!-- hack to ensure the N&L appear in jars -->
    196       <resource>
    197         <directory>${basedir}</directory>
    198         <targetPath>META-INF</targetPath>
    199         <includes>
    200           <include>NOTICE.txt</include>
    201           <include>LICENSE.txt</include>
    202         </includes>
    203       </resource>
    204     </resources>
    205     <!-- ensure test jars also get NOTICE & LICENSE files -->
    206     <testResources>
    207       <!-- This is the default setting from the super-pom -->
    208       <testResource>
    209         <directory>src/test/resources</directory>
    210       </testResource>
    211       <!-- hack to ensure the N&L appear in jars -->
    212       <testResource>
    213         <directory>${basedir}</directory>
    214         <targetPath>META-INF</targetPath>
    215         <includes>
    216           <include>NOTICE.txt</include>
    217           <include>LICENSE.txt</include>
    218         </includes>
    219       </testResource>
    220     </testResources>
    221     <pluginManagement>
    222       <plugins>
    223         <!-- org.apache.maven.plugins, alpha order by artifact id -->
    224         <plugin>
    225           <groupId>org.apache.maven.plugins</groupId>
    226           <artifactId>maven-antrun-plugin</artifactId>
    227           <version>1.8</version>
    228         </plugin>
    229         <plugin>
    230           <groupId>org.apache.maven.plugins</groupId>
    231           <artifactId>maven-assembly-plugin</artifactId>
    232           <version>2.5.5</version>
    233         </plugin>
    234         <plugin>
    235           <groupId>org.apache.maven.plugins</groupId>
    236           <artifactId>maven-clean-plugin</artifactId>
    237           <version>2.6.1</version>
    238         </plugin>
    239         <plugin>
    240           <groupId>org.apache.maven.plugins</groupId>
    241           <artifactId>maven-compiler-plugin</artifactId>
    242           <version>${commons.compiler.version}</version>
    243           <configuration>
    244             <source>${maven.compiler.source}</source>
    245             <target>${maven.compiler.target}</target>
    246             <encoding>${commons.encoding}</encoding>
    247             <!--
    248                fork is set true by the java-1.x profiles
    249                This allows the use of a different version of the compiler from the
    250                JDK being used to run Maven
    251             -->
    252             <fork>${commons.compiler.fork}</fork>
    253             <!-- the following are only needed if fork is true -->
    254             <compilerVersion>${commons.compiler.compilerVersion}</compilerVersion>
    255             <executable>${commons.compiler.javac}</executable>
    256           </configuration>
    257         </plugin>
    258         <plugin>
    259           <groupId>org.apache.maven.plugins</groupId>
    260           <artifactId>maven-deploy-plugin</artifactId>
    261           <version>2.8.2</version>
    262         </plugin>
    263         <!-- Apache parent includes docck -->
    264         <plugin>
    265           <groupId>org.apache.maven.plugins</groupId>
    266           <artifactId>maven-gpg-plugin</artifactId>
    267           <version>1.6</version>
    268         </plugin>
    269         <plugin>
    270           <groupId>org.apache.maven.plugins</groupId>
    271           <artifactId>maven-install-plugin</artifactId>
    272           <version>2.5.2</version>
    273         </plugin>
    274         <!-- Apache parent: invoker -->
    275         <plugin>
    276           <groupId>org.apache.maven.plugins</groupId>
    277           <artifactId>maven-jar-plugin</artifactId>
    278           <version>2.6</version>
    279         </plugin>
    280         <plugin>
    281           <groupId>org.apache.maven.plugins</groupId>
    282           <artifactId>maven-javadoc-plugin</artifactId>
    283           <version>${commons.javadoc.version}</version>
    284           <configuration>
    285             <!-- keep only errors and warnings -->
    286             <quiet>true</quiet>
    287             <encoding>${commons.encoding}</encoding>
    288             <docEncoding>${commons.docEncoding}</docEncoding>
    289             <notimestamp>true</notimestamp>
    290             <links>
    291               <link>${commons.javadoc.java.link}</link>
    292               <link>${commons.javadoc.javaee.link}</link>
    293             </links>
    294             <archive>
    295               <manifest>
    296                 <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
    297                 <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
    298               </manifest>
    299             </archive>
    300           </configuration>
    301         </plugin>
    302         <plugin>
    303           <groupId>org.apache.maven.plugins</groupId>
    304           <artifactId>maven-release-plugin</artifactId>
    305           <version>2.5.2</version>
    306         </plugin>
    307         <plugin>
    308           <!-- TODO see above - find better way to add N&L files to jars and test jars -->
    309           <groupId>org.apache.maven.plugins</groupId>
    310           <artifactId>maven-remote-resources-plugin</artifactId>
    311           <!-- override old version from Apache pom 13 -->
    312           <version>1.5</version>
    313           <configuration>
    314             <!--
    315                 Apache parent POM automatically adds "LICENSE" and "NOTICE" files
    316                 to jars - duplicating the "LICENSE.txt" and "NOTICE.txt"
    317                 files that components already have.
    318              -->
    319             <skip>true</skip>
    320           </configuration>
    321         </plugin>
    322         <plugin>
    323           <groupId>org.apache.maven.plugins</groupId>
    324           <artifactId>maven-resources-plugin</artifactId>
    325           <version>2.7</version>
    326         </plugin>
    327         <!-- Apache parent: scm -->
    328         <plugin>
    329           <groupId>org.apache.maven.plugins</groupId>
    330           <artifactId>maven-site-plugin</artifactId>
    331           <version>${commons.site-plugin.version}</version>
    332           <configuration>
    333             <!-- don't deploy site with maven-site-plugin -->
    334             <skipDeploy>true</skipDeploy>
    335           </configuration>
    336           <dependencies>
    337             <dependency>
    338                 <!-- add support for ssh/scp -->
    339               <groupId>org.apache.maven.wagon</groupId>
    340               <artifactId>wagon-ssh</artifactId>
    341               <version>${commons.wagon-ssh.version}</version>
    342             </dependency>
    343           </dependencies>
    344           <executions>
    345             <execution>
    346               <id>attach-descriptor</id>
    347               <goals>
    348                 <goal>attach-descriptor</goal>
    349               </goals>
    350             </execution>
    351           </executions>
    352         </plugin>
    353         <plugin>
    354           <groupId>org.apache.maven.plugins</groupId>
    355           <artifactId>maven-source-plugin</artifactId>
    356           <version>2.4</version>
    357           <configuration>
    358             <archive>
    359               <manifest>
    360                 <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
    361                 <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
    362               </manifest>
    363             </archive>
    364           </configuration>
    365         </plugin>
    366         <plugin>
    367           <groupId>org.apache.maven.plugins</groupId>
    368           <artifactId>maven-surefire-plugin</artifactId>
    369           <version>${commons.surefire.version}</version>
    370         </plugin>
    371         <!-- Other plugins, alpha order by groupId and artifactId -->
    372         <plugin>
    373           <groupId>org.apache.commons</groupId>
    374           <artifactId>commons-build-plugin</artifactId>
    375           <version>1.4</version>
    376           <configuration>
    377             <commons.release.name>${commons.release.name}</commons.release.name>
    378           </configuration>
    379         </plugin>
    380         <plugin>
    381           <groupId>org.apache.felix</groupId>
    382           <artifactId>maven-bundle-plugin</artifactId>
    383           <version>2.5.3</version>
    384           <inherited>true</inherited>
    385         </plugin>
    386         <plugin>
    387           <groupId>org.apache.rat</groupId>
    388           <artifactId>apache-rat-plugin</artifactId>
    389           <version>${commons.rat.version}</version>
    390         </plugin>
    391         <plugin>
    392           <groupId>org.codehaus.mojo</groupId>
    393           <artifactId>build-helper-maven-plugin</artifactId>
    394           <version>1.9.1</version>
    395         </plugin>
    396         <plugin>
    397           <groupId>org.codehaus.mojo</groupId>
    398           <artifactId>buildnumber-maven-plugin</artifactId>
    399           <version>1.3</version>
    400         </plugin>
    401         <plugin>
    402           <groupId>org.codehaus.mojo</groupId>
    403           <artifactId>clirr-maven-plugin</artifactId>
    404           <version>${commons.clirr.version}</version>
    405           <configuration>
    406             <minSeverity>${minSeverity}</minSeverity>
    407           </configuration>
    408         </plugin>
    409         <!-- Apache parent: plexus & modello -->
    410       </plugins>
    411     </pluginManagement>
    412     <plugins>
    413       <!-- org.apache.maven.plugins, alpha order by artifact id -->
    414       <plugin>
    415           <!-- Parent POM is released, so needs source archive for ASF mirrors -->
    416         <artifactId>maven-assembly-plugin</artifactId>
    417         <configuration>
    418           <descriptors>
    419             <descriptor>src/assembly/src.xml</descriptor>
    420           </descriptors>
    421           <tarLongFileMode>gnu</tarLongFileMode>
    422         </configuration>
    423       </plugin>
    424       <plugin>
    425         <!--
    426           - Copy LICENSE.txt and NOTICE.txt so that they are included
    427           - in the -javadoc jar file for the component.
    428           -->
    429         <groupId>org.apache.maven.plugins</groupId>
    430         <artifactId>maven-antrun-plugin</artifactId>
    431         <executions>
    432           <execution>
    433             <id>javadoc.resources</id>
    434             <phase>generate-sources</phase>
    435             <goals>
    436               <goal>run</goal>
    437             </goals>
    438             <configuration>
    439               <target>
    440                 <copy todir="${project.build.directory}/apidocs/META-INF">
    441                   <fileset dir="${basedir}">
    442                     <include name="LICENSE.txt" />
    443                     <include name="NOTICE.txt" />
    444                   </fileset>
    445                 </copy>
    446               </target>
    447             </configuration>
    448           </execution>
    449         </executions>
    450       </plugin>
    451       <plugin>
    452         <groupId>org.apache.maven.plugins</groupId>
    453         <artifactId>maven-compiler-plugin</artifactId>
    454       </plugin>
    455       <!-- Unfortunately the much simpler
    456            <prerequisites><maven>3.0</maven></prerequisites>
    457            is not inherited so we have to use the enforcer plugin
    458       -->
    459       <plugin>
    460         <inherited>true</inherited>
    461         <groupId>org.apache.maven.plugins</groupId>
    462         <artifactId>maven-enforcer-plugin</artifactId>
    463         <version>1.3.1</version>
    464         <executions>
    465           <execution>
    466             <id>enforce-maven-3</id>
    467             <goals>
    468               <goal>enforce</goal>
    469             </goals>
    470             <configuration>
    471               <rules>
    472                 <requireMavenVersion>
    473                   <version>3.0.0</version>
    474                 </requireMavenVersion>
    475               </rules>
    476               <fail>true</fail>
    477             </configuration>
    478           </execution>
    479         </executions>
    480       </plugin>
    481       <plugin>
    482         <groupId>org.apache.maven.plugins</groupId>
    483         <artifactId>maven-jar-plugin</artifactId>
    484         <configuration>
    485           <archive>
    486             <manifestFile>${commons.manifestfile}</manifestFile>
    487             <manifestEntries>
    488               <Specification-Title>${project.name}</Specification-Title>
    489               <Specification-Version>${project.version}</Specification-Version>
    490               <Specification-Vendor>${project.organization.name}</Specification-Vendor>
    491               <Implementation-Title>${project.name}</Implementation-Title>
    492               <Implementation-Version>${project.version}</Implementation-Version>
    493               <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
    494               <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
    495               <Implementation-Build>${implementation.build}</Implementation-Build>
    496               <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
    497               <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
    498             </manifestEntries>
    499           </archive>
    500         </configuration>
    501       </plugin>
    502       <plugin>
    503         <groupId>org.apache.maven.plugins</groupId>
    504         <artifactId>maven-surefire-plugin</artifactId>
    505         <configuration>
    506           <!--
    507             commons.surefire.java is normally empty.
    508             It is defined by the java-1.x profiles to change the JVM used by Surefire 
    509           -->
    510           <jvm>${commons.surefire.java}</jvm>
    511         </configuration>
    512       </plugin>
    513       <!-- Other plugins, alpha order by groupId and artifactId -->
    514       <plugin>
    515         <groupId>org.apache.commons</groupId>
    516         <artifactId>commons-build-plugin</artifactId>
    517       </plugin>
    518       <plugin>
    519         <groupId>org.apache.felix</groupId>
    520         <artifactId>maven-bundle-plugin</artifactId>
    521         <configuration>
    522           <!--
    523             dummy entry to stop bundle plugin from picking up jar config and reporting
    524             WARNING: Duplicate name in Manifest
    525             See http://markmail.org/message/mpkl24wk3jrjhhjg
    526           -->
    527           <archive>
    528             <forced>true</forced>
    529           </archive>
    530           <excludeDependencies>${commons.osgi.excludeDependencies}</excludeDependencies>
    531           <manifestLocation>${project.build.directory}/osgi</manifestLocation>
    532           <instructions>
    533             <!-- stops the "uses" clauses being added to "Export-Package" manifest entry -->
    534             <_nouses>true</_nouses>
    535             <!-- Stop the JAVA_1_n_HOME variables from being treated as headers by Bnd -->
    536             <_removeheaders>JAVA_1_3_HOME,JAVA_1_4_HOME,JAVA_1_5_HOME,JAVA_1_6_HOME,JAVA_1_7_HOME,JAVA_1_8_HOME,JAVA_1_9_HOME</_removeheaders>
    537             <Bundle-SymbolicName>${commons.osgi.symbolicName}</Bundle-SymbolicName>
    538             <Export-Package>${commons.osgi.export}</Export-Package>
    539             <Private-Package>${commons.osgi.private}</Private-Package>
    540             <Import-Package>${commons.osgi.import}</Import-Package>
    541             <DynamicImport-Package>${commons.osgi.dynamicImport}</DynamicImport-Package>
    542             <Bundle-DocURL>${project.url}</Bundle-DocURL>
    543           </instructions>
    544         </configuration>
    545         <executions>
    546           <execution>
    547             <id>bundle-manifest</id>
    548             <phase>process-classes</phase>
    549             <goals>
    550               <goal>manifest</goal>
    551             </goals>
    552           </execution>
    553         </executions>
    554       </plugin>
    555       <!-- Needed for command-line access, e.g mvn apache-rat:rat and mvn apache-rat:check -->
    556       <plugin>
    557         <groupId>org.apache.rat</groupId>
    558         <artifactId>apache-rat-plugin</artifactId>
    559         <version>${commons.rat.version}</version>
    560         <!-- Should agree with config in reporting section -->
    561         <configuration>
    562           <!--
    563                If you wish to override this list in the component (child) pom, ensure you use
    564                    <excludes combine.children="merge">
    565                so that the child pom entries replace the parent entries
    566            -->
    567           <excludes combine.children="append">
    568             <exclude>site-content/**</exclude>
    569             <exclude>.checkstyle</exclude>
    570             <exclude>.fbprefs</exclude>
    571             <exclude>.pmd</exclude>
    572             <exclude>src/site/resources/download_*.cgi</exclude>
    573             <exclude>src/site/resources/profile.*</exclude>
    574           </excludes>
    575         </configuration>
    576       </plugin>
    577 
    578       <plugin>
    579         <groupId>org.apache.maven.plugins</groupId>
    580         <artifactId>maven-scm-publish-plugin</artifactId>
    581         <version>${commons.scm-publish.version}</version>
    582         <configuration>
    583           <content>${project.reporting.outputDirectory}</content>
    584           <pubScmUrl>scm:svn:${commons.scmPubUrl}</pubScmUrl>
    585           <checkoutDirectory>${commons.scmPubCheckoutDirectory}</checkoutDirectory>
    586           <serverId>${commons.scmPubServer}</serverId>
    587           <tryUpdate>true</tryUpdate>
    588         </configuration>
    589         <executions>
    590           <execution>
    591             <id>scm-publish</id>
    592             <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
    593             <goals>
    594               <goal>publish-scm</goal>
    595             </goals>
    596           </execution>
    597         </executions>
    598       </plugin>
    599 
    600     </plugins>
    601   </build>
    602 
    603   <reporting>
    604     <!-- N.B. plugins defined here in the <reporting> section ignore what's defined in <pluginManagement>
    605          in the <build> section above, so we have to define the versions here. -->
    606     <plugins>
    607       <!-- org.apache.maven.plugins, alpha order by artifact id -->
    608       <plugin>
    609         <groupId>org.apache.maven.plugins</groupId>
    610         <artifactId>maven-changes-plugin</artifactId>
    611         <version>${commons.changes.version}</version>
    612         <configuration>
    613           <xmlPath>${basedir}/src/changes/changes.xml</xmlPath>
    614           <columnNames>Fix Version,Key,Component,Summary,Type,Resolution,Status</columnNames>
    615           <!-- Sort cols in natural order when using JQL for JIRA 5.1 -->
    616           <sortColumnNames>Fix Version DESC,Type,Key DESC</sortColumnNames>
    617           <resolutionIds>Fixed</resolutionIds>
    618           <statusIds>Resolved,Closed</statusIds>
    619           <!-- Don't include sub-task -->
    620           <typeIds>Bug,New Feature,Task,Improvement,Wish,Test</typeIds>
    621           <!-- For JIRA >= 5.1 -->
    622           <useJql>true</useJql>
    623           <onlyCurrentVersion>${commons.changes.onlyCurrentVersion}</onlyCurrentVersion>
    624           <maxEntries>${commons.changes.maxEntries}</maxEntries>
    625           <runOnlyAtExecutionRoot>${commons.changes.runOnlyAtExecutionRoot}</runOnlyAtExecutionRoot>
    626         </configuration>
    627         <reportSets>
    628           <reportSet>
    629             <reports>
    630               <report>changes-report</report>
    631               <report>jira-report</report>
    632             </reports>
    633           </reportSet>
    634         </reportSets>
    635       </plugin>
    636       <plugin>
    637         <groupId>org.apache.maven.plugins</groupId>
    638         <artifactId>maven-javadoc-plugin</artifactId>
    639         <version>${commons.javadoc.version}</version>
    640         <configuration>
    641           <!-- keep only errors and warnings -->
    642           <quiet>true</quiet>
    643           <source>${maven.compiler.source}</source>
    644           <encoding>${commons.encoding}</encoding>
    645           <docencoding>${commons.docEncoding}</docencoding>
    646           <notimestamp>true</notimestamp>
    647           <linksource>true</linksource>
    648           <!-- prevent svnpub to be too much noisy -->
    649           <notimestamp>true</notimestamp>
    650           <links>
    651             <link>${commons.javadoc.java.link}</link>
    652             <link>${commons.javadoc.javaee.link}</link>
    653           </links>
    654         </configuration>
    655         <!-- Suppress test Javadocs -->
    656         <reportSets>
    657           <reportSet>
    658             <id>default</id>
    659             <reports>
    660               <report>javadoc</report>
    661             </reports>
    662           </reportSet>
    663         </reportSets>
    664       </plugin>
    665       <plugin>
    666         <groupId>org.apache.maven.plugins</groupId>
    667         <artifactId>maven-jxr-plugin</artifactId>
    668         <version>${commons.jxr.version}</version>
    669       </plugin>
    670       <plugin>
    671         <groupId>org.apache.maven.plugins</groupId>
    672         <artifactId>maven-project-info-reports-plugin</artifactId>
    673         <version>${commons.project-info.version}</version>
    674         <!--
    675             Unfortunately it does not appear to be possible to override
    676             reports configured in a parent POM.
    677             See https://jira.codehaus.org/browse/MPIR-241
    678             and https://issues.apache.org/jira/browse/MPOM-32
    679             So we define here all those reports that are suitable for
    680             all components.
    681             Components can add extra reports if they wish, but cannot disable any.
    682         -->
    683         <reportSets>
    684           <reportSet>
    685             <reports>
    686               <report>index</report>
    687               <report>summary</report>
    688               <report>modules</report>
    689 <!--          <report>license</report>               site must link to ASF page instead  -->
    690               <report>project-team</report>
    691               <report>scm</report>
    692               <report>issue-tracking</report>
    693               <report>mailing-list</report>
    694               <report>dependency-info</report>
    695               <report>dependency-management</report>
    696               <report>dependencies</report>
    697               <report>dependency-convergence</report>
    698               <report>cim</report>
    699 <!--          <report>plugin-management</report>      not very useful for end users -->
    700 <!--          <report>plugins</report>                not very useful for end users -->
    701               <report>distribution-management</report>
    702             </reports>
    703           </reportSet>
    704         </reportSets>
    705       </plugin>
    706       <plugin>
    707         <groupId>org.apache.maven.plugins</groupId>
    708         <artifactId>maven-site-plugin</artifactId>
    709         <version>${commons.site-plugin.version}</version>
    710         <configuration>
    711           <!-- Exclude the navigation file for Maven 1 sites
    712                and the changes file used by the changes-plugin,
    713                as they interfere with the site generation. -->
    714           <moduleExcludes>
    715             <xdoc>navigation.xml,changes.xml</xdoc>
    716           </moduleExcludes>
    717         </configuration>
    718       </plugin>
    719       <plugin>
    720         <groupId>org.apache.maven.plugins</groupId>
    721         <artifactId>maven-surefire-report-plugin</artifactId>
    722         <version>${commons.surefire-report.version}</version>
    723         <configuration>
    724           <aggregate>${commons.surefire-report.aggregate}</aggregate>
    725         </configuration>
    726       </plugin>
    727       <!-- Other plugins, alpha order by groupId and artifactId -->
    728       <plugin>
    729         <groupId>org.apache.rat</groupId>
    730         <artifactId>apache-rat-plugin</artifactId>
    731         <version>${commons.rat.version}</version>
    732         <!-- Should agree with config in build section -->
    733         <configuration>
    734           <!--
    735                If you wish to override this list in the component (child) pom, ensure you use
    736                    <excludes combine.children="merge">
    737                so that the child pom entries replace the parent entries
    738            -->
    739           <excludes combine.children="append">
    740             <exclude>site-content/**</exclude>
    741             <exclude>.checkstyle</exclude>
    742             <exclude>.fbprefs</exclude>
    743             <exclude>.pmd</exclude>
    744             <exclude>src/site/resources/download_*.cgi</exclude>
    745             <exclude>src/site/resources/profile.*</exclude>
    746           </excludes>
    747         </configuration>
    748       </plugin>
    749       <plugin>
    750         <groupId>org.codehaus.mojo</groupId>
    751         <artifactId>clirr-maven-plugin</artifactId>
    752         <version>${commons.clirr.version}</version>
    753         <configuration>
    754           <minSeverity>${minSeverity}</minSeverity>
    755         </configuration>
    756       </plugin>
    757       <plugin>
    758         <groupId>org.codehaus.mojo</groupId>
    759         <artifactId>jdepend-maven-plugin</artifactId>
    760         <version>${commons.jdepend.version}</version>
    761       </plugin>
    762     </plugins>
    763   </reporting>
    764 
    765   <profiles>
    766 
    767       <profile>
    768         <!--
    769           Make the version parts of the maven.compiler.target property
    770           available as separate properties, so that they can be used to define
    771           the java signature artifactId used by animal-sniffer etc.
    772         -->
    773         <id>parse-target-version</id>
    774         <activation>
    775           <property>
    776             <!--
    777                This property should always be defined.
    778                The intention is to ensure that the profile is always enabled.
    779                (activeByDefault only applies if other profiles are not enabled) 
    780             -->
    781             <name>user.home</name>
    782           </property>
    783         </activation>
    784         <build>
    785           <plugins>
    786             <plugin>
    787               <groupId>org.codehaus.mojo</groupId>
    788               <artifactId>build-helper-maven-plugin</artifactId>
    789               <executions>
    790                 <execution>
    791                   <id>parse-version</id>
    792                   <!-- default is:  <phase>validate</phase>  -->
    793                   <goals>
    794                     <goal>parse-version</goal>
    795                   </goals>
    796                   <configuration>
    797                     <propertyPrefix>javaTarget</propertyPrefix>
    798                     <versionString>${maven.compiler.target}</versionString>
    799                   </configuration>
    800                 </execution>
    801               </executions>
    802             </plugin>
    803           </plugins>
    804         </build>
    805       </profile>
    806 
    807       <!-- 
    808            Runs the Animal Sniffer plugin to check that generated code does not included references
    809            to methods/classes etc that are not present in the standard Java runtime for the defined target version.
    810            To bypass the checks, define "animal.sniffer.skip" as true, or create the file "src/site/resources/profile.noanimal" 
    811       -->
    812 
    813       <profile>
    814         <id>animal-sniffer</id>
    815         <activation>
    816           <!--  active unless the file is found -->
    817           <file>
    818             <missing>src/site/resources/profile.noanimal</missing>
    819           </file>
    820         </activation>
    821         
    822         <properties>
    823           <!-- define this as a property to allow command-line override -->
    824           <animal-sniffer.signature>java${javaTarget.majorVersion}${javaTarget.minorVersion}</animal-sniffer.signature>
    825         </properties>
    826 
    827         <build>
    828           <plugins>
    829 
    830             <!-- Run the Animal Sniffer checks -->
    831             <plugin>
    832               <groupId>org.codehaus.mojo</groupId>
    833               <artifactId>animal-sniffer-maven-plugin</artifactId>
    834               <version>${commons.animal-sniffer.version}</version>
    835               <executions>
    836                 <execution>
    837                   <id>checkAPIcompatibility</id>
    838                   <!-- default is:  <phase>process-classes</phase>  -->
    839                   <!-- Note: if the plugin is ever enhanced to check test classes
    840                        it will presumably need to be bound to process-test-classes instead 
    841                   -->
    842                   <goals>
    843                     <goal>check</goal>
    844                   </goals>
    845                 </execution>
    846               </executions>
    847               <configuration>
    848                 <signature>
    849                   <groupId>org.codehaus.mojo.signature</groupId>
    850                   <artifactId>${animal-sniffer.signature}</artifactId>
    851                   <version>${commons.animal-sniffer.signature.version}</version>
    852                 </signature>
    853               </configuration>
    854             </plugin>
    855 
    856           </plugins>
    857         </build>
    858       </profile>
    859 
    860     <profile>
    861       <id>jacoco</id>
    862       <activation>
    863         <!--
    864             N.B. in spite of what the Maven docs may say,
    865             activation conditions are ORed together, see:
    866             http://jira.codehaus.org/browse/MNG-4565
    867             Fairly useless, but that's what was done in
    868             http://jira.codehaus.org/browse/MNG-3106
    869 
    870             So we cannot also check for Java 1.5+
    871             This should not be a problem now as the profile is optional.
    872             Components that still target Java 1.4 or earlier
    873             just need to ensure they don't use JaCoCo by default.
    874         -->
    875         <file>
    876           <exists>src/site/resources/profile.jacoco</exists>
    877         </file>
    878       </activation>
    879       <build>
    880         <plugins>
    881           <plugin>
    882             <groupId>org.jacoco</groupId>
    883             <artifactId>jacoco-maven-plugin</artifactId>
    884             <version>${commons.jacoco.version}</version>
    885           <!-- Note that since JaCoCo relies on an agent to perform tests,
    886                it changes the surefire arguments line. If a component also
    887                needs to change the argument line of maven-surefire-plugin,
    888                then it must add ${argLine} property (which is set by JaCoCo)
    889                in the argLine configuration element of maven-surefire-plugin
    890                to preserve JaCoCo settings. -->
    891             <executions>
    892               <execution>
    893                 <id>prepare-agent</id>
    894                 <phase>process-test-classes</phase>
    895                 <goals>
    896                   <goal>prepare-agent</goal>
    897                 </goals>
    898               </execution>
    899               <execution>
    900                 <id>report</id>
    901                 <phase>site</phase>
    902                 <goals>
    903                   <goal>report</goal>
    904                 </goals>
    905               </execution>
    906               <execution>
    907                 <id>check</id>
    908                 <goals>
    909                   <goal>check</goal>
    910                 </goals>
    911                 <configuration>
    912                   <rules>
    913                     <rule>
    914                       <element>BUNDLE</element>
    915                       <limits>
    916                         <limit>
    917                           <counter>CLASS</counter>
    918                           <value>COVEREDRATIO</value>
    919                           <minimum>${commons.jacoco.classRatio}</minimum>
    920                         </limit>
    921                         <limit>
    922                           <counter>INSTRUCTION</counter>
    923                           <value>COVEREDRATIO</value>
    924                           <minimum>${commons.jacoco.instructionRatio}</minimum>
    925                         </limit>
    926                         <limit>
    927                           <counter>METHOD</counter>
    928                           <value>COVEREDRATIO</value>
    929                           <minimum>${commons.jacoco.methodRatio}</minimum>
    930                         </limit>
    931                         <limit>
    932                           <counter>BRANCH</counter>
    933                           <value>COVEREDRATIO</value>
    934                           <minimum>${commons.jacoco.branchRatio}</minimum>
    935                         </limit>
    936                         <limit>
    937                           <counter>LINE</counter>
    938                           <value>COVEREDRATIO</value>
    939                           <minimum>${commons.jacoco.lineRatio}</minimum>
    940                         </limit>
    941                         <limit>
    942                           <counter>COMPLEXITY</counter>
    943                           <value>COVEREDRATIO</value>
    944                           <minimum>${commons.jacoco.complexityRatio}</minimum>
    945                         </limit>
    946                       </limits>
    947                     </rule>
    948                   </rules>
    949                   <haltOnFailure>${commons.jacoco.haltOnFailure}</haltOnFailure>
    950                 </configuration>
    951               </execution>
    952             </executions>
    953           </plugin>
    954         </plugins>
    955       </build>
    956       <reporting>
    957         <plugins>
    958           <plugin>
    959             <groupId>org.jacoco</groupId>
    960             <artifactId>jacoco-maven-plugin</artifactId>
    961             <version>${commons.jacoco.version}</version>
    962           </plugin>
    963         </plugins>
    964       </reporting>
    965     </profile>
    966 
    967     <profile>
    968       <id>cobertura</id>
    969       <activation>
    970         <file>
    971           <exists>src/site/resources/profile.cobertura</exists>
    972         </file>
    973       </activation>
    974       <reporting>
    975         <plugins>
    976           <plugin>
    977             <groupId>org.codehaus.mojo</groupId>
    978             <artifactId>cobertura-maven-plugin</artifactId>
    979             <version>${commons.cobertura.version}</version>
    980           </plugin>
    981         </plugins>
    982       </reporting>
    983     </profile>
    984 
    985     <!--
    986          Profile for Commons releases via Nexus.
    987          Assembles artifacts, creates source and javadoc jars, signs them and adds hashes.
    988     -->
    989     <profile>
    990       <id>release</id>
    991       <build>
    992         <plugins>
    993           <!-- We want to sign the artifact, the POM, and all attached artifacts -->
    994           <plugin>
    995             <artifactId>maven-gpg-plugin</artifactId>
    996             <configuration>
    997               <passphrase>${gpg.passphrase}</passphrase>
    998             </configuration>
    999             <executions>
   1000               <execution>
   1001                 <id>sign-artifacts</id>
   1002                 <phase>verify</phase>
   1003                 <goals>
   1004                   <goal>sign</goal>
   1005                 </goals>
   1006               </execution>
   1007             </executions>
   1008           </plugin>
   1009           <plugin>
   1010             <artifactId>maven-install-plugin</artifactId>
   1011             <configuration>
   1012               <createChecksum>true</createChecksum>
   1013             </configuration>
   1014           </plugin>
   1015           <plugin>
   1016             <artifactId>maven-source-plugin</artifactId>
   1017             <executions>
   1018               <execution>
   1019                 <id>create-source-jar</id>
   1020                 <goals>
   1021                   <goal>jar</goal>
   1022                   <goal>test-jar</goal>
   1023                 </goals>
   1024               </execution>
   1025             </executions>
   1026           </plugin>
   1027           <plugin>
   1028             <artifactId>maven-jar-plugin</artifactId>
   1029             <executions>
   1030               <execution>
   1031                 <goals>
   1032                   <goal>test-jar</goal>
   1033                 </goals>
   1034                 <configuration>
   1035                   <!-- Avoids an error when releasing the parent pom -->
   1036                   <skipIfEmpty>true</skipIfEmpty>
   1037                 </configuration>
   1038               </execution>
   1039             </executions>
   1040           </plugin>
   1041           <plugin>
   1042             <artifactId>maven-release-plugin</artifactId>
   1043             <configuration>
   1044               <!-- Pass these arguments to the deploy plugin. -->
   1045               <arguments>-Prelease</arguments>
   1046             </configuration>
   1047           </plugin>
   1048           <plugin>
   1049             <artifactId>maven-javadoc-plugin</artifactId>
   1050             <executions>
   1051               <execution>
   1052                 <id>create-javadoc-jar</id>
   1053                 <goals>
   1054                   <goal>javadoc</goal>
   1055                   <goal>jar</goal>
   1056                 </goals>
   1057                 <phase>package</phase>
   1058               </execution>
   1059             </executions>
   1060             <configuration>
   1061               <source>${maven.compiler.source}</source>
   1062             </configuration>
   1063           </plugin>
   1064           <plugin>
   1065             <artifactId>maven-assembly-plugin</artifactId>
   1066             <inherited>true</inherited>
   1067             <executions>
   1068               <execution>
   1069                 <goals>
   1070                   <goal>single</goal>
   1071                 </goals>
   1072                 <phase>package</phase>
   1073               </execution>
   1074             </executions>
   1075           </plugin>
   1076         </plugins>
   1077       </build>
   1078     </profile>
   1079 
   1080      <!--
   1081        profile to update the Apache parent pom profile of the same name
   1082        to better suit the requirements of Apache Commons.
   1083        [Requires further work]
   1084      -->
   1085     <profile>
   1086       <id>apache-release</id>
   1087       <build>
   1088         <plugins>
   1089           <plugin>
   1090             <artifactId>maven-release-plugin</artifactId>
   1091             <configuration>
   1092               <releaseProfiles>apache-release</releaseProfiles>
   1093             </configuration>
   1094           </plugin>
   1095           <plugin>
   1096             <groupId>org.apache.maven.plugins</groupId>
   1097             <artifactId>maven-source-plugin</artifactId>
   1098             <executions>
   1099               <execution>
   1100                 <id>attach-test-sources</id>
   1101                 <goals>
   1102                   <goal>test-jar</goal>
   1103                 </goals>
   1104               </execution>
   1105             </executions>
   1106           </plugin>
   1107           <plugin>
   1108             <artifactId>maven-install-plugin</artifactId>
   1109             <configuration>
   1110               <createChecksum>true</createChecksum>
   1111             </configuration>
   1112           </plugin>
   1113           <plugin>
   1114             <groupId>org.apache.maven.plugins</groupId>
   1115             <artifactId>maven-jar-plugin</artifactId>
   1116             <executions>
   1117               <execution>
   1118                 <goals>
   1119                   <goal>test-jar</goal>
   1120                 </goals>
   1121               </execution>
   1122             </executions>
   1123           </plugin>
   1124         </plugins>
   1125       </build>
   1126     </profile>
   1127 
   1128     <!--
   1129        Profile for running the build using JDK 1.3
   1130        (JAVA_1_3_HOME needs to be defined, e.g. in settings.xml or an environment variable)
   1131       -->
   1132     <profile>
   1133       <id>java-1.3</id>
   1134       <properties>
   1135         <commons.compiler.fork>true</commons.compiler.fork>
   1136         <commons.compiler.compilerVersion>1.3</commons.compiler.compilerVersion>
   1137         <commons.compiler.javac>${JAVA_1_3_HOME}/bin/javac</commons.compiler.javac>
   1138         <commons.surefire.java>${JAVA_1_3_HOME}/bin/java</commons.surefire.java>
   1139       </properties>
   1140     </profile>
   1141 
   1142     <!--
   1143        Profile for running the build using JDK 1.4
   1144        (JAVA_1_4_HOME needs to be defined, e.g. in settings.xml or an environment variable)
   1145       -->
   1146     <profile>
   1147       <id>java-1.4</id>
   1148       <properties>
   1149         <commons.compiler.fork>true</commons.compiler.fork>
   1150         <commons.compiler.compilerVersion>1.4</commons.compiler.compilerVersion>
   1151         <commons.compiler.javac>${JAVA_1_4_HOME}/bin/javac</commons.compiler.javac>
   1152         <commons.surefire.java>${JAVA_1_4_HOME}/bin/java</commons.surefire.java>
   1153         <!-- later versions of surefire don't support Java 1.4 -->
   1154         <commons.surefire.version>2.11</commons.surefire.version>
   1155       </properties>
   1156     </profile>
   1157 
   1158     <!--
   1159        Profile for running the build using JDK 1.5
   1160        (JAVA_1_5_HOME needs to be defined, e.g. in settings.xml or an environment variable)
   1161       -->
   1162     <profile>
   1163       <id>java-1.5</id>
   1164       <properties>
   1165         <commons.compiler.fork>true</commons.compiler.fork>
   1166         <commons.compiler.compilerVersion>1.5</commons.compiler.compilerVersion>
   1167         <commons.compiler.javac>${JAVA_1_5_HOME}/bin/javac</commons.compiler.javac>
   1168         <commons.surefire.java>${JAVA_1_5_HOME}/bin/java</commons.surefire.java>
   1169       </properties>
   1170     </profile>
   1171 
   1172     <!--
   1173        Profile for running the build using JDK 1.6
   1174        (JAVA_1_6_HOME needs to be defined, e.g. in settings.xml or an environment variable)
   1175       -->
   1176     <profile>
   1177       <id>java-1.6</id>
   1178       <properties>
   1179         <commons.compiler.fork>true</commons.compiler.fork>
   1180         <commons.compiler.compilerVersion>1.6</commons.compiler.compilerVersion>
   1181         <commons.compiler.javac>${JAVA_1_6_HOME}/bin/javac</commons.compiler.javac>
   1182         <commons.surefire.java>${JAVA_1_6_HOME}/bin/java</commons.surefire.java>
   1183       </properties>
   1184     </profile>
   1185 
   1186     <!--
   1187        Profile for running the build using JDK 1.7
   1188        (JAVA_1_7_HOME needs to be defined, e.g. in settings.xml or an environment variable)
   1189       -->
   1190     <profile>
   1191       <id>java-1.7</id>
   1192       <properties>
   1193         <commons.compiler.fork>true</commons.compiler.fork>
   1194         <commons.compiler.compilerVersion>1.7</commons.compiler.compilerVersion>
   1195         <commons.compiler.javac>${JAVA_1_7_HOME}/bin/javac</commons.compiler.javac>
   1196         <commons.surefire.java>${JAVA_1_7_HOME}/bin/java</commons.surefire.java>
   1197       </properties>
   1198     </profile>
   1199 
   1200     <!--
   1201        Profile for running the build using JDK 1.8
   1202        (JAVA_1_8_HOME needs to be defined, e.g. in settings.xml or an environment variable)
   1203       -->
   1204     <profile>
   1205       <id>java-1.8</id>
   1206       <properties>
   1207         <commons.compiler.fork>true</commons.compiler.fork>
   1208         <commons.compiler.compilerVersion>1.8</commons.compiler.compilerVersion>
   1209         <commons.compiler.javac>${JAVA_1_8_HOME}/bin/javac</commons.compiler.javac>
   1210         <commons.surefire.java>${JAVA_1_8_HOME}/bin/java</commons.surefire.java>
   1211       </properties>
   1212     </profile>
   1213 
   1214     <!--
   1215        Profile for running the build using JDK 1.9
   1216        (JAVA_1_9_HOME needs to be defined, e.g. in settings.xml or an environment variable)
   1217       -->
   1218     <profile>
   1219       <id>java-1.9</id>
   1220       <properties>
   1221         <commons.compiler.fork>true</commons.compiler.fork>
   1222         <commons.compiler.compilerVersion>1.9</commons.compiler.compilerVersion>
   1223         <commons.compiler.javac>${JAVA_1_9_HOME}/bin/javac</commons.compiler.javac>
   1224         <commons.surefire.java>${JAVA_1_9_HOME}/bin/java</commons.surefire.java>
   1225       </properties>
   1226     </profile>
   1227 
   1228     <!-- N.B. when adding new java profiles, be sure to update
   1229          the _removeheaders list in the maven_bundle_plugin configuration -->
   1230 
   1231     <!--
   1232      | Profile to allow testing of deploy phase
   1233      | e.g.
   1234      | mvn deploy -Ptest-deploy -Prelease -Dgpg.skip
   1235      -->
   1236     <profile>
   1237       <id>test-deploy</id>
   1238       <properties>
   1239         <altDeploymentRepository>id::default::file:target/deploy</altDeploymentRepository>
   1240       </properties>
   1241     </profile>
   1242 
   1243     <profile>
   1244       <!--
   1245           Generate release notes in top-level directory from src/changes/changes.xml
   1246           Usage:
   1247           mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
   1248 
   1249           Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.
   1250 
   1251           Requires file src/changes/release-notes.vm.
   1252           A sample template is available from:
   1253           https://svn.apache.org/repos/asf/commons/proper/commons-parent/trunk/src/changes/release-notes.vm
   1254        -->
   1255       <id>release-notes</id>
   1256       <build>
   1257         <plugins>
   1258           <plugin>
   1259             <groupId>org.apache.maven.plugins</groupId>
   1260             <artifactId>maven-changes-plugin</artifactId>
   1261             <version>${commons.changes.version}</version>
   1262             <configuration>
   1263               <template>release-notes.vm</template>
   1264               <templateDirectory>src/changes</templateDirectory>
   1265               <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
   1266               <announcementDirectory>.</announcementDirectory>
   1267               <announcementFile>RELEASE-NOTES.txt</announcementFile>
   1268               <announceParameters>
   1269                 <releaseVersion>${commons.release.version}</releaseVersion>
   1270               </announceParameters>
   1271             </configuration>
   1272             <executions>
   1273               <execution>
   1274                 <id>create-release-notes</id>
   1275                 <phase>generate-resources</phase>
   1276                 <goals>
   1277                   <goal>announcement-generate</goal>
   1278                 </goals>
   1279               </execution>
   1280             </executions>
   1281           </plugin>
   1282         </plugins>
   1283       </build>
   1284     </profile>
   1285 
   1286     <!--
   1287         Automatically run the buildnumber plugin unless the buildNumber.skip property is defined as true
   1288     -->
   1289     <profile>
   1290       <id>svn-buildnumber</id>
   1291       <activation>
   1292         <property>
   1293           <name>!buildNumber.skip</name>
   1294           <value>!true</value>
   1295         </property>
   1296       </activation>
   1297       <build>
   1298         <plugins>
   1299           <plugin>
   1300             <groupId>org.codehaus.mojo</groupId>
   1301             <artifactId>buildnumber-maven-plugin</artifactId>
   1302             <executions>
   1303               <execution>
   1304                 <phase>generate-resources</phase>
   1305                 <goals>
   1306                   <goal>create</goal>
   1307                 </goals>
   1308               </execution>
   1309             </executions>
   1310             <configuration>
   1311               <!-- Use committed revision so it does not change every time svn update is run -->
   1312               <useLastCommittedRevision>true</useLastCommittedRevision>
   1313               <!-- default revision number if unavailable -->
   1314               <revisionOnScmFailure>??????</revisionOnScmFailure>
   1315               <doCheck>false</doCheck>
   1316               <doUpdate>false</doUpdate>
   1317             </configuration>
   1318           </plugin>
   1319         </plugins>
   1320       </build>
   1321     </profile>
   1322     <!-- optional profile to use javasvn instead of the SVN CLI for the buildNumber plugin -->
   1323     <profile>
   1324       <id>javasvn</id>
   1325       <build>
   1326         <plugins>
   1327           <plugin>
   1328             <groupId>org.codehaus.mojo</groupId>
   1329             <artifactId>buildnumber-maven-plugin</artifactId>
   1330             <configuration>
   1331               <providerImplementations>
   1332                 <svn>javasvn</svn>
   1333               </providerImplementations>
   1334             </configuration>
   1335           </plugin>
   1336         </plugins>
   1337       </build>
   1338     </profile>
   1339     <!-- profile to allow the use of plugin versions that require Java 7+ -->
   1340     <profile>
   1341       <id>jdk7-plugin-fix-version</id>
   1342       <activation>
   1343         <jdk>[1.7,)</jdk>
   1344       </activation>
   1345       <properties>
   1346         <!-- TODO should these be separately overrideable properties?
   1347             early versions are unlikely to be updated, but current latest will be
   1348          -->
   1349         <commons.findbugs.version>3.0.0</commons.findbugs.version>
   1350         <!-- Since 1.13 running maven with Java7 is required, 1.14 also supports Java8 class files (ASM 5.0) -->
   1351         <commons.animal-sniffer.version>1.14</commons.animal-sniffer.version>
   1352       </properties>
   1353     </profile>
   1354 
   1355     <!-- allow simple creation of the site without any optional reports -->
   1356     <profile>
   1357       <id>site-basic</id>
   1358       <properties>
   1359         <skipTests>true</skipTests>
   1360         <maven.javadoc.skip>true</maven.javadoc.skip>
   1361         <cobertura.skip>true</cobertura.skip>
   1362         <findbugs.skip>true</findbugs.skip>
   1363         <checkstyle.skip>true</checkstyle.skip>
   1364         <clirr.skip>true</clirr.skip>
   1365         <changes.jira.skip>true</changes.jira.skip>
   1366         <rat.skip>true</rat.skip> <!-- from version 0.12 -->
   1367         <jacoco.skip>true</jacoco.skip>
   1368         <skipSurefireReport>true</skipSurefireReport>
   1369       </properties>
   1370     </profile>
   1371 
   1372   </profiles>
   1373 
   1374   <properties>
   1375     <!-- configuration bits for cutting a release candidate, must be overridden by components -->
   1376     <commons.release.version>${project.version}</commons.release.version>
   1377     <commons.rc.version>RC1</commons.rc.version>
   1378     <commons.jira.id>COMMONSSITE</commons.jira.id>
   1379 
   1380     <!-- Default configuration for compiler source and target JVM -->
   1381     <!-- Do NOT change this; it must remain as 1.3 -->
   1382     <maven.compiler.source>1.3</maven.compiler.source>
   1383     <maven.compiler.target>1.3</maven.compiler.target>
   1384 
   1385     <!-- compiler and surefire plugin settings for "java" profiles -->
   1386     <commons.compiler.fork>false</commons.compiler.fork>
   1387     <commons.compiler.compilerVersion />
   1388     <commons.compiler.javac />
   1389     <commons.surefire.java />
   1390 
   1391     <!-- plugin versions (allows same value in reporting and build sections) -->
   1392     <commons.surefire.version>2.18.1</commons.surefire.version>
   1393     <commons.surefire-report.version>2.18.1</commons.surefire-report.version>
   1394     <commons.javadoc.version>2.10.3</commons.javadoc.version>
   1395     <commons.rat.version>0.11</commons.rat.version>
   1396     <commons.changes.version>2.11</commons.changes.version>
   1397     <commons.clirr.version>2.6.1</commons.clirr.version>
   1398     <commons.jxr.version>2.5</commons.jxr.version>
   1399     <commons.project-info.version>2.8</commons.project-info.version>
   1400     <commons.wagon-ssh.version>2.8</commons.wagon-ssh.version>
   1401     <commons.site-plugin.version>3.4</commons.site-plugin.version>
   1402     <commons.jacoco.version>0.7.5.201505241946</commons.jacoco.version>
   1403     <commons.cobertura.version>2.7</commons.cobertura.version>
   1404     <commons.jdepend.version>2.0</commons.jdepend.version>
   1405     <commons.compiler.version>3.3</commons.compiler.version>
   1406     <commons.scm-publish.version>1.1</commons.scm-publish.version>
   1407     <commons.findbugs.version>2.5.5</commons.findbugs.version>
   1408     <!-- plugin versions 1.12 and 1.13 currently require Java 7 -->
   1409     <commons.animal-sniffer.version>1.11</commons.animal-sniffer.version>
   1410     <!--  Almost all signatures use version 1.0. Allow override just in case -->
   1411     <commons.animal-sniffer.signature.version>1.0</commons.animal-sniffer.signature.version>
   1412 
   1413     <!-- Default values for the download-page generation by commons-build-plugin -->
   1414     <commons.release.name>${project.artifactId}-${commons.release.version}</commons.release.name>
   1415     <commons.release.desc />
   1416     <commons.binary.suffix>-bin</commons.binary.suffix>
   1417     <commons.release.2.name>${project.artifactId}-${commons.release.2.version}</commons.release.2.name>
   1418     <commons.release.2.desc />
   1419     <commons.release.2.binary.suffix>-bin</commons.release.2.binary.suffix>
   1420     <commons.release.3.name>${project.artifactId}-${commons.release.3.version}</commons.release.3.name>
   1421     <commons.release.3.desc />
   1422     <commons.release.3.binary.suffix>-bin</commons.release.3.binary.suffix>
   1423 
   1424     <!-- Default values for the jacoco-maven-plugin reports -->
   1425     <commons.jacoco.classRatio>1.00</commons.jacoco.classRatio>
   1426     <commons.jacoco.instructionRatio>0.90</commons.jacoco.instructionRatio>
   1427     <commons.jacoco.methodRatio>0.95</commons.jacoco.methodRatio>
   1428     <commons.jacoco.branchRatio>0.85</commons.jacoco.branchRatio>
   1429     <commons.jacoco.complexityRatio>0.85</commons.jacoco.complexityRatio>
   1430     <commons.jacoco.lineRatio>0.90</commons.jacoco.lineRatio>
   1431     <commons.jacoco.haltOnFailure>false</commons.jacoco.haltOnFailure>
   1432 
   1433     <!-- Commons Component Id -->
   1434     <commons.componentid>${project.artifactId}</commons.componentid>
   1435 
   1436     <!-- Configuration properties for the OSGi maven-bundle-plugin -->
   1437     <commons.osgi.symbolicName>org.apache.commons.${commons.componentid}</commons.osgi.symbolicName>
   1438     <commons.osgi.export>org.apache.commons.*;version=${project.version};-noimport:=true</commons.osgi.export>
   1439     <commons.osgi.import>*</commons.osgi.import>
   1440     <commons.osgi.dynamicImport />
   1441     <commons.osgi.private />
   1442     <commons.osgi.excludeDependencies>true</commons.osgi.excludeDependencies>
   1443 
   1444     <!-- location of any manifest file used by maven-jar-plugin -->
   1445     <commons.manifestfile>${project.build.directory}/osgi/MANIFEST.MF</commons.manifestfile>
   1446 
   1447     <!--
   1448       Make the deployment protocol pluggable. This allows to switch to
   1449       other protocols like scpexe, which some users prefer over scp.
   1450     -->
   1451     <commons.deployment.protocol>scp</commons.deployment.protocol>
   1452 
   1453     <!--
   1454       Encoding of Java source files: ensures that the compiler and
   1455       the javadoc generator use the right encoding. Subprojects may
   1456       overwrite this, if they are using another encoding.
   1457     -->
   1458     <commons.encoding>iso-8859-1</commons.encoding>
   1459     <!-- used in this pom to provide the Javadoc HTML file encoding -->
   1460     <commons.docEncoding>${commons.encoding}</commons.docEncoding>
   1461     <!-- Define source encoding for filtering; used by general plugins -->
   1462     <project.build.sourceEncoding>${commons.encoding}</project.build.sourceEncoding>
   1463     <!-- This is used by reporting plugins -->
   1464     <project.reporting.outputEncoding>${commons.encoding}</project.reporting.outputEncoding>
   1465 
   1466     <!-- Javadoc link to Java API.  Default is Java 1.7; components can override to other versions -->
   1467     <commons.javadoc.java.link>http://docs.oracle.com/javase/7/docs/api/</commons.javadoc.java.link>
   1468     <commons.javadoc.javaee.link>http://docs.oracle.com/javaee/6/api/</commons.javadoc.javaee.link>
   1469 
   1470     <!-- build meta inf -->
   1471     <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ssZ</maven.build.timestamp.format>
   1472     <implementation.build>${scmBranch}@r${buildNumber}; ${maven.build.timestamp}</implementation.build>
   1473 
   1474     <!-- Allow Clirr severity to be overriden by the command-line option -DminSeverity=level -->
   1475     <minSeverity>info</minSeverity>
   1476 
   1477     <!-- Control number of issues retrieved from JIRA with changes plugin -->
   1478     <commons.changes.maxEntries>100</commons.changes.maxEntries>
   1479 
   1480     <!-- Allow surefire-report aggregation to be easily configured for multi-module projects -->
   1481     <commons.surefire-report.aggregate>false</commons.surefire-report.aggregate>
   1482 
   1483     <!-- Allow changes Jira report to be restricted to just the current version (plugin default is false)-->
   1484     <commons.changes.onlyCurrentVersion>false</commons.changes.onlyCurrentVersion>
   1485     <!-- Allow changes Jira report maxEntries to be overridden (plugin default 100) -->
   1486     <commons.changes.maxEntries>100</commons.changes.maxEntries>
   1487     <!-- Allow changes Jira report runOnlyAtExecutionRoot to be overridden (plugin default is false) -->
   1488     <commons.changes.runOnlyAtExecutionRoot>false</commons.changes.runOnlyAtExecutionRoot>
   1489 
   1490     <!-- scm publish plugin configuration -->
   1491     <commons.site.cache>${user.home}/commons-sites</commons.site.cache>
   1492     <!-- value modules can override it -->
   1493     <commons.site.path>${project.artifactId}</commons.site.path>
   1494 
   1495     <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${project.artifactId}</commons.scmPubUrl>
   1496     <commons.scmPubCheckoutDirectory>${commons.site.cache}/${commons.site.path}</commons.scmPubCheckoutDirectory>
   1497     <commons.scmPubServer>commons.site</commons.scmPubServer>
   1498 
   1499     <sonar.host.url>https://analysis.apache.org/</sonar.host.url>
   1500 
   1501   </properties>
   1502 
   1503 </project>
   1504