DBZ-2808 Add Mongo DB default config helper to ConnectorConfiguration

This commit is contained in:
rkerner 2020-12-07 16:40:33 +01:00 committed by Gunnar Morling
parent 277b6bc100
commit e85ae93fbc
2 changed files with 19 additions and 0 deletions

View File

@ -45,6 +45,10 @@
<groupId>org.testcontainers</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>

View File

@ -8,6 +8,7 @@
import java.util.List;
import org.testcontainers.containers.JdbcDatabaseContainer;
import org.testcontainers.containers.MongoDBContainer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -38,10 +39,12 @@ static ConnectorConfiguration from(JsonNode configNode) {
private static final String CONNECTOR = "connector.class";
private static final String HOSTNAME = "database.hostname";
private static final String HOSTS = "mongodb.hosts";
private static final String PORT = "database.port";
private static final String USER = "database.user";
private static final String PASSWORD = "database.password";
private static final String DBNAME = "database.dbname";
private static final String AUTO_DISCOVER_MEMBERS = "mongodb.members.auto.discover";
public static ConnectorConfiguration forJdbcContainer(JdbcDatabaseContainer<?> jdbcDatabaseContainer) {
ConnectorConfiguration configuration = new ConnectorConfiguration();
@ -65,6 +68,18 @@ public static ConnectorConfiguration forJdbcContainer(JdbcDatabaseContainer<?> j
return configuration;
}
public static ConnectorConfiguration forMongoDbContainer(MongoDBContainer mongoDbContainer) {
final List<Integer> exposedPorts = mongoDbContainer.getExposedPorts();
ConnectorConfiguration configuration = new ConnectorConfiguration();
configuration.with(CONNECTOR, "io.debezium.connector.mongodb.MongoDbConnector")
.with(HOSTS, "rs0/" + mongoDbContainer.getContainerInfo().getConfig().getHostName()
+ ":" + exposedPorts.get(0))
.with(AUTO_DISCOVER_MEMBERS, false);
return configuration;
}
private static boolean isMySQL(String driverClassName) {
return "com.mysql.cj.jdbc.Driver".equals(driverClassName) || "com.mysql.jdbc.Driver".equals(driverClassName);
}