META-INF.maven.io.debezium.debezium-connector-sqlserver.pom.xml Maven / Gradle / Ivy
<?xml version="1.0"?> <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"> <parent> <groupId>io.debezium</groupId> <artifactId>debezium-parent</artifactId> <version>1.2.2.Final</version> <relativePath>../</relativePath> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>debezium-connector-sqlserver</artifactId> <name>Debezium Connector for MS SQL Server</name> <packaging>jar</packaging> <properties> <!-- Specify the properties that will be used for setting up the integration tests' Docker container. Note that the `dockerhost.ip` property is computed from the IP address of DOCKER_HOST, which will work on all platforms. We'll set some of these as system properties during integration testing. --> <sqlserver.port>1433</sqlserver.port> <sqlserver.user>sa</sqlserver.user> <sqlserver.password>Password!</sqlserver.password> <sqlserver.dbname>testDB</sqlserver.dbname> <docker.filter>mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04</docker.filter> <docker.skip>false</docker.skip> <docker.showLogs>true</docker.showLogs> </properties> <dependencies> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-core</artifactId> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>connect-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <scope>provided</scope> </dependency> <!-- Testing --> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-embedded</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-core</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-embedded</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.awaitility</groupId> <artifactId>awaitility</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.easytesting</groupId> <artifactId>fest-assert</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.confluent</groupId> <artifactId>kafka-connect-avro-converter</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> <watchInterval>500</watchInterval> <logDate>default</logDate> <verbose>true</verbose> <images> <image> <!-- A Docker image using the SQL Server --> <name>${docker.filter}</name> <run> <namingStrategy>none</namingStrategy> <env> <ACCEPT_EULA>Y</ACCEPT_EULA> <SA_PASSWORD>${sqlserver.password}</SA_PASSWORD> <MSSQL_PID>Standard</MSSQL_PID> <MSSQL_AGENT_ENABLED>true</MSSQL_AGENT_ENABLED> </env> <ports> <port>${sqlserver.port}:1433</port> </ports> <log> <prefix>sqlserver</prefix> <enabled>true</enabled> <color>yellow</color> </log> <wait> <time>60000</time> <!-- 60 seconds max --> <log>SQL Server is now ready for client connections</log> </wait> </run> </image> </images> </configuration> <!-- Connect this plugin to the maven lifecycle around the integration-test phase: start the container in pre-integration-test and stop it in post-integration-test. --> <executions> <execution> <id>start</id> <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> </execution> <execution> <id>stop</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin> <!-- Unlike surefire, the failsafe plugin ensures 'post-integration-test' phase always runs, even when there are failed integration tests. We rely upon this to always shut down the Docker container after the integration tests (defined as '*IT.java') are run. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <id>integration-test</id> <goals> <goal>integration-test</goal> </goals> </execution> <execution> <id>verify</id> <goals> <goal>verify</goal> </goals> </execution> </executions> <configuration> <skipTests>${skipITs}</skipTests> <enableAssertions>true</enableAssertions> <systemPropertyVariables> <!-- Make these available to the tests via system properties --> <database.hostname>${docker.host.address}</database.hostname> <database.port>${sqlserver.port}</database.port> <database.user>${sqlserver.user}</database.user> <database.password>${sqlserver.password}</database.password> <skipLongRunningTests>${skipLongRunningTests}</skipLongRunningTests> </systemPropertyVariables> </configuration> </plugin> </plugins> <resources> <!-- Apply the properties set in the POM to the resource files --> <resource> <filtering>true</filtering> <directory>src/main/resources</directory> <includes> <include>*</include> <include>**/*</include> </includes> </resource> </resources> <testResources> <testResource> <directory>src/test/resources</directory> <filtering>true</filtering> <includes> <include>*</include> <include>**/*</include> </includes> </testResource> </testResources> </build> <!-- Define several useful profiles --> <profiles> <profile> <id>assembly</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${version.assembly.plugin}</version> <dependencies> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-assembly-descriptors</artifactId> <version>${project.version}</version> </dependency> </dependencies> <executions> <execution> <id>default</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>${project.artifactId}-${project.version}</finalName> <attach>true</attach> <!-- we want attach & deploy these to Maven --> <descriptorRefs> <descriptorRef>${assembly.descriptor}</descriptorRef> </descriptorRefs> <tarLongFileMode>posix</tarLongFileMode> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Do not perform any Docker-related functionality To use, specify "-DskipITs" on the Maven command line. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <profile> <id>skip-integration-tests</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>skipITs</name> </property> </activation> <properties> <docker.skip>true</docker.skip> </properties> </profile> </profiles> </project>