diff --git a/config/alfresco/public-rest-context.xml b/config/alfresco/public-rest-context.xml index 8f88ff7558..c220b852b6 100644 --- a/config/alfresco/public-rest-context.xml +++ b/config/alfresco/public-rest-context.xml @@ -493,6 +493,7 @@ + diff --git a/source/java/org/alfresco/rest/api/impl/NodesImpl.java b/source/java/org/alfresco/rest/api/impl/NodesImpl.java index 70bcec8a28..45c150bfb7 100644 --- a/source/java/org/alfresco/rest/api/impl/NodesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/NodesImpl.java @@ -74,6 +74,7 @@ import org.alfresco.repo.thumbnail.ThumbnailRegistry; import org.alfresco.repo.transaction.AlfrescoTransactionSupport; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.version.VersionModel; +import org.alfresco.repo.virtual.store.VirtualStore; import org.alfresco.rest.antlr.WhereClauseParser; import org.alfresco.rest.api.Activities; import org.alfresco.rest.api.Nodes; @@ -207,6 +208,7 @@ public class NodesImpl implements Nodes private RetryingTransactionHelper retryingTransactionHelper; private NodeAssocService nodeAssocService; private LockService lockService; + private VirtualStore smartStore; // note: remove as part of REPO-1173 private enum Activity_Type { @@ -305,7 +307,12 @@ public class NodesImpl implements Nodes this.nodeAssocService = nodeAssocService; } + public void setSmartStore(VirtualStore smartStore) + { + this.smartStore = smartStore; + } + // excluded namespaces (aspects, properties, assoc types) private static final List EXCLUDED_NS = Arrays.asList(NamespaceService.SYSTEM_MODEL_1_0_URI); @@ -1327,7 +1334,8 @@ public class NodesImpl implements Nodes // call GetChildrenCannedQuery (via FileFolderService) if (((filterProps == null) || (filterProps.size() == 0)) && - ((assocTypeQNames == null) || (assocTypeQNames.size() == 0))) + ((assocTypeQNames == null) || (assocTypeQNames.size() == 0)) && + (smartStore.isVirtual(parentNodeRef)|| (smartStore.canVirtualize(parentNodeRef)))) { pagingResults = fileFolderService.list(parentNodeRef, searchTypeQNames, ignoreAspectQNames, sortProps, pagingRequest); } diff --git a/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java b/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java index 2aeae22b0c..8b976d2e49 100644 --- a/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java @@ -2124,6 +2124,10 @@ public class NodeApiTest extends AbstractSingleNetworkSiteTest String c1Id = nodeResp.getId(); assertEquals(fId, nodeResp.getParentId()); + response = getAll(getNodeChildrenUrl(fId), null, null, 200); + nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); + assertEquals(1, nodes.size()); + obj = new Node(); obj.setName("c2"); obj.setNodeType(TYPE_CM_CONTENT);