diff --git a/search-service-image-v1/pom.xml b/search-service-image-v1/pom.xml
index a94c137..03c33e6 100644
--- a/search-service-image-v1/pom.xml
+++ b/search-service-image-v1/pom.xml
@@ -12,7 +12,7 @@
search-service-image-v1
com.iqser.red.service
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
pom
diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/Connection.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/Connection.java
deleted file mode 100644
index 5e54ed9..0000000
--- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/Connection.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.iqser.red.service.search.v1.server.model;
-
-import com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy.SearchConnection;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@Builder
-@AllArgsConstructor
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
-public class Connection {
-
- @EqualsAndHashCode.Include
- private String hosts;
- private SearchConnection searchConnection;
-
-}
diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/elasticsearch/EsClientCache.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/elasticsearch/EsClientCache.java
index 6c20399..d8a673b 100644
--- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/elasticsearch/EsClientCache.java
+++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/elasticsearch/EsClientCache.java
@@ -1,7 +1,6 @@
package com.iqser.red.service.search.v1.server.service.elasticsearch;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -12,7 +11,6 @@ import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.common.cache.RemovalListener;
import com.iqser.red.service.search.v1.server.client.TenantsClient;
-import com.iqser.red.service.search.v1.server.model.Connection;
import com.iqser.red.service.search.v1.server.multitenancy.EncryptionDecryptionService;
import com.iqser.red.service.search.v1.server.multitenancy.TenantContext;
@@ -37,37 +35,29 @@ public class EsClientCache {
@Value("${multitenancy.client-cache.expireAfterAccess:10}")
private Integer expireAfterAccess;
- private LoadingCache connections;
- private LoadingCache clients;
+ private LoadingCache clients;
@PostConstruct
protected void createCache() {
- connections = CacheBuilder.newBuilder().maximumSize(maximumSize).expireAfterAccess(expireAfterAccess, TimeUnit.MINUTES).build(new CacheLoader<>() {
- public Connection load(String tenantId) {
-
- var tenant = tenantsClient.getTenant(tenantId);
- var hostsAsString = tenant.getSearchConnection().getHosts().stream().collect(Collectors.joining());
- return Connection.builder().hosts(hostsAsString).searchConnection(tenant.getSearchConnection()).build();
- }
- });
-
clients = CacheBuilder.newBuilder()
.maximumSize(maximumSize)
.expireAfterAccess(expireAfterAccess, TimeUnit.MINUTES)
- .removalListener((RemovalListener) removal -> {
+ .removalListener((RemovalListener) removal -> {
removal.getValue().shutdown();
- log.info("Closed elasticsearch client for tenant {}", removal.getKey().getHosts());
+ log.info("Closed elasticsearch client for tenant {}", removal.getKey());
})
.build(new CacheLoader<>() {
- public EsClient load(Connection key) {
+ public EsClient load(String tenantId) {
- if (key.getSearchConnection().getPassword() != null) {
- key.getSearchConnection().setPassword(encryptionDecryptionService.decrypt(key.getSearchConnection().getPassword()));
+ var tenant = tenantsClient.getTenant(tenantId);
+
+ if (tenant.getSearchConnection().getPassword() != null) {
+ tenant.getSearchConnection().setPassword(encryptionDecryptionService.decrypt(tenant.getSearchConnection().getPassword()));
}
- var client = new EsClient(key.getSearchConnection());
- log.info("Initialized elasticsearch client for tenant {}", key);
+ var client = new EsClient(tenant.getSearchConnection());
+ log.info("Initialized elasticsearch client for tenant {}", tenantId);
indexCreatorService.createIndex(client);
return client;
}
@@ -78,8 +68,7 @@ public class EsClientCache {
@SneakyThrows
public EsClient getClient() {
- var connection = connections.get(TenantContext.getTenantId());
- return clients.get(connection);
+ return clients.get(TenantContext.getTenantId());
}
}
\ No newline at end of file
diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/opensearch/OpensearchClientCache.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/opensearch/OpensearchClientCache.java
index b81989a..13f8688 100644
--- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/opensearch/OpensearchClientCache.java
+++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/opensearch/OpensearchClientCache.java
@@ -1,7 +1,6 @@
package com.iqser.red.service.search.v1.server.service.opensearch;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -12,7 +11,6 @@ import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.common.cache.RemovalListener;
import com.iqser.red.service.search.v1.server.client.TenantsClient;
-import com.iqser.red.service.search.v1.server.model.Connection;
import com.iqser.red.service.search.v1.server.multitenancy.EncryptionDecryptionService;
import com.iqser.red.service.search.v1.server.multitenancy.TenantContext;
@@ -37,37 +35,29 @@ public class OpensearchClientCache {
@Value("${multitenancy.client-cache.expireAfterAccess:10}")
private Integer expireAfterAccess;
- private LoadingCache connections;
- private LoadingCache clients;
+ private LoadingCache clients;
@PostConstruct
protected void createCache() {
- connections = CacheBuilder.newBuilder().maximumSize(maximumSize).expireAfterAccess(expireAfterAccess, TimeUnit.MINUTES).build(new CacheLoader<>() {
- public Connection load(String tenantId) {
-
- var tenant = tenantsClient.getTenant(tenantId);
- var hostsAsString = tenant.getSearchConnection().getHosts().stream().collect(Collectors.joining());
- return Connection.builder().hosts(hostsAsString).searchConnection(tenant.getSearchConnection()).build();
- }
- });
-
clients = CacheBuilder.newBuilder()
.maximumSize(maximumSize)
.expireAfterAccess(expireAfterAccess, TimeUnit.MINUTES)
- .removalListener((RemovalListener) removal -> {
+ .removalListener((RemovalListener) removal -> {
removal.getValue().shutdown();
- log.info("Closed opensearch client for tenant {}", removal.getKey().getHosts());
+ log.info("Closed elasticsearch client for tenant {}", removal.getKey());
})
.build(new CacheLoader<>() {
- public OpensearchClient load(Connection key) {
+ public OpensearchClient load(String tenantId) {
- if (key.getSearchConnection().getPassword() != null) {
- key.getSearchConnection().setPassword(encryptionDecryptionService.decrypt(key.getSearchConnection().getPassword()));
+ var tenant = tenantsClient.getTenant(tenantId);
+
+ if (tenant.getSearchConnection().getPassword() != null) {
+ tenant.getSearchConnection().setPassword(encryptionDecryptionService.decrypt(tenant.getSearchConnection().getPassword()));
}
- var client = new OpensearchClient(key.getSearchConnection());
- log.info("Initialized opensearch client for tenant {}", key);
+ var client = new OpensearchClient(tenant.getSearchConnection());
+ log.info("Initialized elasticsearch client for tenant {}", tenantId);
indexCreatorService.createIndex(client);
return client;
}
@@ -78,8 +68,7 @@ public class OpensearchClientCache {
@SneakyThrows
public OpensearchClient getClient() {
- var connection = connections.get(TenantContext.getTenantId());
- return clients.get(connection);
+ return clients.get(TenantContext.getTenantId());
}
}
\ No newline at end of file