From a26ac1f778cb0e636512dca7aafda2c5d73e0a06 Mon Sep 17 00:00:00 2001
From: Krystian Dabrowski <98942253+krdabrowski@users.noreply.github.com>
Date: Tue, 21 Mar 2023 15:37:19 +0100
Subject: [PATCH] ACS-4857: Lookup for root tag in DB and NOT using search
engine (#1810)
* ACS-4857: Lookup for root tag in DB and NOT using search engine
Also:
- removing commons-collections exclusion within test scope due to:
"Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.CollectionUtils"
---
amps/share-services/pom.xml | 6 ----
.../impl/AbstractCategoryServiceImpl.java | 36 ++++++++-----------
2 files changed, 14 insertions(+), 28 deletions(-)
diff --git a/amps/share-services/pom.xml b/amps/share-services/pom.xml
index 09ba47d7f9..d23fd0db2e 100644
--- a/amps/share-services/pom.xml
+++ b/amps/share-services/pom.xml
@@ -121,12 +121,6 @@
${dependency.webscripts.version}
tests
test
-
-
- commons-collections
- commons-collections
-
-
org.springframework
diff --git a/repository/src/main/java/org/alfresco/repo/search/impl/AbstractCategoryServiceImpl.java b/repository/src/main/java/org/alfresco/repo/search/impl/AbstractCategoryServiceImpl.java
index 02887ff6aa..760bbd2bb8 100644
--- a/repository/src/main/java/org/alfresco/repo/search/impl/AbstractCategoryServiceImpl.java
+++ b/repository/src/main/java/org/alfresco/repo/search/impl/AbstractCategoryServiceImpl.java
@@ -353,28 +353,15 @@ public abstract class AbstractCategoryServiceImpl implements CategoryService
return assocs;
}
- protected Set getClassificationNodes(StoreRef storeRef, QName qname)
+ protected Set getClassificationNodes(StoreRef storeRef, QName aspectQName)
{
- ResultSet resultSet = null;
try
{
- resultSet = indexerAndSearcher.getSearcher(storeRef, false).query(storeRef, "lucene",
- "PATH:\"/" + getPrefix(qname.getNamespaceURI()) + ISO9075.encode(qname.getLocalName()) + "\"", null);
-
- Set nodeRefs = new HashSet(resultSet.length());
- for (ResultSetRow row : resultSet)
- {
- nodeRefs.add(row.getNodeRef());
- }
-
- return nodeRefs;
+ return getRootCategoryNodeRef(storeRef, aspectQName).stream().collect(Collectors.toSet());
}
- finally
+ catch (CategoryServiceException ignore)
{
- if (resultSet != null)
- {
- resultSet.close();
- }
+ return Collections.emptySet();
}
}
@@ -630,19 +617,24 @@ public abstract class AbstractCategoryServiceImpl implements CategoryService
@Override
@Experimental
public Optional getRootCategoryNodeRef(final StoreRef storeRef)
+ {
+ return getRootCategoryNodeRef(storeRef, ContentModel.ASPECT_GEN_CLASSIFIABLE);
+ }
+
+ private Optional getRootCategoryNodeRef(final StoreRef storeRef, final QName childNodeType)
{
final NodeRef rootNode = nodeService.getRootNode(storeRef);
final ChildAssociationRef categoryRoot = nodeService.getChildAssocs(rootNode, Set.of(ContentModel.TYPE_CATEGORYROOT)).stream()
- .findFirst()
- .orElseThrow(() -> new CategoryServiceException(NODE_WITH_CATEGORY_ROOT_TYPE_NOT_FOUND));
+ .findFirst()
+ .orElseThrow(() -> new CategoryServiceException(NODE_WITH_CATEGORY_ROOT_TYPE_NOT_FOUND));
final List categoryRootAssocs = nodeService.getChildAssocs(categoryRoot.getChildRef());
if (CollectionUtils.isEmpty(categoryRootAssocs))
{
throw new CategoryServiceException(CATEGORY_ROOT_NODE_NOT_FOUND);
}
return categoryRootAssocs.stream()
- .filter(ca -> ca.getQName().equals(ContentModel.ASPECT_GEN_CLASSIFIABLE))
- .map(ChildAssociationRef::getChildRef)
- .findFirst();
+ .filter(ca -> ca.getQName().equals(childNodeType))
+ .map(ChildAssociationRef::getChildRef)
+ .findFirst();
}
}