ALF-9856: RSOLR 046: Index track and build from SOLR: ALF-9857 Track changes to PATH and optimised support for getting AUX doc only data

- path tracking complete

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29758 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2011-08-15 12:57:19 +00:00
parent 2e3c1fd955
commit 9f2ec527f1
2 changed files with 75 additions and 21 deletions

View File

@@ -45,47 +45,53 @@
<#macro nodeMetaDataJSON nodeMetaData filter>
{
"id": ${nodeMetaData.nodeId?c},
"nodeRef": <#if filter.includeNodeRef??>"${nodeMetaData.nodeRef.toString()}",</#if>
"type": <#if filter.includeType??><@qNameJSON qName=nodeMetaData.nodeType/>,</#if>
"aclId": <#if filter.includeAclId??><#if nodeMetaData.aclId??>${nodeMetaData.aclId?c}<#else>null</#if>,</#if>
"id": ${nodeMetaData.nodeId?c}
<#if filter.includeNodeRef??><#if nodeMetaData.nodeRef??>, "nodeRef": "${nodeMetaData.nodeRef.toString()}"</#if></#if>
<#if filter.includeType??><#if nodeMetaData.nodeType??>, "type": <@qNameJSON qName=nodeMetaData.nodeType/></#if></#if>
<#if filter.includeAclId??><#if nodeMetaData.aclId??>, "aclId": ${nodeMetaData.aclId?c}</#if></#if>
<#if filter.includeProperties??>
"properties": {
<#if nodeMetaData.properties??>
, "properties": {
<#list nodeMetaData.properties?keys as propName>
"${propName}": ${nodeMetaData.properties[propName]}<#if propName_has_next>,</#if>
</#list>
},
}
</#if>
</#if>
<#if filter.includeAspects??>
"aspects": [
<#if nodeMetaData.aspects??>
, "aspects": [
<#list nodeMetaData.aspects as aspectQName>
<@nodeAspectJSON aspectQName=aspectQName indent=""/><#if aspectQName_has_next>,</#if>
</#list>
],
]
</#if>
</#if>
<#if filter.includePaths??>
"paths": [
<#if nodeMetaData.paths??>
, "paths": [
<#list nodeMetaData.paths as path>
${path}<#if path_has_next>,</#if>
</#list>
],
]
</#if>
</#if>
<#if filter.includeParentAssociations??>
<#if nodeMetaData.parentAssocs??>
<#if (nodeMetaData.parentAssocs?size > 0)>
"parentAssocs": [
, "parentAssocs": [
<#list nodeMetaData.parentAssocs as pa>
"${pa}"<#if pa_has_next>,</#if>
</#list>
],
"parentAssocsCrc": <#if nodeMetaData.parentAssocsCrc??>${nodeMetaData.parentAssocsCrc?c}<#else>null</#if>,
]
,"parentAssocsCrc": <#if nodeMetaData.parentAssocsCrc??>${nodeMetaData.parentAssocsCrc?c}<#else>null</#if>
</#if>
</#if>
</#if>
<#if filter.includeChildAssociations??>
<#if nodeMetaData.childAssocs??>
<#if (nodeMetaData.childAssocs?size > 0)>
"childAssocs": [
, "childAssocs": [
<#list nodeMetaData.childAssocs as ca>
"${ca}"<#if ca_has_next>,</#if>
</#list>
@@ -93,6 +99,22 @@
</#if>
</#if>
</#if>
<#if filter.includeChildIds??>
<#if nodeMetaData.childIds??>
<#if (nodeMetaData.childIds?size > 0)>
, "childIds": [
<#list nodeMetaData.childIds as ci>
${ci?c}<#if ci_has_next>,</#if>
</#list>
]
</#if>
</#if>
</#if>
<#if filter.includeOwner??>
<#if nodeMetaData.owner??>
, "owner": "${nodeMetaData.owner}"
</#if>
</#if>
}
</#macro>

View File

@@ -156,7 +156,11 @@ public class NodesMetaDataGet extends DeclarativeWebScript
}
if(o.has("includeParentAssociations"))
{
filter.setIncludeParentAssociations(o.getBoolean("includeParentAssociations"));
filter.setIncludeParentAssociations(o.getBoolean("includeChildIds"));
}
if(o.has("includeChildIds"))
{
filter.setIncludeChildIds(o.getBoolean("includeChildIds"));
}
final ArrayList<FreemarkerNodeMetaData> nodesMetaData =
@@ -235,6 +239,8 @@ public class NodesMetaDataGet extends DeclarativeWebScript
private List<ChildAssociationRef> childAssocs;
private List<ChildAssociationRef> parentAssocs;
private Long parentAssocsCrc;
private List<Long> childIds;
private String owner;
public FreemarkerNodeMetaData(SOLRSerializer solrSerializer, NodeMetaData nodeMetaData) throws IOException, JSONException
{
@@ -255,10 +261,13 @@ public class NodesMetaDataGet extends DeclarativeWebScript
setPaths(paths);
setChildAssocs(nodeMetaData.getChildAssocs());
setChildIds(nodeMetaData.getChildIds());
setParentAssocs(nodeMetaData.getParentAssocs());
setParentAssocsCrc(nodeMetaData.getParentAssocsCrc());
setAspects(nodeMetaData.getAspects());
Map<QName, Serializable> props = nodeMetaData.getProperties();
if(props != null)
{
Map<String, PropertyValue> properties = (props != null ? new HashMap<String, PropertyValue>(props.size()) : null);
for(QName propName : props.keySet())
{
@@ -268,6 +277,8 @@ public class NodesMetaDataGet extends DeclarativeWebScript
}
setProperties(properties);
}
setOwner(nodeMetaData.getOwner());
}
public NodeRef getNodeRef()
{
@@ -349,6 +360,27 @@ public class NodesMetaDataGet extends DeclarativeWebScript
{
this.parentAssocsCrc = parentAssocsCrc;
}
public List<Long> getChildIds()
{
return childIds;
}
public void setChildIds(List<Long> childIds)
{
this.childIds = childIds;
}
public String getOwner()
{
return owner;
}
public void setOwner(String owner)
{
this.owner = owner;
}
}
}