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.cache.lookup.EntityLookupCache.EntityLookupCallbackDAOAdaptor;
|
||||||
import org.alfresco.repo.domain.node.Node;
|
import org.alfresco.repo.domain.node.Node;
|
||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
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.AclCrudDAO;
|
||||||
import org.alfresco.repo.domain.permissions.Authority;
|
import org.alfresco.repo.domain.permissions.Authority;
|
||||||
import org.alfresco.repo.domain.qname.QNameDAO;
|
import org.alfresco.repo.domain.qname.QNameDAO;
|
||||||
@@ -335,6 +336,7 @@ public class DBQueryEngine implements QueryEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
Node node = context.getResultObject();
|
Node node = context.getResultObject();
|
||||||
|
addStoreInfo(node);
|
||||||
|
|
||||||
boolean shouldCache = nodes.size() >= options.getSkipCount();
|
boolean shouldCache = nodes.size() >= options.getSkipCount();
|
||||||
if(shouldCache)
|
if(shouldCache)
|
||||||
@@ -457,4 +459,22 @@ public class DBQueryEngine implements QueryEngine
|
|||||||
return value.getNodeRef();
|
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 static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.alfresco.repo.cache.lookup.EntityLookupCache;
|
import org.alfresco.repo.cache.lookup.EntityLookupCache;
|
||||||
import org.alfresco.repo.domain.node.Node;
|
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.node.StoreEntity;
|
||||||
import org.alfresco.repo.search.impl.querymodel.QueryOptions;
|
import org.alfresco.repo.search.impl.querymodel.QueryOptions;
|
||||||
import org.alfresco.repo.security.permissions.impl.acegi.FilteringResultSet;
|
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.ResultSet;
|
||||||
import org.alfresco.service.cmr.search.SearchParameters;
|
import org.alfresco.service.cmr.search.SearchParameters;
|
||||||
|
import org.alfresco.util.Pair;
|
||||||
import org.apache.ibatis.executor.result.DefaultResultContext;
|
import org.apache.ibatis.executor.result.DefaultResultContext;
|
||||||
import org.apache.ibatis.session.ResultContext;
|
import org.apache.ibatis.session.ResultContext;
|
||||||
import org.apache.ibatis.session.ResultHandler;
|
import org.apache.ibatis.session.ResultHandler;
|
||||||
@@ -63,6 +67,7 @@ public class DBQueryEngineTest
|
|||||||
private DBQuery dbQuery;
|
private DBQuery dbQuery;
|
||||||
private ResultContext<Node> resultContext;
|
private ResultContext<Node> resultContext;
|
||||||
private QueryOptions options;
|
private QueryOptions options;
|
||||||
|
private NodeDAO nodeDAO;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Before
|
@Before
|
||||||
@@ -78,6 +83,10 @@ public class DBQueryEngineTest
|
|||||||
engine.setSqlSessionTemplate(template);
|
engine.setSqlSessionTemplate(template);
|
||||||
|
|
||||||
engine.nodesCache = mock(EntityLookupCache.class);
|
engine.nodesCache = mock(EntityLookupCache.class);
|
||||||
|
|
||||||
|
nodeDAO = mock(NodeDAO.class);
|
||||||
|
engine.setNodeDAO(nodeDAO);
|
||||||
|
mockStores();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -260,4 +269,11 @@ public class DBQueryEngineTest
|
|||||||
|
|
||||||
return node;
|
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