Add keepalive property to config, part 1

This commit is contained in:
PikaMug 2022-01-09 12:14:33 -05:00
parent 613ba96e34
commit 731d21deb7
4 changed files with 22 additions and 11 deletions

View File

@ -12,7 +12,6 @@
package me.blackvein.quests.storage;
import com.google.common.collect.ImmutableSet;
import me.blackvein.quests.Quests;
import me.blackvein.quests.storage.implementation.StorageImplementation;
import me.blackvein.quests.storage.implementation.custom.CustomStorageProviders;
@ -23,8 +22,8 @@ import me.blackvein.quests.storage.misc.StorageCredentials;
import org.bukkit.configuration.file.FileConfiguration;
import java.io.File;
import java.util.Collections;
import java.util.Set;
import java.util.HashMap;
import java.util.Map;
public class StorageFactory {
private final Quests plugin;
@ -33,11 +32,6 @@ public class StorageFactory {
this.plugin = plugin;
}
public Set<StorageType> getRequiredTypes() {
return ImmutableSet.of(StorageType.parse(plugin.getConfig().getString("storage-method.player-data", "yaml"),
StorageType.YAML));
}
public Storage getInstance() {
final Storage storage;
final StorageType type = StorageType.parse(plugin.getConfig().getString("storage-method.player-data", "yaml"),
@ -71,14 +65,20 @@ public class StorageFactory {
fc.getInt("storage-data.pool-size", 10));
final int minIdle = fc.getInt("storage-data.pool-settings.min-idle", maxPoolSize);
final int maxLifetime = fc.getInt("storage-data.pool-settings.max-lifetime", 1800000);
final int keepAliveTime = fc.getInt("storage-data.pool-settings.keepalive-time", 0);
final int connectionTimeout = fc.getInt("storage-data.pool-settings.connection-timeout", 5000);
final boolean useUnicode = fc.getBoolean("storage-data.pool-settings.properties.useUnicode", true);
final String characterEncoding = fc.getString("storage-data.pool-settings.properties.characterEncoding", "utf8");
Map<String, String> props = new HashMap<>();
props.put("useUnicode", String.valueOf(useUnicode));
props.put("characterEncoding", characterEncoding);
return new StorageCredentials(
fc.getString("storage-data.address", null),
fc.getString("storage-data.database", null),
fc.getString("storage-data.username", null),
fc.getString("storage-data.password", null),
maxPoolSize, minIdle, maxLifetime, connectionTimeout, Collections.singletonMap("true", "utf8")
maxPoolSize, minIdle, maxLifetime, keepAliveTime, connectionTimeout, props
);
}
}

View File

@ -101,6 +101,7 @@ public abstract class HikariConnectionFactory implements ConnectionFactory {
config.setMaximumPoolSize(this.configuration.getMaxPoolSize());
config.setMinimumIdle(this.configuration.getMinIdleConnections());
config.setMaxLifetime(this.configuration.getMaxLifetime());
//config.setKeepaliveTime(this.configuration.getKeepAliveTime());
config.setConnectionTimeout(this.configuration.getConnectionTimeout());
hikari = new HikariDataSource(config);

View File

@ -24,12 +24,13 @@ public class StorageCredentials {
private final int maxPoolSize;
private final int minIdleConnections;
private final int maxLifetime;
private final int keepAliveTime;
private final int connectionTimeout;
private final Map<String, String> properties;
public StorageCredentials(final String address, final String database, final String username, final String password,
final int maxPoolSize, final int minIdleConnections, final int maxLifetime, final int connectionTimeout,
final Map<String, String> properties) {
final int maxPoolSize, final int minIdleConnections, final int maxLifetime, final int keepAliveTime,
final int connectionTimeout, final Map<String, String> properties) {
this.address = address;
this.database = database;
this.username = username;
@ -37,6 +38,7 @@ public class StorageCredentials {
this.maxPoolSize = maxPoolSize;
this.minIdleConnections = minIdleConnections;
this.maxLifetime = maxLifetime;
this.keepAliveTime = keepAliveTime;
this.connectionTimeout = connectionTimeout;
this.properties = properties;
}
@ -69,6 +71,10 @@ public class StorageCredentials {
return maxLifetime;
}
public int getKeepAliveTime() {
return keepAliveTime;
}
public int getConnectionTimeout() {
return connectionTimeout;
}

View File

@ -29,7 +29,11 @@ storage-data:
max-pool-size: 10
min-idle: 10
max-lifetime: 1800000
keepalive-time: 0
connection-timeout: 5000
properties:
useUnicode: true
characterEncoding: utf8
storage-method:
player-data: yaml
trial-save: false