Skip to content

Commit 2c8ce79

Browse files
author
rezra3
committed
codeine-218 connection pool is created every time in every task
1 parent b8648f4 commit 2c8ce79

4 files changed

+65
-34
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,43 @@
11
package codeine.db.mysql.connectors;
22

3-
import java.util.List;
4-
5-
import javax.inject.Inject;
6-
73
import codeine.db.mysql.DbUtils;
84
import codeine.db.mysql.StaticMysqlHostSelector;
95
import codeine.jsons.global.ExperimentalConfJsonStore;
106
import codeine.jsons.global.GlobalConfigurationJsonStore;
117
import codeine.jsons.global.MysqlConfigurationJson;
12-
138
import com.google.common.collect.Lists;
9+
import com.google.common.collect.Maps;
1410
import com.google.gson.Gson;
11+
import java.util.List;
12+
import java.util.Map;
13+
import javax.inject.Inject;
1514

1615
public class AlertsMysqlConnectorDatabaseConnectorListProvider {
17-
18-
@Inject private GlobalConfigurationJsonStore globalConfigurationJsonStore;
19-
@Inject private Gson gson;
20-
@Inject private ExperimentalConfJsonStore webConfJsonStore;
21-
22-
public List<AlertsMysqlConnector> get() {
23-
List<AlertsMysqlConnector> $ = Lists.newArrayList();
24-
for (MysqlConfigurationJson m : globalConfigurationJsonStore.get().mysql()) {
25-
DbUtils dbUtils = new DbUtils(new StaticMysqlHostSelector(m), globalConfigurationJsonStore);
26-
AlertsMysqlConnector c = new AlertsMysqlConnector(dbUtils, gson, webConfJsonStore);
27-
$.add(c);
28-
}
29-
return $;
30-
}
31-
32-
33-
34-
16+
17+
@Inject
18+
private GlobalConfigurationJsonStore globalConfigurationJsonStore;
19+
@Inject
20+
private Gson gson;
21+
@Inject
22+
private ExperimentalConfJsonStore webConfJsonStore;
23+
24+
private Map<MysqlConfigurationJson, DbUtils> dbUtilsMap = Maps.newHashMap();
25+
26+
public List<AlertsMysqlConnector> get() {
27+
List<AlertsMysqlConnector> $ = Lists.newArrayList();
28+
for (MysqlConfigurationJson m : globalConfigurationJsonStore.get().mysql()) {
29+
DbUtils dbUtils = getDbUtils(m);
30+
AlertsMysqlConnector c = new AlertsMysqlConnector(dbUtils, gson, webConfJsonStore);
31+
$.add(c);
32+
}
33+
return $;
34+
}
35+
36+
private DbUtils getDbUtils(MysqlConfigurationJson m) {
37+
return dbUtilsMap.computeIfAbsent(m,
38+
mysqlConfigurationJson -> new DbUtils(new StaticMysqlHostSelector(m),
39+
globalConfigurationJsonStore));
40+
}
41+
3542

3643
}

src/common/codeine/db/mysql/connectors/NotificationsMysqlConnectorDatabaseConnectorListProvider.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package codeine.db.mysql.connectors;
22

3+
import com.google.common.collect.Maps;
34
import java.util.List;
45

6+
import java.util.Map;
57
import javax.inject.Inject;
68

79
import codeine.configuration.FeatureFlags;
@@ -16,25 +18,33 @@
1618

1719
public class NotificationsMysqlConnectorDatabaseConnectorListProvider {
1820

19-
@Inject
20-
private GlobalConfigurationJsonStore globalConfigurationJsonStore;
2121
@Inject
2222
private Gson gson;
2323
@Inject
2424
private ExperimentalConfJsonStore webConfJsonStore;
2525
@Inject
2626
private FeatureFlags featureFlags;
27+
@Inject
28+
private GlobalConfigurationJsonStore globalConfigurationJsonStore;
29+
30+
private Map<MysqlConfigurationJson, DbUtils> dbUtilsMap = Maps.newHashMap();
2731

2832
public List<NotificationsMysqlConnector> get() {
2933
List<NotificationsMysqlConnector> $ = Lists.newArrayList();
3034
for (MysqlConfigurationJson m : globalConfigurationJsonStore.get().mysql()) {
31-
DbUtils dbUtils = new DbUtils(new StaticMysqlHostSelector(m), globalConfigurationJsonStore);
35+
DbUtils dbUtils = getDbUtils(m);
3236
NotificationsMysqlConnector c = new NotificationsMysqlConnector(dbUtils, gson,
3337
webConfJsonStore, featureFlags);
3438
$.add(c);
3539
}
3640
return $;
3741
}
3842

43+
private DbUtils getDbUtils(MysqlConfigurationJson m) {
44+
return dbUtilsMap.computeIfAbsent(m,
45+
mysqlConfigurationJson -> new DbUtils(new StaticMysqlHostSelector(m),
46+
globalConfigurationJsonStore));
47+
}
48+
3949

4050
}

src/common/codeine/db/mysql/connectors/ProjectConfigurationDatabaseConnectorListProvider.java

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package codeine.db.mysql.connectors;
22

3+
import com.google.common.collect.Maps;
34
import java.util.List;
45

6+
import java.util.Map;
57
import javax.inject.Inject;
68

79
import codeine.db.ProjectsConfigurationConnector;
@@ -20,18 +22,23 @@ public class ProjectConfigurationDatabaseConnectorListProvider {
2022
@Inject private Gson gson;
2123
@Inject private ExperimentalConfJsonStore webConfJsonStore;
2224

25+
private Map<MysqlConfigurationJson, DbUtils> dbUtilsMap = Maps.newHashMap();
26+
2327
public List<ProjectsConfigurationConnector> get() {
2428
List<ProjectsConfigurationConnector> $ = Lists.newArrayList();
2529
for (MysqlConfigurationJson m : globalConfigurationJsonStore.get().mysql()) {
26-
DbUtils dbUtils = new DbUtils(new StaticMysqlHostSelector(m), globalConfigurationJsonStore);
30+
DbUtils dbUtils = getDbUtils(m);
2731
ProjectsConfigurationConnector c = new ProjectsConfigurationMysqlConnector(dbUtils, gson, webConfJsonStore);
2832
$.add(c);
2933
}
3034
return $;
3135
}
3236

33-
34-
35-
37+
private DbUtils getDbUtils(MysqlConfigurationJson m) {
38+
return dbUtilsMap.computeIfAbsent(m,
39+
mysqlConfigurationJson -> new DbUtils(new StaticMysqlHostSelector(m),
40+
globalConfigurationJsonStore));
41+
}
42+
3643

3744
}

src/common/codeine/db/mysql/connectors/StatusDatabaseConnectorListProvider.java

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package codeine.db.mysql.connectors;
22

3+
import com.google.common.collect.Maps;
34
import java.util.List;
45

6+
import java.util.Map;
57
import javax.inject.Inject;
68

79
import codeine.db.IStatusDatabaseConnector;
@@ -20,18 +22,23 @@ public class StatusDatabaseConnectorListProvider {
2022
@Inject private Gson gson;
2123
@Inject private ExperimentalConfJsonStore webConfJsonStore;
2224

25+
private Map<MysqlConfigurationJson, DbUtils> dbUtilsMap = Maps.newHashMap();
26+
2327
public List<IStatusDatabaseConnector> get() {
2428
List<IStatusDatabaseConnector> $ = Lists.newArrayList();
2529
for (MysqlConfigurationJson m : globalConfigurationJsonStore.get().mysql()) {
26-
DbUtils dbUtils = new DbUtils(new StaticMysqlHostSelector(m), globalConfigurationJsonStore);
30+
DbUtils dbUtils = getDbUtils(m);
2731
IStatusDatabaseConnector c = new StatusMysqlConnector(dbUtils, gson, webConfJsonStore);
2832
$.add(c);
2933
}
3034
return $;
3135
}
3236

33-
34-
35-
37+
private DbUtils getDbUtils(MysqlConfigurationJson m) {
38+
return dbUtilsMap.computeIfAbsent(m,
39+
mysqlConfigurationJson -> new DbUtils(new StaticMysqlHostSelector(m),
40+
globalConfigurationJsonStore));
41+
}
42+
3643

3744
}

0 commit comments

Comments
 (0)