From f78b0ecfd7db6475e2d781f6a0091b8556c6b33c Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Thu, 23 May 2019 11:27:22 +0200 Subject: [PATCH] Added coreName in nodeParameters Added coreName in propertyBag (shardState) --- .../org/alfresco/solr/tracker/MetadataTracker.java | 8 ++++++++ .../alfresco/solr/client/GetNodesParameters.java | 13 +++++++++++-- .../org/alfresco/solr/client/SOLRAPIClient.java | 5 +++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java index fc6eaee06..3c25333fc 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java @@ -20,9 +20,11 @@ package org.alfresco.solr.tracker; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.concurrent.ConcurrentLinkedQueue; @@ -197,6 +199,9 @@ public class MetadataTracker extends AbstractTracker implements Tracker private ShardState getShardState() { TrackerState state = super.getTrackerState(); + + HashMap propertyBag = new HashMap<>(); + propertyBag.put("coreName", coreName); ShardState shardstate = ShardStateBuilder.shardState() .withMaster(isMaster) @@ -217,6 +222,7 @@ public class MetadataTracker extends AbstractTracker implements Tracker .withTemplate(shardTemplate) .withHasContent(transformContent) .withShardMethod(ShardMethodEnum.getShardMethod(shardMethod)) + .withPropertyBag(propertyBag) .endFloc() .endShard() .endShardInstance() @@ -337,6 +343,7 @@ public class MetadataTracker extends AbstractTracker implements Tracker gnp.setStoreProtocol(storeRef.getProtocol()); gnp.setStoreIdentifier(storeRef.getIdentifier()); gnp.setShardProperty(shardProperty); + gnp.setCoreName(coreName); List nodes = client.getNodes(gnp, (int) info.getUpdates()); for (Node node : nodes) @@ -855,6 +862,7 @@ public class MetadataTracker extends AbstractTracker implements Tracker gnp.setStoreProtocol(storeRef.getProtocol()); gnp.setStoreIdentifier(storeRef.getIdentifier()); gnp.setShardProperty(shardProperty); + gnp.setCoreName(coreName); List nodes = client.getNodes(gnp, Integer.MAX_VALUE); ArrayList nodeBatch = new ArrayList<>(); diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java index 6eb6b3fbf..6560235ad 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java @@ -49,9 +49,10 @@ public class GetNodesParameters private Set includeAspects; private Set excludeAspects; - - private QName shardProperty; + private QName shardProperty; + private String coreName; + public boolean getStoreFilter() { return (storeProtocol != null || storeIdentifier != null); @@ -156,6 +157,14 @@ public class GetNodesParameters { this.shardProperty = shardProperty; } + + public String getCoreName() { + return this.coreName; + } + + public void setCoreName(String coreName){ + this.coreName = coreName; + } } diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java index c933009a3..d1a19a51a 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java @@ -610,6 +610,11 @@ public class SOLRAPIClient { body.put("shardProperty", parameters.getShardProperty().toString()); } + + if (parameters.getCoreName() != null){ + body.put("coreName", parameters.getCoreName()); + } + PostRequest req = new PostRequest(url.toString(), body.toString(), "application/json");