<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> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <sureFireOptions11/> <sureFireForks11>false</sureFireForks11> <java11.sourceDirectory>${project.basedir}/src/main/java11</java11.sourceDirectory> <java11.build.outputDirectory>${project.build.directory}/classes-java11</java11.build.outputDirectory> <artifact.classifier/> <docker.maven.plugin.fabric8.version>0.36.0</docker.maven.plugin.fabric8.version> <felix.bundle.plugin.version>5.1.1</felix.bundle.plugin.version> <felix.version>6.0.1</felix.version> <hibernate.version>5.4.24.Final</hibernate.version> <javassist.version>3.27.0-GA</javassist.version> <jndi.version>0.11.4.1</jndi.version> <maven.release.version>2.5.3</maven.release.version> <metrics.version>3.2.5</metrics.version> <micrometer.version>1.5.10</micrometer.version> <simpleclient.version>0.9.0</simpleclient.version> <mockito.version>3.7.7</mockito.version> <pax.exam.version>4.13.1</pax.exam.version> <pax.url.version>2.5.4</pax.url.version> <postgresql.version>42.3.3</postgresql.version> <log4j.version>2.17.2</log4j.version> <slf4j.version>1.7.30</slf4j.version> <commons.csv.version>1.5</commons.csv.version> <h2.version>2.1.212</h2.version> <junit.version>4.13.1</junit.version> <testcontainers.version>1.15.1</testcontainers.version> </properties> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>5.0.2-SNAPSHOT</version> <packaging>bundle</packaging> <name>HikariCP</name> <description>Ultimate JDBC Connection Pool</description> <url>https://github.com/brettwooldridge/HikariCP</url> <organization> <name>Zaxxer.com</name> <url>https://github.com/brettwooldridge</url> </organization> <scm> <connection>scm:git:git@github.com:brettwooldridge/HikariCP.git</connection> <developerConnection>scm:git:git@github.com:brettwooldridge/HikariCP.git</developerConnection> <url>https://github.com/brettwooldridge/HikariCP</url> <tag>HEAD</tag> </scm> <issueManagement> <url>https://github.com/brettwooldridge/HikariCP/issues</url> </issueManagement> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> </license> </licenses> <developers> <developer> <name>Brett Wooldridge</name> <email>brett.wooldridge@gmail.com</email> </developer> </developers> <parent> <groupId>org.sonatype.oss</groupId> <artifactId>oss-parent</artifactId> <version>9</version> </parent> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>postgresql</artifactId> <version>${testcontainers.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>${commons.csv.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>${javassist.version}</version> <optional>true</optional> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> <version>${micrometer.version}</version> <optional>true</optional> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgresql.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> <scope>provided</scope> <optional>true</optional> <exclusions> <exclusion> <artifactId>jboss-logging</artifactId> <groupId>org.jboss.logging</groupId> </exclusion> <exclusion> <artifactId>jboss-logging-annotations</artifactId> <groupId>org.jboss.logging</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-core</artifactId> <version>${metrics.version}</version> <scope>provided</scope> <optional>true</optional> </dependency> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-healthchecks</artifactId> <version>${metrics.version}</version> <scope>provided</scope> <optional>true</optional> </dependency> <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient</artifactId> <version>${simpleclient.version}</version> <scope>provided</scope> <optional>true</optional> </dependency> <dependency> <groupId>simple-jndi</groupId> <artifactId>simple-jndi</artifactId> <version>${jndi.version}</version> <scope>test</scope> </dependency> <!-- OSGi test --> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.framework</artifactId> <version>${felix.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.ops4j.pax.exam</groupId> <artifactId>pax-exam-container-native</artifactId> <version>${pax.exam.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.ops4j.pax.exam</groupId> <artifactId>pax-exam-junit4</artifactId> <version>${pax.exam.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.ops4j.pax.exam</groupId> <artifactId>pax-exam-link-assembly</artifactId> <version>${pax.exam.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.ops4j.pax.exam</groupId> <artifactId>pax-exam-link-mvn</artifactId> <version>${pax.exam.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.ops4j.pax.url</groupId> <artifactId>pax-url-aether</artifactId> <version>${pax.url.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.ops4j.pax.url</groupId> <artifactId>pax-url-reference</artifactId> <version>${pax.url.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>${h2.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>target/classes</directory> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M3</version> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>3.3.9</version> </requireMavenVersion> </rules> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>build-classpath</goal> </goals> <configuration> <outputProperty>maven.compile.classpath</outputProperty> </configuration> </execution> </executions> </plugin> <plugin> <!-- Generate proxies --> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <extensions>true</extensions> <executions> <execution> <phase>compile</phase> <!-- phase>generate-test-sources</phase --> <goals> <goal>exec</goal> </goals> </execution> </executions> <configuration> <executable>java</executable> <arguments> <argument>-cp</argument> <argument>${project.build.outputDirectory}${path.separator}${maven.compile.classpath}</argument> <argument>com.zaxxer.hikari.util.JavassistProxyFactory</argument> </arguments> </configuration> </plugin> <plugin> <!-- The Docker Maven plugin is used to create docker image with the fat jar --> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>${docker.maven.plugin.fabric8.version}</version> <configuration> <logDate>default</logDate> <autoPull>true</autoPull> <images> <!-- Postgres Image is used 'as-is' and iked into the service s linimage --> <image> <alias>db</alias> <name>postgres:11</name> <run> <env> <POSTGRES_PASSWORD>password</POSTGRES_PASSWORD> </env> <wait> <log>database system is ready to accept connections</log> <time>20000</time> </wait> <log> <prefix>DB</prefix> <color>yellow</color> </log> </run> </image> </images> </configuration> <!-- Hooking into the lifecycle --> <executions> <execution> <id>start</id> <phase>pre-integration-test</phase> <goals> <goal>build</goal> <goal>start</goal> </goals> </execution> <execution> <id>stop</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.2</version> <executions> <!-- Prepares the property pointing to the JaCoCo runtime agent which is passed as VM argument when Maven the Surefire plugin is executed. --> <execution> <goals> <goal>prepare-agent</goal> </goals> <configuration> <!-- Sets the path to the file which contains the execution data. --> <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile> <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. --> <propertyName>surefireArgLine</propertyName> <excludes> <exclude>**/com/zaxxer/hikari/util/JavassistProxyFactory*</exclude> <exclude>**/com/zaxxer/hikari/pool/HikariProxy*</exclude> <exclude>**/com/zaxxer/hikari/metrics/**</exclude> </excludes> </configuration> </execution> <!-- Ensures that the code coverage report for unit tests is created after unit tests have been run. --> <execution> <id>report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <!-- Sets the path to the file which contains the execution data. --> <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile> <excludes> <exclude>**/com/zaxxer/hikari/pool/HikariProxy*</exclude> <exclude>**/com/zaxxer/hikari/metrics/**</exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>3.0.0-M3</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>${felix.bundle.plugin.version}</version> <extensions>true</extensions> <configuration> <classifier>${artifact.classifier}</classifier> <instructions> <Automatic-Module-Name>${automatic.module.name}</Automatic-Module-Name> <Multi-Release>true</Multi-Release> <Bundle-Name>HikariCP</Bundle-Name> <Export-Package> com.zaxxer.hikari, com.zaxxer.hikari.hibernate, com.zaxxer.hikari.metrics </Export-Package> <Private-Package>com.zaxxer.hikari.*</Private-Package> <Include-Resource>{maven-resources}</Include-Resource> <_exportcontents> com.zaxxer.hikari.pool, com.zaxxer.hikari.util </_exportcontents> <Import-Package> javax.management, javax.naming, javax.naming.spi, javax.sql, javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi, com.codahale.metrics;resolution:=optional, com.codahale.metrics.health;resolution:=optional, io.micrometer.core.instrument;resolution:=optional, org.slf4j;version="[1.6,2)", org.hibernate;resolution:=optional, org.hibernate.cfg;resolution:=optional, org.hibernate.engine.jdbc.connections.spi;resolution:=optional, org.hibernate.service;resolution:=optional, org.hibernate.service.spi;resolution:=optional </Import-Package> <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName> <DynamicImport-Package>*</DynamicImport-Package> </instructions> </configuration> <executions> <!-- This execution makes sure that the manifest is available when the tests are executed --> <execution> <goals> <goal>manifest</goal> </goals> </execution> </executions> </plugin> </plugins> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> <compilerArgs>-Xlint</compilerArgs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>${maven.release.version}</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <tagNameFormat>HikariCP-@{project.version}</tagNameFormat> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <!-- Sets the VM argument line used when unit tests are run. --> <argLine>${surefireArgLine} ${sureFireOptions11}</argLine> <reuseForks>${sureFireForks11}</reuseForks> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.0.1</version> <configuration> <!-- outputDirectory>/absolute/path/to/the/output/directory</outputDirectory> <finalName>filename-of-generated-jar-file</finalName --> <attach>true</attach> </configuration> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.0.1</version> <configuration> <show>public</show> <excludePackageNames> com.zaxxer.hikari.hibernate:com.zaxxer.hikari.metrics.*:com.zaxxer.hikari.pool:com.zaxxer.hikari.util </excludePackageNames> <attach>true</attach> <maxmemory>1024m</maxmemory> </configuration> <executions> <execution> <id>bundle-sources</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>Java11</id> <activation> <jdk>[11,)</jdk> </activation> <properties> <!-- sureFireOptions11> -add-opens java.base/java.net=ALL-UNNAMED -add-opens java.base/java.security=ALL-UNNAMED -add-exports java.base/sun.net.www.protocol.http=ALL-UNNAMED -add-exports java.base/sun.net.www.protocol.https=ALL-UNNAMED </sureFireOptions11 --> <slf4j.version>2.0.0-alpha1</slf4j.version> <sureFireForks11>true</sureFireForks11> <automatic.module.name>com.zaxxer.hikari</automatic.module.name> </properties> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j18-impl</artifactId> <version>${log4j.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <executions> <execution> <id>compile-java11</id> <goals> <goal>compile</goal> </goals> <configuration> <release>11</release> <compileSourceRoots> <compileSourceRoot>${project.basedir}/src/main/java11</compileSourceRoot> </compileSourceRoots> <multiReleaseOutput>true</multiReleaseOutput> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>release-sign-artifacts</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>felix</id> <activation> <activeByDefault>true</activeByDefault> <property> <name>pax.exam.framework</name> <value>felix</value> </property> </activation> <properties> <pax.exam.framework>felix</pax.exam.framework> <pax.exam.logging>none</pax.exam.logging> </properties> <dependencies> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.framework</artifactId> <version>${felix.version}</version> <scope>test</scope> </dependency> </dependencies> </profile> </profiles> </project>