package org.infinispan.server.router.utils; import java.net.InetAddress; import org.infinispan.client.hotrod.RemoteCacheManager; import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; public class HotRodClientTestingUtil { public static RemoteCacheManager createWithSni(InetAddress ip, int port, String sniHostName, String trustorePath, char[] password) { ConfigurationBuilder clientBuilder = new ConfigurationBuilder(); clientBuilder = withIpAndPort(clientBuilder, ip, port); clientBuilder = withSni(clientBuilder, sniHostName, trustorePath, password); clientBuilder = withSingleConnection(clientBuilder); return new RemoteCacheManager(clientBuilder.build()); } public static RemoteCacheManager createWithSsl(InetAddress ip, int port, String trustorePath, char[] password) { ConfigurationBuilder clientBuilder = new ConfigurationBuilder(); clientBuilder = withIpAndPort(clientBuilder, ip, port); clientBuilder = withSsl(clientBuilder, trustorePath, password); clientBuilder = withSingleConnection(clientBuilder); return new RemoteCacheManager(clientBuilder.build()); } public static RemoteCacheManager createNoAuth(InetAddress ip, int port) { ConfigurationBuilder clientBuilder = new ConfigurationBuilder(); clientBuilder = withIpAndPort(clientBuilder, ip, port); clientBuilder = withSingleConnection(clientBuilder); return new RemoteCacheManager(clientBuilder.build()); } private static ConfigurationBuilder withIpAndPort(ConfigurationBuilder cb, InetAddress ip, int port) { cb.addServer() .host(ip.getHostAddress()) .port(port); return cb; } private static ConfigurationBuilder withSsl(ConfigurationBuilder cb, String trustorePath, char[] password) { cb.security() .ssl() .enabled(true) .trustStoreFileName(trustorePath) .trustStorePassword(password); return cb; } private static ConfigurationBuilder withSingleConnection(ConfigurationBuilder cb) { cb.maxRetries(0); return cb; } private static ConfigurationBuilder withSni(ConfigurationBuilder cb, String sniHostName, String trustorePath, char[] password) { cb = withSsl(cb, trustorePath, password); cb.security().ssl().sniHostName(sniHostName); return cb; } }