mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged HEAD-QA to HEAD (4.2) (including moving test classes into separate folders)
51903 to 54309 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@54310 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,321 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- xsi:schemaLocation="http://www.alfresco.org/model/dictionary/1.0 ../../../../../../config/alfresco/model/modelSchema.xsd" -->
|
||||
<model name="test:cmis-query-test" xmlns="http://www.alfresco.org/model/dictionary/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
|
||||
<description>Test model the cmis query tests</description>
|
||||
<author>Alfresco</author>
|
||||
<published>2010-01-22</published>
|
||||
<version>0.1</version>
|
||||
|
||||
<imports>
|
||||
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
|
||||
<import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
|
||||
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
|
||||
</imports>
|
||||
|
||||
<namespaces>
|
||||
<namespace uri="http://www.alfresco.org/test/cmis-query-test" prefix="test"/>
|
||||
</namespaces>
|
||||
|
||||
<types>
|
||||
<type name="test:extendedContent">
|
||||
<title>Extended Content</title>
|
||||
<parent>cm:content</parent>
|
||||
<includedInSuperTypeQuery>true</includedInSuperTypeQuery>
|
||||
<properties>
|
||||
<!-- d:text -> String -->
|
||||
|
||||
<property name="test:singleTextBoth">
|
||||
<type>d:text</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>both</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:singleTextUntokenised">
|
||||
<type>d:text</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>false</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:singleTextTokenised">
|
||||
<type>d:text</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<property name="test:multipleTextBoth">
|
||||
<type>d:text</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>both</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleTextUntokenised">
|
||||
<type>d:text</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>false</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleTextTokenised">
|
||||
<type>d:text</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:mltext -> String -->
|
||||
|
||||
<property name="test:singleMLTextBoth">
|
||||
<type>d:mltext</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>both</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:singleMLTextUntokenised">
|
||||
<type>d:mltext</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>false</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:singleMLTextTokenised">
|
||||
<type>d:mltext</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<property name="test:multipleMLTextBoth">
|
||||
<type>d:mltext</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>both</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleMLTextUntokenised">
|
||||
<type>d:mltext</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>false</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleMLTextTokenised">
|
||||
<type>d:mltext</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:float -> Decimal -->
|
||||
|
||||
<property name="test:singleFloat">
|
||||
<type>d:float</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleFloat">
|
||||
<type>d:float</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:double -> Decimal -->
|
||||
|
||||
<property name="test:singleDouble">
|
||||
<type>d:double</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleDouble">
|
||||
<type>d:double</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:int -> Integer -->
|
||||
|
||||
<property name="test:singleInteger">
|
||||
<type>d:int</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleInteger">
|
||||
<type>d:int</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:long -> Integer -->
|
||||
|
||||
<property name="test:singleLong">
|
||||
<type>d:long</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleLong">
|
||||
<type>d:long</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:boolean -> Boolean -->
|
||||
|
||||
<property name="test:singleBoolean">
|
||||
<type>d:boolean</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleBoolean">
|
||||
<type>d:boolean</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:date -> DateTime -->
|
||||
|
||||
<property name="test:singleDate">
|
||||
<type>d:date</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleDate">
|
||||
<type>d:date</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>true</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
|
||||
<!-- d:datetime -> DateTime -->
|
||||
|
||||
<property name="test:singleDatetime">
|
||||
<type>d:datetime</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>both</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
<property name="test:multipleDatetime">
|
||||
<type>d:datetime</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>true</multiple>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<tokenised>both</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
|
||||
<type name="test:extendedFolder">
|
||||
<title>Extended Folder</title>
|
||||
<parent>cm:folder</parent>
|
||||
</type>
|
||||
|
||||
<type name="test:type-that-requires-encoding">
|
||||
<title>Type that requires encoding</title>
|
||||
<parent>cm:content</parent>
|
||||
<includedInSuperTypeQuery>true</includedInSuperTypeQuery>
|
||||
<properties>
|
||||
<property name="test:property-that-requires-encoding">
|
||||
<type>d:text</type>
|
||||
<mandatory>false</mandatory>
|
||||
<multiple>false</multiple>
|
||||
<index enabled="true" >
|
||||
<atomic>true</atomic>
|
||||
<tokenised>both</tokenised>
|
||||
</index>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
</types>
|
||||
|
||||
<aspects>
|
||||
<aspect name="test:aspect-that-requires-encoding">
|
||||
<title>Type that requires encoding</title>
|
||||
<includedInSuperTypeQuery>true</includedInSuperTypeQuery>
|
||||
</aspect>
|
||||
</aspects>
|
||||
|
||||
</model>
|
@@ -30,6 +30,8 @@ import org.alfresco.cmis.CMISPropertyDefinition;
|
||||
import org.alfresco.cmis.CMISQueryException;
|
||||
import org.alfresco.cmis.CMISScope;
|
||||
import org.alfresco.cmis.CMISTypeDefinition;
|
||||
import org.alfresco.opencmis.dictionary.PropertyDefinitionWrapper;
|
||||
import org.alfresco.opencmis.dictionary.TypeDefinitionWrapper;
|
||||
import org.alfresco.repo.search.impl.lucene.AbstractLuceneQueryParser;
|
||||
import org.alfresco.repo.search.impl.lucene.LuceneFunction;
|
||||
import org.alfresco.repo.search.impl.querymodel.FunctionArgument;
|
||||
@@ -42,6 +44,8 @@ import org.alfresco.repo.search.impl.querymodel.impl.functions.Upper;
|
||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
|
||||
import org.apache.lucene.queryParser.ParseException;
|
||||
import org.apache.lucene.search.Query;
|
||||
|
||||
@@ -454,5 +458,39 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
|
||||
}
|
||||
return propDef.getCardinality() == CMISCardinalityEnum.MULTI_VALUED;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext#getAlfrescoPropertyName(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public String getAlfrescoPropertyName(String propertyName)
|
||||
{
|
||||
CMISPropertyDefinition propertyDef = cmisDictionaryService.findProperty(propertyName, null);
|
||||
if(propertyDef != null)
|
||||
{
|
||||
QName mapped = propertyDef.getPropertyAccessor().getMappedProperty();
|
||||
if(mapped == null)
|
||||
{
|
||||
return propertyName;
|
||||
}
|
||||
else
|
||||
{
|
||||
return mapped.toString();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new CmisInvalidArgumentException("Unknown column/property " + propertyName);
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.repo.search.impl.querymodel.FunctionEvaluationContext#getAlfrescoTypeName(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public String getAlfrescoTypeName(String typeName)
|
||||
{
|
||||
throw new CMISQueryException("Unsupported");
|
||||
}
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user