mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud)
90996: Merged V4.2-BUG-FIX (4.2.5) to HEAD-BUG-FIX (5.0/Cloud) 90953: Merged DEV to V4.2-BUG-FIX (4.2.5) 90913: MNT-12798 : SOLRDAO doesn't use fromTxnId when toTxnId is null - Fixed syntax bug in solr-common-SqlMap.xml - Added test git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94759 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -134,7 +134,7 @@
|
|||||||
<when test="fromTxnId != null and toTxnId != null">
|
<when test="fromTxnId != null and toTxnId != null">
|
||||||
<![CDATA[txn.id >= #{fromTxnId} and txn.id <= #{toTxnId}]]>
|
<![CDATA[txn.id >= #{fromTxnId} and txn.id <= #{toTxnId}]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="fromTxnId = null and toTxnId != null">
|
<when test="fromTxnId == null and toTxnId != null">
|
||||||
<![CDATA[txn.id <= #{toTxnId}]]>
|
<![CDATA[txn.id <= #{toTxnId}]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="fromTxnId != null and toTxnId == null">
|
<when test="fromTxnId != null and toTxnId == null">
|
||||||
|
@@ -29,6 +29,7 @@ import junit.framework.TestCase;
|
|||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
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.permissions.AclDAO;
|
import org.alfresco.repo.domain.permissions.AclDAO;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||||
import org.alfresco.repo.security.permissions.ACLType;
|
import org.alfresco.repo.security.permissions.ACLType;
|
||||||
@@ -43,6 +44,8 @@ import org.alfresco.service.cmr.repository.NodeService;
|
|||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.cmr.security.MutableAuthenticationService;
|
import org.alfresco.service.cmr.security.MutableAuthenticationService;
|
||||||
import org.alfresco.service.cmr.security.PersonService;
|
import org.alfresco.service.cmr.security.PersonService;
|
||||||
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.service.transaction.TransactionService;
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.alfresco.test_category.OwnJVMTestsCategory;
|
import org.alfresco.test_category.OwnJVMTestsCategory;
|
||||||
import org.alfresco.util.ApplicationContextHelper;
|
import org.alfresco.util.ApplicationContextHelper;
|
||||||
@@ -67,11 +70,13 @@ public class SOLRDAOTest extends TestCase
|
|||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
private AclDAO aclDaoComponent;
|
private AclDAO aclDaoComponent;
|
||||||
private SOLRDAO solrDAO;
|
private SOLRDAO solrDAO;
|
||||||
|
private NodeDAO nodeDAO;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception
|
public void setUp() throws Exception
|
||||||
{
|
{
|
||||||
solrDAO = (SOLRDAO)ctx.getBean("solrDAO");
|
solrDAO = (SOLRDAO)ctx.getBean("solrDAO");
|
||||||
|
nodeDAO = (NodeDAO)ctx.getBean("nodeDAO");
|
||||||
authenticationComponent = (AuthenticationComponent)ctx.getBean("authenticationComponent");
|
authenticationComponent = (AuthenticationComponent)ctx.getBean("authenticationComponent");
|
||||||
|
|
||||||
authenticationService = (MutableAuthenticationService)ctx.getBean("authenticationService");
|
authenticationService = (MutableAuthenticationService)ctx.getBean("authenticationService");
|
||||||
@@ -455,4 +460,64 @@ public class SOLRDAOTest extends TestCase
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MNT-12798
|
||||||
|
*/
|
||||||
|
public void testGetNodesFromTxnId()
|
||||||
|
{
|
||||||
|
final StoreRef storeRef = nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, "Test_" + System.nanoTime());
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
RetryingTransactionCallback<Long> createNodeWork1 = new RetryingTransactionCallback<Long>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Long execute() throws Throwable
|
||||||
|
{
|
||||||
|
createTestNode(nodeService.getRootNode(storeRef));
|
||||||
|
return nodeDAO.getCurrentTransactionId(true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
RetryingTransactionCallback<Long> createNodeWork2 = new RetryingTransactionCallback<Long>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Long execute() throws Throwable
|
||||||
|
{
|
||||||
|
createTestNode(nodeService.getRootNode(storeRef));
|
||||||
|
return nodeDAO.getCurrentTransactionId(true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Long txnId1 = transactionService.getRetryingTransactionHelper().doInTransaction(createNodeWork1);
|
||||||
|
Long txnId2 = transactionService.getRetryingTransactionHelper().doInTransaction(createNodeWork2);
|
||||||
|
|
||||||
|
NodeParameters nodeParameters = new NodeParameters();
|
||||||
|
nodeParameters.setFromTxnId(txnId1);
|
||||||
|
nodeParameters.setToTxnId(null);
|
||||||
|
List<Node> nodes1 = getNodes(nodeParameters);
|
||||||
|
assertTrue("Expect 'some' nodes associated with txns", nodes1.size() > 0);
|
||||||
|
|
||||||
|
NodeParameters nodeParameters2 = new NodeParameters();
|
||||||
|
nodeParameters2.setFromTxnId(txnId2);
|
||||||
|
nodeParameters2.setToTxnId(null);
|
||||||
|
List<Node> nodes2 = getNodes(nodeParameters2);
|
||||||
|
|
||||||
|
assertTrue("Higher 'fromTxnId' param should yield fewer results", nodes2.size() < nodes1.size());
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
nodeService.deleteStore(storeRef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private NodeRef createTestNode(NodeRef parent)
|
||||||
|
{
|
||||||
|
NodeRef nodeRef = nodeService.createNode(parent,
|
||||||
|
ContentModel.ASSOC_CHILDREN,
|
||||||
|
QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, this.getClass().getName()),
|
||||||
|
ContentModel.TYPE_CONTAINER).getChildRef();
|
||||||
|
return nodeRef;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user