DBZ-5042 Add abstract partition with DB name
DB names is used by logging facilities. As the DB name is required only for relational DBs, also this abstract class is provided only for relational DB connectors. Use this abstract class for SQL server connector, where DB name logging is already implemented.
This commit is contained in:
parent
c067e20fbe
commit
5550057034
@ -18,21 +18,20 @@
|
||||
|
||||
import io.debezium.config.Configuration;
|
||||
import io.debezium.pipeline.spi.Partition;
|
||||
import io.debezium.relational.AbstractPartition;
|
||||
import io.debezium.util.Collect;
|
||||
import io.debezium.util.LoggingContext;
|
||||
|
||||
public class SqlServerPartition implements Partition {
|
||||
public class SqlServerPartition extends AbstractPartition implements Partition {
|
||||
private static final String SERVER_PARTITION_KEY = "server";
|
||||
private static final String DATABASE_PARTITION_KEY = "database";
|
||||
|
||||
private final String serverName;
|
||||
private final String databaseName;
|
||||
private final Map<String, String> sourcePartition;
|
||||
private final int hashCode;
|
||||
|
||||
public SqlServerPartition(String serverName, String databaseName, boolean multiPartitionMode) {
|
||||
super(databaseName);
|
||||
this.serverName = serverName;
|
||||
this.databaseName = databaseName;
|
||||
|
||||
this.sourcePartition = Collect.hashMapOf(SERVER_PARTITION_KEY, serverName);
|
||||
if (multiPartitionMode) {
|
||||
@ -47,11 +46,6 @@ public Map<String, String> getSourcePartition() {
|
||||
return sourcePartition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getLoggingContext() {
|
||||
return Collections.singletonMap(LoggingContext.DATABASE_NAME, databaseName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the SQL Server database name corresponding to the partition.
|
||||
*/
|
||||
|
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright Debezium Authors.
|
||||
*
|
||||
* Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
package io.debezium.relational;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import io.debezium.pipeline.spi.Partition;
|
||||
import io.debezium.util.LoggingContext;
|
||||
|
||||
/**
|
||||
* An abstract implementation of {@link io.debezium.pipeline.spi.Partition} which provides default facilities for logging.
|
||||
*
|
||||
* @author vjuranek
|
||||
*/
|
||||
public abstract class AbstractPartition implements Partition {
|
||||
|
||||
protected final String databaseName;
|
||||
|
||||
public AbstractPartition(String databaseName) {
|
||||
this.databaseName = databaseName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getLoggingContext() {
|
||||
return Collections.singletonMap(LoggingContext.DATABASE_NAME, databaseName);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user