package com.lordofthejars.nosqlunit.infinispan; import java.util.Properties; import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; import org.infinispan.commons.api.BasicCache; import org.infinispan.client.hotrod.RemoteCacheManager; public class RemoteInfinispanConfigurationBuilder { private final InfinispanConfiguration infinispanConfiguration; private RemoteInfinispanConfigurationBuilder() { super(); this.infinispanConfiguration = new InfinispanConfiguration(); } public static RemoteInfinispanConfigurationBuilder newRemoteInfinispanConfiguration() { return new RemoteInfinispanConfigurationBuilder(); } public RemoteInfinispanConfigurationBuilder connectionIdentifier(String connectionIdentifier) { this.infinispanConfiguration.setConnectionIdentifier(connectionIdentifier); return this; } public RemoteInfinispanConfigurationBuilder cacheName(String cacheName) { this.infinispanConfiguration.setCacheName(cacheName); return this; } public RemoteInfinispanConfigurationBuilder host(String host) { this.infinispanConfiguration.setHost(host); return this; } public RemoteInfinispanConfigurationBuilder port(int port) { this.infinispanConfiguration.setPort(port); return this; } public RemoteInfinispanConfigurationBuilder configurationProperties(Properties configurationProperties) { this.infinispanConfiguration.setConfigurationProperties(configurationProperties); return this; } public InfinispanConfiguration build() { ConfigurationBuilder builder = new ConfigurationBuilder(); if (this.infinispanConfiguration.getConfigurationProperties() != null) builder.withProperties(this.infinispanConfiguration.getConfigurationProperties()); RemoteCacheManager remoteCacheManager = new RemoteCacheManager(builder.build()); BasicCache<Object, Object> basicCache = this.infinispanConfiguration.getCacheName() == null ? remoteCacheManager.getCache() : remoteCacheManager.getCache(this.infinispanConfiguration.getCacheName()); this.infinispanConfiguration.setCache(basicCache); return this.infinispanConfiguration; } }