001package com.nimbusds.infinispan.persistence.sql; 002 003 004import java.util.Properties; 005 006import net.jcip.annotations.Immutable; 007 008 009/** 010 * Hikari connection pool name. 011 */ 012@Immutable 013public final class HikariPoolName { 014 015 016 /** 017 * The connection pool name. 018 */ 019 private final String poolName; 020 021 022 /** 023 * Creates a new Hikari connection pool name. 024 * 025 * @param poolName The name. Must not be {@code null}. 026 */ 027 private HikariPoolName(final String poolName) { 028 assert poolName != null; 029 this.poolName = poolName; 030 } 031 032 033 @Override 034 public String toString() { 035 return poolName; 036 } 037 038 039 /** 040 * Sets a default poolName property as "cacheName.sqlStore". 041 * 042 * @param props The Hikari properties. Must not be {@code null}. 043 * @param cacheName The configured Infinispan cache name. Must not be 044 * {@code null}. 045 * 046 * @return The set pool name. 047 */ 048 public static HikariPoolName setDefaultPoolName(final Properties props, final String cacheName) { 049 050 if (props.containsKey("poolName")) { 051 return new HikariPoolName(props.getProperty("poolName")); 052 } 053 054 HikariPoolName poolName = new HikariPoolName(cacheName + ".sqlStore"); 055 056 props.setProperty("poolName", poolName.toString()); 057 058 return poolName; 059 } 060}