You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by my...@apache.org on 2018/01/22 15:11:57 UTC
[fineract-cn-mariadb] 08/14: added replication capability to
mariadb jdbc url
This is an automated email from the ASF dual-hosted git repository.
myrle pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract-cn-mariadb.git
commit edbd5b2f2cf2612a922d0c24d7353be42cf2b716
Author: mgeiss <mg...@mifos.org>
AuthorDate: Tue Apr 25 16:24:12 2017 +0200
added replication capability to mariadb jdbc url
---
.../io/mifos/core/mariadb/util/JdbcUrlBuilder.java | 20 ++++++++++----
.../core/mariadb/util/JdbcUrlBuilderTest.java | 32 ++++++++++++++++++++--
2 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/src/main/java/io/mifos/core/mariadb/util/JdbcUrlBuilder.java b/src/main/java/io/mifos/core/mariadb/util/JdbcUrlBuilder.java
index 3c2576d..dc376c0 100644
--- a/src/main/java/io/mifos/core/mariadb/util/JdbcUrlBuilder.java
+++ b/src/main/java/io/mifos/core/mariadb/util/JdbcUrlBuilder.java
@@ -47,19 +47,29 @@ public final class JdbcUrlBuilder {
}
public String build() {
+ final String[] hostList = this.host.split(",");
switch (this.type) {
case MARIADB:
- return this.type.prefix()
- + this.host + ":"
- + this.port
- + (this.instanceName != null ? "/" + this.instanceName : "");
+ final StringBuilder jdbcUrl = new StringBuilder();
+ final String jdbcProtocol = this.type.prefix() + (hostList.length > 1 ? "replication://" : "//");
+ jdbcUrl.append(jdbcProtocol);
+ for (int i = 0; i < hostList.length; i++) {
+ jdbcUrl.append(hostList[i].trim()).append(":").append(this.port);
+ if ((i + 1) < hostList.length) {
+ jdbcUrl.append(",");
+ }
+ }
+ if (this.instanceName != null) {
+ jdbcUrl.append("/").append(this.instanceName);
+ }
+ return jdbcUrl.toString();
default:
throw new IllegalArgumentException("Unknown database type '" + this.type.name() + "'");
}
}
public enum DatabaseType {
- MARIADB("jdbc:mariadb://");
+ MARIADB("jdbc:mariadb:");
private final String prefix;
diff --git a/src/test/java/io/mifos/core/mariadb/util/JdbcUrlBuilderTest.java b/src/test/java/io/mifos/core/mariadb/util/JdbcUrlBuilderTest.java
index 550e5bc..ca8848c 100644
--- a/src/test/java/io/mifos/core/mariadb/util/JdbcUrlBuilderTest.java
+++ b/src/test/java/io/mifos/core/mariadb/util/JdbcUrlBuilderTest.java
@@ -20,21 +20,47 @@ import org.junit.Test;
public class JdbcUrlBuilderTest {
- private final static String MARIADB_JDBC_URL = "jdbc:mariadb://localhost:3306/comp_test";
-
public JdbcUrlBuilderTest() {
super();
}
@Test
public void shouldCreateMysqlUrl() {
+ final String expectedJdbcUrl = "jdbc:mariadb://localhost:3306/comp_test";
+
+ final String mariaDbJdbcUrl = JdbcUrlBuilder
+ .create(JdbcUrlBuilder.DatabaseType.MARIADB)
+ .host("localhost")
+ .port("3306")
+ .instanceName("comp_test")
+ .build();
+
+ Assert.assertEquals(expectedJdbcUrl, mariaDbJdbcUrl);
+ }
+
+ @Test
+ public void shouldCreateMysqlUrlNoInstance() {
+ final String expectedJdbcUrl = "jdbc:mariadb://localhost:3306";
+
final String mariaDbJdbcUrl = JdbcUrlBuilder
.create(JdbcUrlBuilder.DatabaseType.MARIADB)
.host("localhost")
+ .port("3306").build();
+
+ Assert.assertEquals(expectedJdbcUrl, mariaDbJdbcUrl);
+ }
+
+ @Test
+ public void shouldCreateMysqlReplicationUrl() {
+ final String expectedJdbcUrl = "jdbc:mariadb:replication://localhost:3306,anotherhost:3306/comp_test";
+
+ final String mariaDbJdbcUrl = JdbcUrlBuilder
+ .create(JdbcUrlBuilder.DatabaseType.MARIADB)
+ .host("localhost, anotherhost")
.port("3306")
.instanceName("comp_test")
.build();
- Assert.assertEquals(MARIADB_JDBC_URL, mariaDbJdbcUrl);
+ Assert.assertEquals(expectedJdbcUrl, mariaDbJdbcUrl);
}
}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
myrle@apache.org.