[feature/MNT-24127-EndpointToCalculateFolderSize] Addressing review comments related to calculate and retrieve folder size details

This commit is contained in:
mohit-singh4
2024-09-20 15:45:14 +05:30
parent 1048c431c0
commit 681b0efbcb
8 changed files with 47 additions and 37 deletions

View File

@@ -25,7 +25,7 @@
*/
package org.alfresco.rest.api;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
public interface SizeDetails
{

View File

@@ -25,13 +25,10 @@
*/
package org.alfresco.rest.api.impl;
import java.io.Serializable;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsService;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsServiceImpl.NodeSizeDetails.STATUS;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsService;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsServiceImpl.NodeSizeDetails.STATUS;
import org.alfresco.rest.api.Nodes;
import org.alfresco.rest.api.SizeDetails;
import org.alfresco.rest.framework.core.exceptions.InvalidNodeTypeException;
@@ -45,7 +42,6 @@ public class SizeDetailsImpl implements SizeDetails, InitializingBean
{
private Nodes nodes;
private NodeRef nodeRef;
private SimpleCache<Serializable, NodeSizeDetails> simpleCache;
private NodeSizeDetailsService nodeSizeDetailsService;
public void setNodes(Nodes nodes)
@@ -67,13 +63,13 @@ public class SizeDetailsImpl implements SizeDetails, InitializingBean
nodeRef = nodes.validateOrLookupNode(nodeId);
validateType(nodeRef);
String actionId;
if (!simpleCache.contains(nodeId))
if (!nodeSizeDetailsService.checkSizeDetailsExist(nodeId))
{
actionId = executeSizeDetails();
}
else
{
NodeSizeDetails nodeSizeDetails = simpleCache.get(nodeId);
NodeSizeDetails nodeSizeDetails = nodeSizeDetailsService.getSizeDetailsFromCache(nodeId);
actionId = nodeSizeDetails.getJobId();
}
return new NodeSizeDetails(null, null, actionId, null);
@@ -88,14 +84,14 @@ public class SizeDetailsImpl implements SizeDetails, InitializingBean
NodeRef nodeRef = nodes.validateOrLookupNode(nodeId);
validateType(nodeRef);
if (!simpleCache.contains(nodeId))
if (!nodeSizeDetailsService.checkSizeDetailsExist(nodeId))
{
NodeSizeDetails nodeSizeDetails = new NodeSizeDetails(nodeId, null, null, STATUS.NOT_INITIATED);
return nodeSizeDetails;
}
else
{
NodeSizeDetails nodeSizeDetails = simpleCache.get(nodeId);
NodeSizeDetails nodeSizeDetails = nodeSizeDetailsService.getSizeDetailsFromCache(nodeId);
String cachedJobId = nodeSizeDetails.getJobId();
if (cachedJobId != null && !jobId.equalsIgnoreCase(cachedJobId))
{
@@ -103,7 +99,7 @@ public class SizeDetailsImpl implements SizeDetails, InitializingBean
}
}
return simpleCache.get(nodeId);
return nodeSizeDetailsService.getSizeDetailsFromCache(nodeId);
}
/**
@@ -114,7 +110,7 @@ public class SizeDetailsImpl implements SizeDetails, InitializingBean
String jobId = GUID.generate();
nodeSizeDetailsService.invokeSizeDetailsExecutor(nodeRef, jobId);
NodeSizeDetails nodeSizeDetails = new NodeSizeDetails(nodeRef.getId(), null, jobId, STATUS.PENDING);
simpleCache.put(nodeRef.getId(), nodeSizeDetails);
nodeSizeDetailsService.putSizeDetailsInCache(nodeRef.getId(), nodeSizeDetails);
return jobId;
}
@@ -131,7 +127,6 @@ public class SizeDetailsImpl implements SizeDetails, InitializingBean
{
ParameterCheck.mandatory("nodes", this.nodes);
ParameterCheck.mandatory("nodeSizeDetailsServiceImpl", this.nodeSizeDetailsService);
this.simpleCache = nodeSizeDetailsService.getSimpleCache();
}
}

View File

@@ -28,7 +28,7 @@ package org.alfresco.rest.api.nodes;
import java.util.List;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.rest.api.SizeDetails;
import org.alfresco.rest.framework.WebApiDescription;
import org.alfresco.rest.framework.WebApiParam;

View File

@@ -35,8 +35,8 @@ import java.util.concurrent.ThreadPoolExecutor;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsServiceImpl;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsServiceImpl;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.rest.api.Nodes;
import org.alfresco.rest.api.model.Node;
import org.alfresco.service.cmr.repository.NodeRef;
@@ -54,6 +54,8 @@ public class SizeDetailsImplTest
private static final QName TYPE_FOLDER = QName.createQName(NAMESPACE, "folder");
private SizeDetailsImpl sizeDetailsImpl;
private Nodes nodes;
private NodeSizeDetailsServiceImpl nodeSizeDetailsServiceImpl;
private NodeSizeDetails nodeSizeDetails;
@Before
public void setUp() throws Exception
@@ -61,19 +63,18 @@ public class SizeDetailsImplTest
sizeDetailsImpl = new SizeDetailsImpl();
nodes = mock(Nodes.class);
SearchService searchService = mock(SearchService.class);
NodeSizeDetailsServiceImpl nodeSizeDetailsServiceImpl = mock(NodeSizeDetailsServiceImpl.class);
nodeSizeDetailsServiceImpl = mock(NodeSizeDetailsServiceImpl.class);
ThreadPoolExecutor threadPoolExecutor = mock(ThreadPoolExecutor.class);
SimpleCache<Serializable, NodeSizeDetails> simpleCache = mock(SimpleCache.class);
nodeSizeDetails = mock(NodeSizeDetails.class);
nodeSizeDetailsServiceImpl.setSearchService(searchService);
nodeSizeDetailsServiceImpl.setDefaultItems(1000);
nodeSizeDetailsServiceImpl.setSimpleCache(simpleCache);
verify(nodeSizeDetailsServiceImpl).setSimpleCache(simpleCache);
nodeSizeDetailsServiceImpl.setThreadPoolExecutor(threadPoolExecutor);
sizeDetailsImpl.setNodes(nodes);
sizeDetailsImpl.setNodeSizeDetailsService(nodeSizeDetailsServiceImpl);
when(nodeSizeDetailsServiceImpl.getSimpleCache()).thenReturn(simpleCache);
sizeDetailsImpl.afterPropertiesSet();
verify(nodeSizeDetailsServiceImpl).setSimpleCache(simpleCache);
}
@Test
@@ -93,6 +94,7 @@ public class SizeDetailsImplTest
when(nodes.validateOrLookupNode(nodeId)).thenReturn(nodeRef);
when(nodes.isSubClass(nodeRef, ContentModel.TYPE_FOLDER, false)).thenReturn(true);
when(nodeSizeDetailsServiceImpl.getSizeDetailsFromCache(nodeId)).thenReturn(nodeSizeDetails);
NodeSizeDetails requestSizeDetails = sizeDetailsImpl.generateNodeSizeDetailsRequest(nodeId);
assertNotNull("After executing POST/size-details, it will provide with 202 status code", requestSizeDetails);

View File

@@ -34,7 +34,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.node.sizeDetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.repo.node.sizedetails.NodeSizeDetailsServiceImpl.NodeSizeDetails;
import org.alfresco.rest.api.Nodes;
import org.alfresco.rest.api.model.Site;
import org.alfresco.rest.api.tests.client.HttpResponse;