<?xml version="1.0"?>
<!--
   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/maven-v4_0_0.xsd">
  <parent>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-parent</artifactId>
    <version>47</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>commons-dbcp2</artifactId>
  <version>2.6.1-SNAPSHOT</version>
  <name>Apache Commons DBCP</name>

  <inceptionYear>2001</inceptionYear>
  <description>Apache Commons DBCP software implements Database Connection Pooling</description>
  <url>http://commons.apache.org/dbcp/</url>

  <distributionManagement>
    <!-- Cannot define in parent ATM, see COMMONSSITE-26 -->
    <site>
      <id>apache.website</id>
      <name>Apache Commons Site</name>
      <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-dbcp/</url>
    </site>
  </distributionManagement>

  <issueManagement>
    <system>jira</system>
    <url>http://issues.apache.org/jira/browse/DBCP</url>
  </issueManagement>

  <scm>
    <connection>scm:git:http://git-wip-us.apache.org/repos/asf/commons-dbcp.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/commons-dbcp.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=commons-dbcp.git</url>
  </scm>

  <developers>
    <developer>
      <name>Morgan Delagrange</name>
      <id>morgand</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>Geir Magnusson</name>
      <id>geirm</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>Craig McClanahan</name>
      <id>craigmcc</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>John McNally</name>
      <id>jmcnally</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>Martin Poeschl</name>
      <id>mpoeschl</id>
      <email>mpoeschl@marmot.at</email>
      <organization>tucana.at</organization>
    </developer>
    <developer>
      <name>Rodney Waldhoff</name>
      <id>rwaldhoff</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>David Weinrich</name>
      <id>dweinr1</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>Dirk Verbeeck</name>
      <id>dirkv</id>
      <email></email>
      <organization></organization>
    </developer>
    <developer>
      <name>Yoav Shapira</name>
      <id>yoavs</id>
      <email>yoavs@apache.org</email>
      <organization>The Apache Software Foundation</organization>
    </developer>
    <developer>
      <name>J&#x00f6;rg Schaible</name>
      <id>joehni</id>
      <email>joerg.schaible@gmx.de</email>
      <organization></organization>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Mark Thomas</name>
      <id>markt</id>
      <email>markt@apache.org</email>
      <organization>The Apache Software Foundation</organization>
    </developer>
    <developer>
      <name>Gary Gregory</name>
      <id>ggregory</id>
      <email>ggregory@apache.org</email>
      <organization>The Apache Software Foundation</organization>
    </developer>
    <developer>
      <name>Ignacio J. Ortega</name>
      <id>nacho</id>
    </developer>
    <developer>
      <name>Sean C. Sullivan</name>
      <id>sullis</id>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>Todd Carmichael</name>
      <email>toddc@concur.com</email>
    </contributor>
    <contributor>
      <name>Wayne Woodfield</name>
    </contributor>
    <contributor>
      <name>Dain Sundstrom</name>
      <email>dain@apache.org</email>
    </contributor>
    <contributor>
      <name>Philippe Mouawad</name>
    </contributor>
    <contributor>
      <name>Glenn L. Nielsen</name>
    </contributor>
    <contributor>
      <name>James House</name>
    </contributor>
    <contributor>
      <name>James Ring</name>
    </contributor>
    <contributor>
      <name>Peter Wicks</name>
       <email>pwicks@apache.org</email>
    </contributor>
  </contributors>

  <dependencies>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
      <version>${commons.pool.version}</version>
    </dependency>

    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>3.0.0</version>
      <scope>test</scope>
    </dependency>

    <!-- For managed connections -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.1_spec</artifactId>
      <version>1.1.1</version>
      <optional>true</optional>
    </dependency>

    <!-- tomcat naming jars for jndi reference tests -->
    <dependency>
      <groupId>tomcat</groupId>
      <artifactId>naming-common</artifactId>
      <version>5.0.28</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>tomcat</groupId>
      <artifactId>naming-java</artifactId>
      <version>5.0.28</version>
      <scope>test</scope>
    </dependency>

    <!-- for testing of managed connections -->
    <dependency>
      <groupId>org.apache.geronimo.modules</groupId>
      <artifactId>geronimo-transaction</artifactId>
      <version>2.2.1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>junit</artifactId>
          <groupId>junit</groupId>
        </exclusion>
        <exclusion>
          <artifactId>commons-logging</artifactId>
          <groupId>commons-logging</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>1.7.25</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.4.199</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.narayana.jta</groupId>
      <artifactId>narayana-jta</artifactId>
      <version>5.9.5.Final</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.spec.javax.transaction</groupId>
      <artifactId>jboss-transaction-api_1.2_spec</artifactId>
      <version>1.1.1.Final</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss</groupId>
      <artifactId>jboss-transaction-spi</artifactId>
      <version>7.6.0.Final</version>
      <exclusions>
        <exclusion>
          <groupId>org.jboss.logging</groupId>
          <artifactId>jboss-logging-spi</artifactId>
        </exclusion>
      </exclusions>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging</artifactId>
      <version>3.4.0.Final</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <commons.componentid>dbcp</commons.componentid>
    <commons.rc.version>RC1</commons.rc.version>
    <commons.module.name>org.apache.commons.dbcp2</commons.module.name>
    
    <commons.release.version>2.6.0</commons.release.version>
    <commons.release.desc>for JDBC 4.2 on Java 8</commons.release.desc>
    
    <commons.release.2.version>2.4.0</commons.release.2.version>
    <commons.release.2.desc>for JDBC 4.1 on Java 7</commons.release.2.desc>
    
    <!-- override parent name, because 1.x uses different artifactId -->
    <commons.release.3.name>commons-dbcp-${commons.release.3.version}</commons.release.3.name>
    <commons.release.3.version>1.4</commons.release.3.version>
    <commons.release.3.desc>for JDBC 4 on Java 6</commons.release.3.desc>
    
    <!-- override parent name, because 1.x uses different artifactId -->
    <commons.release.4.name>commons-dbcp-${commons.release.4.version}</commons.release.4.name>
    <commons.release.4.version>1.3</commons.release.4.version>
    <commons.release.4.desc>for JDBC 3 on Java 1.4 or 5</commons.release.4.desc>
    
    <commons.site.path>dbcp</commons.site.path>
    <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-dbcp</commons.scmPubUrl>
    <commons.scmPubCheckoutDirectory>site-content</commons.scmPubCheckoutDirectory>
    <commons.jira.id>DBCP</commons.jira.id>
    <commons.jira.pid>12310469</commons.jira.pid>
    <!-- Override CP version until that is updated -->
    <commons.checkstyle.version>3.0.0</commons.checkstyle.version>
    <!-- Constant for Commons Pool version (used in multiple places) -->
    <commons.pool.version>2.6.1</commons.pool.version>
    <commons.japicmp.version>0.13.0</commons.japicmp.version>
    <!-- See DBCP-445 and DBCP-454 -->
    <commons.osgi.import>javax.transaction;version="1.1.0",javax.transaction.xa;version="1.1.0";partial=true;mandatory:=partial,*</commons.osgi.import>
    <commons.japicmp.ignoreMissingClasses>true</commons.japicmp.ignoreMissingClasses>
    <!-- Commons Release Plugin -->
    <commons.bc.version>2.5.0</commons.bc.version>
    <commons.release.isDistModule>true</commons.release.isDistModule>
    <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName>    
    <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>${commons.scm-publish.version}</version>
          <configuration>
            <ignorePathsToDelete>
              <ignorePathToDelete>javadocs</ignorePathToDelete>
            </ignorePathsToDelete>
          </configuration>
        </plugin>
        <!-- Allow use of "mvn checkstyle:checkstyle" -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${commons.checkstyle.version}</version>
          <configuration>
            <configLocation>${basedir}/checkstyle.xml</configLocation>
            <enableRulesSummary>false</enableRulesSummary>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemPropertyVariables>
            <!-- Ensure that logging messages can be inspected -->
            <org.apache.commons.logging.Log>org.apache.commons.dbcp2.StackMessageLog</org.apache.commons.logging.Log>
          </systemPropertyVariables>
          <excludes>
            <!-- Test support files -->
            <exclude>**/Tester*.java</exclude>
            <!-- Exclude nested classes which Surefire cannot handle -->
            <exclude>**/Test*$*.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/bin.xml</descriptor>
            <descriptor>src/main/assembly/src-tar-gz.xml</descriptor>
            <descriptor>src/main/assembly/src-zip.xml</descriptor>
          </descriptors>
          <tarLongFileMode>gnu</tarLongFileMode>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <configuration>
          <ignorePathsToDelete>
            <ignorePathToDelete>api-*</ignorePathToDelete>
          </ignorePathsToDelete>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${commons.javadoc.version}</version>
        <configuration>
          <links>
            <link>http://docs.oracle.com/javase/7/docs/api</link>
            <link>http://commons.apache.org/proper/commons-pool/api-${commons.pool.version}</link>
            <link>http://docs.oracle.com/javaee/7/api/</link>
          </links>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>com.github.siom79.japicmp</groupId>
        <artifactId>japicmp-maven-plugin</artifactId>
        <version>${commons.japicmp.version}</version>
        <reportSets>
          <reportSet>
            <reports>
<!-- This is the only way I could find to skip generating this report -->
<!-- Version 0.11.1 throws an exception because it cannot find a Geronimo class -->
<!-- Version 0.12.0 throws an NullPointerException because it seems Maven did not inject the report Mojo with any values-->            
<!--               <report>cmp-report</report> -->
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <parameter>
            <onlyModified>true</onlyModified>
            <breakBuildOnBinaryIncompatibleModifications>${commons.japicmp.breakBuildOnBinaryIncompatibleModifications}</breakBuildOnBinaryIncompatibleModifications>
            <!-- skip japicmp on "mvn site" - use "mvn package site" to include report -->
            <ignoreMissingNewVersion>true</ignoreMissingNewVersion>
            <reportOnlyFilename>true</reportOnlyFilename>
            <skipPomModules>true</skipPomModules>
            <ignoreMissingClasses>${commons.japicmp.ignoreMissingClasses}</ignoreMissingClasses>
            <oldVersionPattern>${commons.bc.version}</oldVersionPattern>
          </parameter>
          <dependencies>
            <dependency>
              <groupId>org.apache.geronimo.specs</groupId>
              <artifactId>geronimo-jta_1.1_spec</artifactId>
              <version>1.1.1</version>
            </dependency>
          </dependencies>
        </configuration>
      </plugin>    
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>3.0.5</version>
        <configuration>
          <threshold>Normal</threshold>
          <effort>Default</effort>
          <excludeFilterFile>${basedir}/findbugs-exclude-filter.xml</excludeFilterFile>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${commons.javadoc.version}</version>
        <configuration>
          <links>
            <link>http://docs.oracle.com/javase/7/docs/api</link>
            <link>http://commons.apache.org/proper/commons-pool/api-${commons.pool.version}</link>
            <link>http://docs.oracle.com/javaee/7/api/</link>
          </links>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>${commons.changes.version}</version>
        <configuration>
          <template>release-notes.vm</template>
          <templateDirectory>src/changes</templateDirectory>
          <!-- Limit this to released, supported versions else there are -->
          <!-- to many issues in the report -->
          <fixVersionIds>12313721,12326766,12328750</fixVersionIds>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${commons.checkstyle.version}</version>
        <configuration>
          <configLocation>${basedir}/checkstyle.xml</configLocation>
          <enableRulesSummary>false</enableRulesSummary>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>clirr-maven-plugin</artifactId>
        <version>${commons.clirr.version}</version>
        <configuration>
          <minSeverity>info</minSeverity>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
          <targetJdk>${maven.compiler.target}</targetJdk>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>pmd</report>
              <report>cpd</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
  <profiles>
  </profiles>
</project>
