mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Feature/acs 1425 long running tmdq (#417)
* ACS-1425 Add store info to result * ACS-1425 Fix unit tests
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user