Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ public JdbcMachineIdInitializer(DataSource dataSource) {

public JdbcMachineIdInitializer(DataSource dataSource, String initCosIdMachineTableSql, String initNamespaceIdxSql, String initInstanceIdIdxSql) {
this.dataSource = dataSource;
this.initCosIdMachineTableSql = initCosIdMachineTableSql;
this.initNamespaceIdxSql = initNamespaceIdxSql;
this.initInstanceIdIdxSql = initInstanceIdIdxSql;
this.initCosIdMachineTableSql = emptyToDefault(initCosIdMachineTableSql, INIT_COSID_MACHINE_TABLE_SQL);
this.initNamespaceIdxSql = emptyToDefault(initNamespaceIdxSql, INIT_NAMESPACE_IDX_SQL);
this.initInstanceIdIdxSql = emptyToDefault(initInstanceIdIdxSql, INIT_INSTANCE_ID_IDX_SQL);
}

public void initCosIdMachineTable() throws SQLException {
Expand Down Expand Up @@ -93,4 +93,8 @@ public boolean tryInitCosIdMachineTable() {
return false;
}
}

private static String emptyToDefault(final String str, final String defaultValue) {
return str == null || str.isEmpty() ? defaultValue : str;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
package me.ahoo.cosid.spring.boot.starter.machine;

import me.ahoo.cosid.jdbc.JdbcMachineIdDistributor;
import me.ahoo.cosid.jdbc.JdbcMachineIdInitializer;
import me.ahoo.cosid.machine.ClockBackwardsSynchronizer;
import me.ahoo.cosid.machine.MachineStateStorage;
import me.ahoo.cosid.spring.boot.starter.ConditionalOnCosIdEnabled;
Expand All @@ -40,11 +41,17 @@
@ConditionalOnClass(JdbcMachineIdDistributor.class)
@ConditionalOnProperty(value = MachineProperties.Distributor.TYPE, havingValue = "jdbc")
public class CosIdJdbcMachineIdDistributorAutoConfiguration {

@Bean
@ConditionalOnMissingBean
public JdbcMachineIdDistributor jdbcMachineIdDistributor(DataSource dataSource, MachineStateStorage localMachineState, ClockBackwardsSynchronizer clockBackwardsSynchronizer) {
public JdbcMachineIdDistributor jdbcMachineIdDistributor(DataSource dataSource, MachineStateStorage localMachineState,
ClockBackwardsSynchronizer clockBackwardsSynchronizer, MachineProperties machineProperties) {
final MachineProperties.Jdbc jdbc = machineProperties.getDistributor().getJdbc();
if (jdbc.isEndableJdbcMachineIdInitializer()) {
new JdbcMachineIdInitializer(dataSource, jdbc.getInitCosIdMachineTableSql(),
jdbc.getInitNamespaceIdxSql(), jdbc.getInitInstanceIdIdxSql())
.tryInitCosIdMachineTable();
}
return new JdbcMachineIdDistributor(dataSource, localMachineState, clockBackwardsSynchronizer);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -166,10 +166,12 @@ public static class Distributor {
private MachineProperties.Manual manual;
private MachineProperties.Redis redis;
private MachineProperties.Mongo mongo;

private MachineProperties.Jdbc jdbc;

public Distributor() {
this.redis = new MachineProperties.Redis();
this.mongo = new MachineProperties.Mongo();
this.jdbc = new MachineProperties.Jdbc();
}

public MachineProperties.Distributor.Type getType() {
Expand Down Expand Up @@ -203,6 +205,14 @@ public Mongo getMongo() {
public void setMongo(Mongo mongo) {
this.mongo = mongo;
}

public Jdbc getJdbc() {
return jdbc;
}

public void setJdbc(Jdbc jdbc) {
this.jdbc = jdbc;
}

public enum Type {
MANUAL,
Expand Down Expand Up @@ -318,4 +328,44 @@ public void setBrokenThreshold(int brokenThreshold) {
this.brokenThreshold = brokenThreshold;
}
}

public static class Jdbc {

private boolean endableJdbcMachineIdInitializer;
private String initCosIdMachineTableSql;
private String initNamespaceIdxSql;
private String initInstanceIdIdxSql;

public void setEndableJdbcMachineIdInitializer(boolean endableJdbcMachineIdInitializer) {
this.endableJdbcMachineIdInitializer = endableJdbcMachineIdInitializer;
}

public boolean isEndableJdbcMachineIdInitializer() {
return endableJdbcMachineIdInitializer;
}

public void setInitCosIdMachineTableSql(String initCosIdMachineTableSql) {
this.initCosIdMachineTableSql = initCosIdMachineTableSql;
}

public String getInitCosIdMachineTableSql() {
return initCosIdMachineTableSql;
}

public void setInitNamespaceIdxSql(String initNamespaceIdxSql) {
this.initNamespaceIdxSql = initNamespaceIdxSql;
}

public String getInitNamespaceIdxSql() {
return initNamespaceIdxSql;
}

public void setInitInstanceIdIdxSql(String initInstanceIdIdxSql) {
this.initInstanceIdIdxSql = initInstanceIdIdxSql;
}

public String getInitInstanceIdIdxSql() {
return initInstanceIdIdxSql;
}
}
}