mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.0/Cloud)
86232: Merged V4.2-BUG-FIX (4.2.4) to HEAD-BUG-FIX (5.0/Cloud) 86196: Merged DEV to V4.2-BUG-FIX (4.2.4) 84316: MNT-11784 The "not" keyword is no longer working in CMIS query. In CMISQueryParser.buildConjunction() was added check (getOccur() == Occur.EXCLUDE). 84522: MNT-11784 The "not" keyword is no longer working in CMIS query In OpenCmisQueryTest was added testNotKeyword() test. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94529 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -75,7 +75,9 @@ import org.alfresco.repo.search.impl.querymodel.Order;
|
|||||||
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
|
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
|
||||||
import org.alfresco.repo.search.impl.querymodel.QueryOptions.Connective;
|
import org.alfresco.repo.search.impl.querymodel.QueryOptions.Connective;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||||
|
import org.alfresco.service.cmr.model.FileInfo;
|
||||||
import org.alfresco.service.cmr.repository.ContentData;
|
import org.alfresco.service.cmr.repository.ContentData;
|
||||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||||
import org.alfresco.service.cmr.repository.MLText;
|
import org.alfresco.service.cmr.repository.MLText;
|
||||||
@@ -99,6 +101,7 @@ import org.apache.chemistry.opencmis.commons.enums.PropertyType;
|
|||||||
import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
|
import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
|
||||||
import org.junit.experimental.categories.Category;
|
import org.junit.experimental.categories.Category;
|
||||||
import org.springframework.extensions.surf.util.I18NUtil;
|
import org.springframework.extensions.surf.util.I18NUtil;
|
||||||
|
import org.springframework.extensions.webscripts.GUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author andyh
|
* @author andyh
|
||||||
@@ -5724,6 +5727,53 @@ public class OpenCmisQueryTest extends BaseCMISTest
|
|||||||
testExtendedQuery("SELECT * FROM cm:ownable ", 1, false, "cmis:name", new String(), false);
|
testExtendedQuery("SELECT * FROM cm:ownable ", 1, false, "cmis:name", new String(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testNotKeyword() throws Exception
|
||||||
|
{
|
||||||
|
final String folderName = "testfolder" + GUID.generate();
|
||||||
|
final String docName = "testdoc." + GUID.generate();
|
||||||
|
final FileInfo fileInfo = transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<FileInfo>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public FileInfo execute() throws Throwable
|
||||||
|
{
|
||||||
|
FileInfo folderInfo = fileFolderService.create(base, folderName, ContentModel.TYPE_FOLDER);
|
||||||
|
nodeService.setProperty(folderInfo.getNodeRef(), ContentModel.PROP_NAME, folderName);
|
||||||
|
|
||||||
|
FileInfo fileInfo = fileFolderService.create(folderInfo.getNodeRef(), docName, ContentModel.TYPE_CONTENT);
|
||||||
|
nodeService.setProperty(fileInfo.getNodeRef(), ContentModel.PROP_NAME, docName);
|
||||||
|
nodeService.addAspect(fileInfo.getNodeRef(), ContentModel.ASPECT_VERSIONABLE, null);
|
||||||
|
|
||||||
|
return fileInfo;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
String query = "SELECT * FROM cmis:document WHERE NOT cmis:name = '" + docName + "'";
|
||||||
|
CMISQueryOptions options = new CMISQueryOptions(query, rootNodeRef.getStoreRef());
|
||||||
|
|
||||||
|
CMISResultSet rs = cmisQueryService.query(options);
|
||||||
|
|
||||||
|
assertEquals(doc_count, rs.length());
|
||||||
|
for (CMISResultSetRow row : rs)
|
||||||
|
{
|
||||||
|
Serializable sValue = row.getValue("cmis:name");
|
||||||
|
assertFalse(sValue.equals(docName));
|
||||||
|
}
|
||||||
|
|
||||||
|
query = "SELECT cmis:name FROM cmis:document WHERE cmis:name = '" + docName + "'";
|
||||||
|
options = new CMISQueryOptions(query, rootNodeRef.getStoreRef());
|
||||||
|
|
||||||
|
rs = cmisQueryService.query(options);
|
||||||
|
|
||||||
|
assertEquals(1, rs.length());
|
||||||
|
CMISResultSetRow row = rs.iterator().next();
|
||||||
|
|
||||||
|
Serializable sValue = row.getValue("cmis:name");
|
||||||
|
assertTrue(sValue.equals(docName));
|
||||||
|
|
||||||
|
fileFolderService.delete(fileInfo.getNodeRef());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void testOrderableProperty(String propertyQueryName)
|
private void testOrderableProperty(String propertyQueryName)
|
||||||
{
|
{
|
||||||
testOrderBy("SELECT " + propertyQueryName + " FROM test:extendedContent ORDER BY " + propertyQueryName + " ASC", 13, false, Order.ASCENDING, CMISQueryMode.CMS_STRICT,
|
testOrderBy("SELECT " + propertyQueryName + " FROM test:extendedContent ORDER BY " + propertyQueryName + " ASC", 13, false, Order.ASCENDING, CMISQueryMode.CMS_STRICT,
|
||||||
|
Reference in New Issue
Block a user