All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tenio.interstellar.mongo.config.parser.ConnectionPoolSettingsParser Maven / Gradle / Ivy

package org.tenio.interstellar.mongo.config.parser;

import com.mongodb.ConnectionString;
import com.mongodb.connection.ConnectionPoolSettings;
import org.tenio.interstellar.mongo.config.MongoClientProperties;

import static java.util.concurrent.TimeUnit.MILLISECONDS;

/**
 * TODO
 * 

* @author: Ban Tenio * @version: 1.0 */ public class ConnectionPoolSettingsParser { private final ConnectionPoolSettings settings; /** * * TODO * * @param connectionString TODO * @param config TODO */ public ConnectionPoolSettingsParser(ConnectionString connectionString, MongoClientProperties config) { ConnectionPoolSettings.Builder settings = ConnectionPoolSettings.builder(); MongoClientProperties.ConnectionPoolProperties poolProperties = config.getPool(); if (connectionString != null) { settings.applyConnectionString(connectionString); } else { Integer maxPoolSize = poolProperties.getMaxPoolSize(); if (maxPoolSize != null) { settings.maxSize(maxPoolSize); } Integer minPoolSize = poolProperties.getMinPoolSize(); if (minPoolSize != null) { settings.minSize(minPoolSize); } Long maxIdleTimeMS = poolProperties.getMaxIdleTimeMS(); if (maxIdleTimeMS != null) { settings.maxConnectionIdleTime(maxIdleTimeMS, MILLISECONDS); } Long maxLifeTimeMS = poolProperties.getMaxLifeTimeMS(); if (maxLifeTimeMS != null) { settings.maxConnectionLifeTime(maxLifeTimeMS, MILLISECONDS); } Long waitQueueTimeoutMS = poolProperties.getWaitQueueTimeoutMS(); if (waitQueueTimeoutMS != null) { settings.maxWaitTime(waitQueueTimeoutMS, MILLISECONDS); } Long maintenanceInitialDelayMS = poolProperties.getMaintenanceInitialDelayMS(); if (maintenanceInitialDelayMS != null) { settings.maintenanceInitialDelay(maintenanceInitialDelayMS, MILLISECONDS); } Long maintenanceFrequencyMS = poolProperties.getMaintenanceFrequencyMS(); if (maintenanceFrequencyMS != null) { settings.maintenanceFrequency(maintenanceFrequencyMS, MILLISECONDS); } } this.settings = settings.build(); } /** * TODO * * @return TODO */ public ConnectionPoolSettings settings() { return settings; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy