From b1478db6574f6ed1fef3de2a0c651ccc0ef18f41 Mon Sep 17 00:00:00 2001 From: Mark Rogers Date: Sat, 20 Sep 2014 10:18:43 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud) 85015: Merged PLATFORM1 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud) 84136: Fix for ACE-1696 SOLR 4 - Support for name path - index only git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@85330 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repository/solr/solr.lib.ftl | 9 +++++++ .../web/scripts/solr/NodesMetaDataGet.java | 26 +++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl index a7487f2ece..617575e9fb 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl @@ -101,6 +101,15 @@ + <#if filter.includePaths??> + <#if nodeMetaData.namePaths??> + , "namePaths": [ + <#list nodeMetaData.namePaths as namePath> + ${namePath}<#if namePath_has_next>, + + ] + + <#if filter.includeParentAssociations??> <#if nodeMetaData.parentAssocs??> <#if (nodeMetaData.parentAssocs?size > 0)> diff --git a/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java b/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java index 12416e0953..2e42c9acdf 100644 --- a/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java +++ b/source/java/org/alfresco/repo/web/scripts/solr/NodesMetaDataGet.java @@ -21,6 +21,7 @@ package org.alfresco.repo.web.scripts.solr; import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -285,8 +286,25 @@ public class NodesMetaDataGet extends DeclarativeWebScript } this.ancestors = ancestors; this.paths = paths; - // TODO: Convert name paths to required strings - this.namePaths = null; // TODO: use a JSON-friendly string + + + // convert name Paths to Strings + List namePaths = new ArrayList(); + if(nodeMetaData.getNamePaths() != null) + { + for(Collection namePath : nodeMetaData.getNamePaths()) + { + JSONObject o = new JSONObject(); + JSONArray array = new JSONArray(); + for(String element : namePath) + { + array.put(solrSerializer.serializeValue(String.class, element)); + } + o.put("namePath", array); + namePaths.add(o.toString(3)); + } + } + this.namePaths = namePaths; this.owner = nodeMetaData.getOwner(); this.childAssocs = nodeMetaData.getChildAssocs(); @@ -331,6 +349,10 @@ public class NodesMetaDataGet extends DeclarativeWebScript { return paths; } + public List getNamePaths() + { + return namePaths; + } public QName getNodeType() { return nodeType;