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;