tet123/pom.xml

456 lines
18 KiB
XML
Raw Normal View History

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jboss</groupId>
<artifactId>jboss-parent</artifactId>
<version>36</version>
</parent>
<groupId>io.debezium</groupId>
2021-03-11 15:36:52 +01:00
<artifactId>debezium-build-parent</artifactId>
<version>1.9.0.CR1</version>
2021-03-11 15:36:52 +01:00
<name>Debezium Build Aggregator</name>
<description>Debezium is an open source change data capture platform</description>
<packaging>pom</packaging>
2020-03-12 16:39:55 +01:00
<url>https://debezium.io</url>
<scm>
<connection>scm:git:git@github.com:debezium/debezium.git</connection>
<developerConnection>scm:git:git@github.com:debezium/debezium.git</developerConnection>
<url>https://github.com/debezium/debezium</url>
<tag>v1.9.0.CR1</tag>
</scm>
<issueManagement>
<system>jira</system>
<url>http://issues.jboss.org/browse/DBZ</url>
</issueManagement>
<licenses>
<license>
<name>Apache Software License 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>rhauch</id>
<name>Randall Hauch</name>
<organization>Red Hat</organization>
<organizationUrl>http://redhat.com</organizationUrl>
<timezone>-6</timezone>
</developer>
<developer>
<id>gunnarmorling</id>
<name>Gunnar Morling</name>
<organization>Red Hat</organization>
<organizationUrl>http://redhat.com</organizationUrl>
<timezone>+2</timezone>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Can't use the (generally preferable) release option yet, as the
Cassandra connector still needs to be built with Java 1.8 which
isn't aware of this option -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- Enforce JDK 11 for building (handled via JBoss parent POM)-->
<jdk.min.version>11</jdk.min.version>
<!-- Maven Plugins -->
2019-09-23 19:01:44 +02:00
<version.compiler.plugin>3.8.1</version.compiler.plugin>
<version.resources.plugin>3.1.0</version.resources.plugin>
<version.dependency.plugin>3.1.1</version.dependency.plugin>
<version.enforcer.plugin>3.0.0-M2</version.enforcer.plugin>
<version.jar.plugin>3.0.2</version.jar.plugin>
2019-09-23 19:01:44 +02:00
<version.source.plugin>3.1.0</version.source.plugin>
<version.assembly.plugin>3.1.1</version.assembly.plugin>
<version.war.plugin>2.5</version.war.plugin>
2019-09-23 19:01:44 +02:00
<version.google.formatter.plugin>0.4</version.google.formatter.plugin>
<version.docker.maven.plugin>0.31.0</version.docker.maven.plugin>
<version.staging.plugin>1.6.8</version.staging.plugin>
2019-08-15 16:27:55 +02:00
<version.protoc.maven.plugin>3.8.0</version.protoc.maven.plugin>
<version.javadoc.plugin>3.3.2</version.javadoc.plugin>
<version.code.formatter>2.16.0</version.code.formatter>
2019-09-23 19:01:44 +02:00
<version.surefire.plugin>3.0.0-M3</version.surefire.plugin>
<version.checkstyle.plugin>3.1.1</version.checkstyle.plugin>
2019-09-23 19:01:44 +02:00
<version.release.plugin>2.5.3</version.release.plugin>
<version.impsort>1.6.2</version.impsort>
<version.failsafe.plugin>${version.surefire.plugin}</version.failsafe.plugin>
<version.checkstyle>8.32</version.checkstyle>
2020-06-05 14:37:47 +02:00
<version.revapi.plugin>0.11.5</version.revapi.plugin>
<version.jandex>1.0.8</version.jandex>
2020-06-05 14:37:47 +02:00
<version.revapi-java.plugin>0.21.0</version.revapi-java.plugin>
<version.build-helper.plugin>1.9.1</version.build-helper.plugin>
2021-02-15 12:26:06 +01:00
<!-- Which Maven Central infra should be used -->
<release.endpoint>https://s01.oss.sonatype.org/</release.endpoint>
2021-03-16 10:22:00 +01:00
<!-- Kafka and it's dependencies MUST reflect what the Kafka version uses -->
2022-01-25 08:32:21 +01:00
<version.kafka>3.1.0</version.kafka>
<version.zookeeper>3.6.3</version.zookeeper>
<version.jackson>2.12.3</version.jackson>
<version.jackson.databind>2.12.3</version.jackson.databind>
<version.org.slf4j>1.7.30</version.org.slf4j>
<version.log4j>1.2.17</version.log4j>
2022-01-25 08:32:21 +01:00
<version.netty>4.1.68.Final</version.netty>
2021-03-16 10:22:00 +01:00
<!-- Scala version used to build Kafka -->
2022-01-25 08:32:21 +01:00
<version.kafka.scala>2.13</version.kafka.scala>
2021-03-16 10:22:00 +01:00
<!-- ANTLR -->
<!-- Align with Antlr runtime version pulled in via Quarkus -->
<version.antlr>4.8</version.antlr>
<version.antlr4test.plugin>1.18</version.antlr4test.plugin>
2021-03-16 10:22:00 +01:00
<!-- Quarkus -->
<!-- Must be aligned with Apicurio version below -->
<quarkus.version>2.7.2.Final</quarkus.version>
2021-03-16 10:22:00 +01:00
<!-- Apicurio -->
<version.apicurio>2.1.5.Final</version.apicurio>
2021-09-30 13:53:53 +02:00
<!-- Database drivers, should align with databases -->
2022-02-02 05:33:03 +01:00
<version.postgresql.driver>42.3.2</version.postgresql.driver>
<version.mysql.driver>8.0.28</version.mysql.driver>
<version.mysql.binlog>0.25.5</version.mysql.binlog>
<version.mongo.driver>4.3.3</version.mongo.driver>
<version.sqlserver.driver>9.4.1.jre8</version.sqlserver.driver>
2021-09-30 13:53:53 +02:00
<version.oracle.driver>21.1.0.0</version.oracle.driver>
<version.db2.driver>11.5.0.0</version.db2.driver>
<version.cassandra.driver>4.14.0</version.cassandra.driver>
2021-09-30 13:53:53 +02:00
<!-- Databases, should align with database drivers -->
2021-03-16 10:22:00 +01:00
<version.mysql.server>5.7</version.mysql.server>
<version.mongo.server>3.6</version.mongo.server>
<version.cassandra3>3.11.12</version.cassandra3>
<version.cassandra4>4.0.2</version.cassandra4>
2021-03-16 10:22:00 +01:00
<!-- Required in protoc plug-in config, too; can't be in BOM therefore -->
<version.com.google.protobuf>3.19.2</version.com.google.protobuf>
</properties>
<modules>
2021-03-16 10:22:00 +01:00
<module>debezium-bom</module>
<module>debezium-parent</module>
<module>support/checkstyle</module>
<module>support/ide-configs</module>
<module>support/revapi</module>
<module>debezium-api</module>
<module>debezium-ddl-parser</module>
<module>debezium-assembly-descriptors</module>
<module>debezium-core</module>
DBZ-1 Added support for recording and recovering database schema Adds a small framework for recording the DDL operations on the schema state (e.g., Tables) as they are read and applied from the log, and when restarting the connector task to recover the accumulated schema state. Where and how the DDL operations are recorded is an abstraction called `DatabaseHistory`, with three options: in-memory (primarily for testing purposes), file-based (for embedded cases and perhaps standalone Kafka Connect uses), and Kafka (for normal Kafka Connect deployments). The `DatabaseHistory` interface methods take several parameters that are used to construct a `SourceRecord`. The `SourceRecord` type was not used, however, since that would result in this interface (and potential extension mechanism) having a dependency on and exposing the Kafka API. Instead, the more general parameters are used to keep the API simple. The `FileDatabaseHistory` and `MemoryDatabaseHistory` implementations are both fairly simple, but the `FileDatabaseHistory` relies upon representing each recorded change as a JSON document. This is simple, is easily written to files, allows for recovery of data from the raw file, etc. Although this was done initially using Jackson, the code to read and write the JSON documents required a lot of boilerplate. Instead, the `Document` framework developed during Debezium's very early prototype stages was brought back. It provides a very usable API for working with documents, including the ability to compare documents semantically (e.g., numeric values are converted to be able to compare their numeric values rather than just compare representations) and with or without field order. The `KafkaDatabaseHistory` is a bit more complicated, since it uses a Kafka broker to record all database schema changes on a single topic with single partition, and then upon restart uses it to recover the history from the dedicated topics. This implementation also records the changes as JSON documents, keeping it simple and independent of the Kafka Connect converters.
2016-01-29 17:15:53 +01:00
<module>debezium-embedded</module>
<module>debezium-connector-mysql</module>
<module>debezium-connector-postgres</module>
DBZ-2 Created initial Maven module with a MongoDB connector Added a new `debezium-connector-mongodb` module that defines a MongoDB connector. The MongoDB connector can capture and record the changes within a MongoDB replica set, or when seeded with addresses of the configuration server of a MongoDB sharded cluster, the connector captures the changes from the each replica set used as a shard. In the latter case, the connector even discovers the addition of or removal of shards. The connector monitors each replica set using multiple tasks and, if needed, separate threads within each task. When a replica set is being monitored for the first time, the connector will perform an "initial sync" of that replica set's databases and collections. Once the initial sync has completed, the connector will then begin tailing the oplog of the replica set, starting at the exact point in time at which it started the initial sync. This equivalent to how MongoDB replication works. The connector always uses the replica set's primary node to tail the oplog. If the replica set undergoes an election and different node becomes primary, the connector will immediately stop tailing the oplog, connect to the new primary, and start tailing the oplog using the new primary node. Likewise, if connector experiences any problems communicating with the replica set members, it will try to reconnect (using exponential backoff so as to not overwhelm the replica set) and continue tailing the oplog from where it last left off. In this way the connector is able to dynamically adjust to changes in replica set membership and to automatically handle communication failures. The MongoDB oplog contains limited information, and in particular the events describing updates and deletes do not actually have the before or after state of the documents. Instead, the oplog events are all idempotent, so updates contain the effective changes that were made during an update, and deletes merely contain the deleted document identifier. Consequently, the connector is limited in the information it includes in its output events. Create and read events do contain the initial state, but the update contain only the changes (rather than the before and/or after states of the document) and delete events do not have the before state of the deleted document. All connector events, however, do contain the local system timestamp at which the event was processed and _source_ information detailing the origins of the event, including the replica set name, the MongoDB transaction timestamp of the event, and the transactions identifier among other things. It is possible for MongoDB to lose commits in specific failure situations. For exmaple, if the primary applies a change and records it in its oplog before it then crashes unexpectedly, the secondary nodes may not have had a chance to read those changes from the primary's oplog before the primary crashed. If one such secondary is then elected as primary, it's oplog is missing the last changes that the old primary had recorded and no longer has those changes. In these cases where MongoDB loses changes recorded in a primary's oplog, it is possible that the MongoDB connector may or may not capture these lost changes.
2016-04-19 22:49:58 +02:00
<module>debezium-connector-mongodb</module>
<module>debezium-connector-sqlserver</module>
<module>debezium-microbenchmark</module>
<module>debezium-quarkus-outbox</module>
<module>debezium-scripting</module>
<module>debezium-server</module>
<module>debezium-testing</module>
<module>debezium-connect-rest-extension</module>
<module>debezium-schema-generator</module>
</modules>
<distributionManagement>
<repository>
<id>ossrh</id>
<name>Sonatype Staging Repository</name>
2021-02-15 12:26:06 +01:00
<url>${release.endpoint}/service/local/staging/deploy/maven2</url>
</repository>
<snapshotRepository>
<id>ossrh</id>
<name>OSS Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<repositories>
<repository>
<id>confluent</id>
<name>Confluent</name>
<url>https://packages.confluent.io/maven/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
<repository>
<id>ossrh</id>
2019-09-23 19:01:44 +02:00
<name>OSS Sonatype Nexus</name>
2021-02-15 12:26:06 +01:00
<url>${release.endpoint}/content/groups/public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${version.enforcer.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${version.compiler.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${version.source.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${version.javadoc.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${version.release.plugin}</version>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${version.staging.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.surefire.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${version.checkstyle.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${version.surefire.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${version.resources.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${version.dependency.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${version.gpg.plugin}</version>
</plugin>
2020-06-05 14:37:47 +02:00
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${version.build-helper.plugin}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<pushChanges>false</pushChanges>
<releaseProfiles>docs,assembly,release-sign-artifacts,release</releaseProfiles>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
2021-02-15 12:26:06 +01:00
<nexusUrl>${release.endpoint}</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
2020-09-08 10:37:58 +02:00
<version>3.6.3</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>qa</id>
<activation>
<property>
<name>!quick</name>
</property>
</activation>
</profile>
2021-04-21 12:32:40 +02:00
<profile>
<id>quick</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>quick</name>
</property>
</activation>
2021-04-21 12:32:40 +02:00
<properties>
<skipTests>true</skipTests>
</properties>
</profile>
<profile>
<id>assembly</id>
<properties>
<skipLongRunningTests>false</skipLongRunningTests>
</properties>
</profile>
<profile>
<id>release</id>
<properties>
<skipLongRunningTests>false</skipLongRunningTests>
</properties>
</profile>
<profile>
<id>performance</id>
<properties>
<skipLongRunningTests>false</skipLongRunningTests>
</properties>
</profile>
<profile>
<id>docs</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>docs</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${version.javadoc.plugin}</version>
<configuration>
<show>private</show>
<nohelp>true</nohelp>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>attach-test-javadocs</id>
<goals>
<goal>test-jar</goal>
</goals>
</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>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdk11</id>
<activation>
<jdk>11</jdk>
</activation>
<properties>
<modules.argline>--illegal-access=permit</modules.argline>
<maven.compiler.release>8</maven.compiler.release>
</properties>
</profile>
<profile>
<id>oracle</id>
<modules>
<module>debezium-connector-oracle</module>
<module>debezium-microbenchmark-oracle</module>
</modules>
</profile>
</profiles>
</project>