Merged searchapi (5.2.1) to 5.2.N (5.2.1)

130039 gjames: SEARCH-159: Don't allow sort for cmis language


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@130295 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gethin James
2016-09-06 15:38:37 +00:00
parent 1d7829c1cf
commit 777ed4be5c
2 changed files with 25 additions and 3 deletions

View File

@@ -74,6 +74,10 @@ public class SearchMapper
PARAM_INCLUDE_ISLINK, PARAM_INCLUDE_PATH, PARAM_INCLUDE_PROPERTIES, PARAM_INCLUDE_ISLINK, PARAM_INCLUDE_PATH, PARAM_INCLUDE_PROPERTIES,
PARAM_INCLUDE_ASSOCIATION); PARAM_INCLUDE_ASSOCIATION);
public static final String CMIS = "cmis";
public static final String LUCENE = "lucene";
public static final String AFTS = "afts";
/** /**
* Turn the params into the Java SearchParameters object * Turn the params into the Java SearchParameters object
* @param params * @param params
@@ -122,13 +126,13 @@ public class SearchMapper
switch (q.getLanguage().toLowerCase()) switch (q.getLanguage().toLowerCase())
{ {
case "afts": case AFTS:
sp.setLanguage(LANGUAGE_FTS_ALFRESCO); sp.setLanguage(LANGUAGE_FTS_ALFRESCO);
break; break;
case "lucene": case LUCENE:
sp.setLanguage(LANGUAGE_LUCENE); sp.setLanguage(LANGUAGE_LUCENE);
break; break;
case "cmis": case CMIS:
sp.setLanguage(LANGUAGE_CMIS_ALFRESCO); sp.setLanguage(LANGUAGE_CMIS_ALFRESCO);
break; break;
default: default:
@@ -163,6 +167,11 @@ public class SearchMapper
{ {
if (sort != null && !sort.isEmpty()) if (sort != null && !sort.isEmpty())
{ {
if (CMIS.equals(sp.getLanguage()))
{
throw new InvalidArgumentException(InvalidArgumentException.DEFAULT_MESSAGE_ID,
new Object[] { ": sort {} not allowed with cmis language" });
}
for (SortDef sortDef:sort) for (SortDef sortDef:sort)
{ {

View File

@@ -192,6 +192,19 @@ public class SearchMapperTests
fail("Invalid sortDefinition"); fail("Invalid sortDefinition");
} }
}); });
searchParameters = new SearchParameters();
searchParameters.setLanguage(SearchMapper.CMIS);
try
{
searchMapper.fromSort(searchParameters, Arrays.asList(new SortDef("FIELD", null, false)));
fail();
}
catch (InvalidArgumentException iae)
{
//You can't specify SORT when using the CMIS language
assertNotNull(iae);
}
} }