From 9296c75f31652242b15bdedfae916b71f0d44e53 Mon Sep 17 00:00:00 2001
From: gsergiu <4517853+gsergiu@users.noreply.github.com>
Date: Thu, 30 Jan 2025 16:22:53 +0100
Subject: [PATCH] merge changes from develop
---
.../config/EntityManagementConfiguration.java | 6 +++
.../resources/solr-docker/conf/schema.xml | 34 ++-----------
.../entitymanagement/config/SolrConfig.java | 49 ++++++++++---------
.../resources/entitymanagement.properties | 6 +++
4 files changed, 44 insertions(+), 51 deletions(-)
diff --git a/entity-management-common/src/main/java/eu/europeana/entitymanagement/common/config/EntityManagementConfiguration.java b/entity-management-common/src/main/java/eu/europeana/entitymanagement/common/config/EntityManagementConfiguration.java
index c0913b94e..857aaaaf0 100644
--- a/entity-management-common/src/main/java/eu/europeana/entitymanagement/common/config/EntityManagementConfiguration.java
+++ b/entity-management-common/src/main/java/eu/europeana/entitymanagement/common/config/EntityManagementConfiguration.java
@@ -60,7 +60,13 @@ public class EntityManagementConfiguration implements InitializingBean {
@Value("${entitymanagement.solr.pr.url}")
private String prSolrUrl;
+
+ @Value("${entitymanagement.solr.pr.zookeeper.url:}")
+ private String prSolrZookeeperUrl;
+ @Value("${entitymanagement.solr.pr.collection}")
+ private String prSolrCollection;
+
@Value("${europeana.searchapi.urlPrefix}")
private String searchApiUrlPrefix;
diff --git a/entity-management-tests/src/integration-test/resources/solr-docker/conf/schema.xml b/entity-management-tests/src/integration-test/resources/solr-docker/conf/schema.xml
index 9a77f8a6e..f9bb34237 100644
--- a/entity-management-tests/src/integration-test/resources/solr-docker/conf/schema.xml
+++ b/entity-management-tests/src/integration-test/resources/solr-docker/conf/schema.xml
@@ -7,10 +7,7 @@
sortMissingLast="true" />
-
+
@@ -123,10 +120,6 @@
-
-
-
@@ -273,13 +263,6 @@
stored="true" multiValued="true" />
-
-
-
-
-
-
@@ -458,12 +438,7 @@
stored="true" multiValued="false" />
-
-
-
@@ -481,9 +456,10 @@
stored="true" multiValued="false" />
-
-
+
+
+
diff --git a/entity-management-web/src/main/java/eu/europeana/entitymanagement/config/SolrConfig.java b/entity-management-web/src/main/java/eu/europeana/entitymanagement/config/SolrConfig.java
index d99e132d7..7b06ba874 100644
--- a/entity-management-web/src/main/java/eu/europeana/entitymanagement/config/SolrConfig.java
+++ b/entity-management-web/src/main/java/eu/europeana/entitymanagement/config/SolrConfig.java
@@ -1,7 +1,5 @@
package eu.europeana.entitymanagement.config;
-import eu.europeana.entitymanagement.common.config.EntityManagementConfiguration;
-import eu.europeana.entitymanagement.common.vocabulary.AppConfigConstants;
import java.util.Arrays;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
@@ -14,6 +12,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import eu.europeana.entitymanagement.common.config.EntityManagementConfiguration;
+import eu.europeana.entitymanagement.common.vocabulary.AppConfigConstants;
@Configuration
public class SolrConfig {
@@ -28,52 +28,57 @@ public SolrConfig(EntityManagementConfiguration emConfiguration) {
@Bean(AppConfigConstants.BEAN_PR_SOLR_CLIENT)
public SolrClient pageRankSolrClient() {
- logger.info("Configuring pageRank solr client at the url: {}", emConfiguration.getPrSolrUrl());
- return new HttpSolrClient.Builder(emConfiguration.getPrSolrUrl()).build();
+ if (StringUtils.isNotBlank(emConfiguration.getPrSolrZookeeperUrl())) {
+ return initSolrCloudClient(emConfiguration.getPrSolrZookeeperUrl(), emConfiguration.getIndexingSolrTimeoutMillis(),
+ emConfiguration.getPrSolrCollection());
+ } else {
+ return initSolrClient(emConfiguration.getPrSolrUrl(), emConfiguration.getIndexingSolrTimeoutMillis());
+ }
}
-
+
@Bean(AppConfigConstants.BEAN_INDEXING_SOLR_CLIENT)
public SolrClient indexingSolrClient() {
if (StringUtils.isNotBlank(emConfiguration.getIndexingSolrZookeeperUrl())) {
- return initSolrCloudClient();
+ return initSolrCloudClient(emConfiguration.getIndexingSolrZookeeperUrl(), emConfiguration.getIndexingSolrTimeoutMillis(),
+ emConfiguration.getIndexingSolrCollection());
} else {
- return initSolrClient();
+ return initSolrClient(emConfiguration.getIndexingSolrUrl(), emConfiguration.getIndexingSolrTimeoutMillis());
}
}
- private SolrClient initSolrClient() {
+ private SolrClient initSolrClient(String solrUrl, int timeoutMillis) {
logger.info(
- "Configuring indexing solr client at the url: {}", emConfiguration.getIndexingSolrUrl());
+ "Configuring solr client at the url: {}", solrUrl);
- if (emConfiguration.getIndexingSolrUrl().contains(",")) {
+ if (solrUrl.contains(",")) {
LBHttpSolrClient.Builder builder = new LBHttpSolrClient.Builder();
return builder
- .withBaseSolrUrls(emConfiguration.getIndexingSolrUrl().split(","))
- .withConnectionTimeout(emConfiguration.getIndexingSolrTimeoutMillis())
+ .withBaseSolrUrls(solrUrl.split(","))
+ .withConnectionTimeout(timeoutMillis)
.build();
} else {
HttpSolrClient.Builder builder = new HttpSolrClient.Builder();
return builder
- .withBaseSolrUrl(emConfiguration.getIndexingSolrUrl())
- .withConnectionTimeout(emConfiguration.getIndexingSolrTimeoutMillis())
+ .withBaseSolrUrl(solrUrl)
+ .withConnectionTimeout(timeoutMillis)
.build();
}
}
- private SolrClient initSolrCloudClient() {
+ private SolrClient initSolrCloudClient(String solrZookeeperUrl, int timeout, String solrCollection) {
logger.info(
- "Configuring indexing solr client with the zookeperurls: {} and collection: {}",
- emConfiguration.getIndexingSolrUrl(),
- emConfiguration.getIndexingSolrCollection());
+ "Configuring solr client with the zookeperurls: {} and collection: {}",
+ solrZookeeperUrl,
+ solrCollection);
- String[] solrZookeeperUrls = emConfiguration.getIndexingSolrZookeeperUrl().trim().split(",");
+ String[] solrZookeeperUrlsList = solrZookeeperUrl.trim().split(",");
CloudSolrClient client =
- new CloudSolrClient.Builder(Arrays.asList(solrZookeeperUrls), Optional.empty())
- .withConnectionTimeout(emConfiguration.getIndexingSolrTimeoutMillis())
+ new CloudSolrClient.Builder(Arrays.asList(solrZookeeperUrlsList), Optional.empty())
+ .withConnectionTimeout(timeout)
.build();
- client.setDefaultCollection(emConfiguration.getIndexingSolrCollection());
+ client.setDefaultCollection(solrCollection);
return client;
}
}
diff --git a/entity-management-web/src/main/resources/entitymanagement.properties b/entity-management-web/src/main/resources/entitymanagement.properties
index 8a2b5f458..e21bf66af 100644
--- a/entity-management-web/src/main/resources/entitymanagement.properties
+++ b/entity-management-web/src/main/resources/entitymanagement.properties
@@ -40,6 +40,12 @@ datasources.config=/datasources.xml
#string value representing the key used for JWT signature verification
europeana.apikey.jwttoken.signaturekey=
+#zookeeper url for the page-rank solr (if not present, normal is used)
+#entitymanagement.solr.pr.zookeeper.url=localhost:9983
+
+#the name of the page-rank solr collection (mandatory when using zookeeper url)
+entitymanagement.solr.pr.collection=pagerank1
+
#url for the page rank solr
#entitymanagement.solr.pr.url=
entitymanagement.solr.pr.url=http://annotation-entity-test.eanadev.org:9393/solr/pagerank1