RedissonManager.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.pdd.core.controllo_traffico.policy.driver.redisson;
- import java.util.List;
- import org.openspcoop2.utils.UtilsException;
- import org.redisson.Redisson;
- import org.redisson.api.RedissonClient;
- import org.redisson.config.Config;
- import org.redisson.config.ReadMode;
- import org.slf4j.Logger;
- /**
- * RedissonManager
- *
- * @author Francesco Scarlato (scarlato@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class RedissonManager {
-
- private RedissonManager() {}
- private static Logger logStartup;
- private static Logger log;
-
- private static List<String> connectionUrl = null;
-
- private static final String INIZIALIZZAZIONE_FALLITA = "Inizializzazione RedissonClient fallita: ";
-
- public static synchronized void initialize(Logger logStartup, Logger log, List<String> connectionUrl) {
-
- if(RedissonManager.connectionUrl==null){
- RedissonManager.logStartup = logStartup;
- RedissonManager.log = log;
- RedissonManager.connectionUrl = connectionUrl;
- }
-
- }
-
- private static RedissonClient redisson = null;
- private static synchronized void initRedissonClient(boolean throwInitializingException) throws UtilsException {
- if(redisson==null) {
-
- RedissonManager.logStartup.info("Inizializzazione RedissonClient ...");
- RedissonManager.log.info("Inizializzazione RedissonClient ...");
-
- try {
- Config redisConf = new Config();
- redisConf.useClusterServers()
- .addNodeAddress(RedissonManager.connectionUrl.toArray(new String[1]))
- .setReadMode(ReadMode.MASTER_SLAVE)
- .setSslEnableEndpointIdentification(true);
- redisson = Redisson.create(redisConf);
- RedissonManager.logStartup.info("Inizializzazione RedissonClient effettuata con successo");
- RedissonManager.log.info("Inizializzazione RedissonClient effettuata con successo");
- }catch(Exception t) {
- if(throwInitializingException) {
- throw new UtilsException(INIZIALIZZAZIONE_FALLITA+t.getMessage(),t);
- }
- else {
- RedissonManager.logStartup.error(INIZIALIZZAZIONE_FALLITA+t.getMessage(),t);
- RedissonManager.log.error(INIZIALIZZAZIONE_FALLITA+t.getMessage(),t);
- }
- }
-
- }
- }
- public static RedissonClient getRedissonClient(boolean throwInitializingException) throws UtilsException {
- if(redisson==null) {
- initRedissonClient(throwInitializingException);
- }
- return RedissonManager.redisson;
- }
- public static boolean isRedissonClientInitialized() {
- return RedissonManager.redisson!=null;
- }
- }