Feature/acs 1425 long running tmdq (#417)

* ACS-1425 Add store info to result

* ACS-1425 Fix unit tests
This commit is contained in:
Sara
2021-04-28 11:07:02 +01:00
committed by GitHub
parent 1b6e800733
commit ab6c831447
2 changed files with 495 additions and 459 deletions

View File

@@ -46,6 +46,7 @@ import org.alfresco.repo.cache.lookup.EntityLookupCache;
import org.alfresco.repo.cache.lookup.EntityLookupCache.EntityLookupCallbackDAOAdaptor;
import org.alfresco.repo.domain.node.Node;
import org.alfresco.repo.domain.node.NodeDAO;
import org.alfresco.repo.domain.node.StoreEntity;
import org.alfresco.repo.domain.permissions.AclCrudDAO;
import org.alfresco.repo.domain.permissions.Authority;
import org.alfresco.repo.domain.qname.QNameDAO;
@@ -335,6 +336,7 @@ public class DBQueryEngine implements QueryEngine
}
Node node = context.getResultObject();
addStoreInfo(node);
boolean shouldCache = nodes.size() >= options.getSkipCount();
if(shouldCache)
@@ -457,4 +459,22 @@ public class DBQueryEngine implements QueryEngine
return value.getNodeRef();
}
}
private void addStoreInfo(Node node)
{
StoreEntity storeEntity = node.getStore();
logger.debug("Adding store info for store id " + storeEntity.getId());
List<Pair<Long, StoreRef>> stores = nodeDAO.getStores();
for (Pair<Long, StoreRef> storeRefPair : stores)
{
if (storeEntity.getId() == storeRefPair.getFirst())
{
StoreRef storeRef = storeRefPair.getSecond();
storeEntity.setIdentifier(storeRef.getIdentifier());
storeEntity.setProtocol(storeRef.getProtocol());
logger.debug("Added store info" + storeEntity.toString());
break;
}
}
}
}

View File

@@ -37,15 +37,19 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.alfresco.repo.cache.lookup.EntityLookupCache;
import org.alfresco.repo.domain.node.Node;
import org.alfresco.repo.domain.node.NodeDAO;
import org.alfresco.repo.domain.node.StoreEntity;
import org.alfresco.repo.search.impl.querymodel.QueryOptions;
import org.alfresco.repo.security.permissions.impl.acegi.FilteringResultSet;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.util.Pair;
import org.apache.ibatis.executor.result.DefaultResultContext;
import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler;
@@ -63,6 +67,7 @@ public class DBQueryEngineTest
private DBQuery dbQuery;
private ResultContext<Node> resultContext;
private QueryOptions options;
private NodeDAO nodeDAO;
@SuppressWarnings("unchecked")
@Before
@@ -78,6 +83,10 @@ public class DBQueryEngineTest
engine.setSqlSessionTemplate(template);
engine.nodesCache = mock(EntityLookupCache.class);
nodeDAO = mock(NodeDAO.class);
engine.setNodeDAO(nodeDAO);
mockStores();
}
@Test
@@ -260,4 +269,11 @@ public class DBQueryEngineTest
return node;
}
private void mockStores()
{
Pair<Long, StoreRef> spacesStore = new Pair<>(6L, new StoreRef("workspace://SpacesStore"));
List<Pair<Long, StoreRef>> stores = Arrays.asList(spacesStore);
when(nodeDAO.getStores()).thenReturn(stores);
}
}