diff --git a/config/alfresco/core-services-context.xml b/config/alfresco/core-services-context.xml
index b87b22a880..53b7a6de92 100644
--- a/config/alfresco/core-services-context.xml
+++ b/config/alfresco/core-services-context.xml
@@ -1120,6 +1120,9 @@
+
+ alfresco/model/dataTypeAnalyzers
+
@@ -1188,7 +1191,6 @@
- alfresco/model/dataTypeAnalyzers
alfresco/messages/system-model
alfresco/messages/dictionary-model
alfresco/messages/content-model
diff --git a/config/alfresco/repository.properties b/config/alfresco/repository.properties
index d3240213d6..9f8a7d3a42 100644
--- a/config/alfresco/repository.properties
+++ b/config/alfresco/repository.properties
@@ -281,6 +281,9 @@ lucene.write.lock.timeout=10000
lucene.commit.lock.timeout=100000
lucene.lock.poll.interval=100
+lucene.defaultAnalyserResourceBundleName=alfresco/model/dataTypeAnalyzers
+
+
# When transforming archive files (.zip etc) into text representations (such as
# for full text indexing), should the files within the archive be processed too?
# If enabled, transformation takes longer, but searches of the files find more.
diff --git a/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java b/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java
index 9fd8ba2ae5..1c7227d607 100644
--- a/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java
+++ b/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java
@@ -171,7 +171,7 @@ public class CMISBasePropertyDefinition implements CMISPropertyDefinition, Seria
break;
case TRUE:
default:
- String analyserClassName = propDef.getDataType().getAnalyserClassName();
+ String analyserClassName = propDef.resolveAnalyserClassName();
if(propDef.getDataType().getName().equals(DataTypeDefinition.BOOLEAN))
{
orderable = true;
diff --git a/source/java/org/alfresco/cmis/mapping/DirectProperty.java b/source/java/org/alfresco/cmis/mapping/DirectProperty.java
index ebebf6b531..754924079c 100644
--- a/source/java/org/alfresco/cmis/mapping/DirectProperty.java
+++ b/source/java/org/alfresco/cmis/mapping/DirectProperty.java
@@ -129,8 +129,7 @@ public class DirectProperty extends AbstractSimpleProperty
}
else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
- DataTypeDefinition dataType = propertyDef.getDataType();
- String analyserClassName = dataType.getAnalyserClassName();
+ String analyserClassName = propertyDef.resolveAnalyserClassName();
if (analyserClassName.equals(DateTimeAnalyser.class.getCanonicalName()))
{
field = field + ".sort";
diff --git a/source/java/org/alfresco/cmis/search/QueryTest.java b/source/java/org/alfresco/cmis/search/QueryTest.java
index aa34f6e767..7a639eda12 100644
--- a/source/java/org/alfresco/cmis/search/QueryTest.java
+++ b/source/java/org/alfresco/cmis/search/QueryTest.java
@@ -41,12 +41,12 @@ import org.alfresco.cmis.CMISDictionaryModel;
import org.alfresco.cmis.CMISPropertyDefinition;
import org.alfresco.cmis.CMISQueryException;
import org.alfresco.cmis.CMISQueryOptions;
+import org.alfresco.cmis.CMISQueryOptions.CMISQueryMode;
import org.alfresco.cmis.CMISResultSet;
import org.alfresco.cmis.CMISResultSetColumn;
import org.alfresco.cmis.CMISResultSetMetaData;
import org.alfresco.cmis.CMISResultSetRow;
import org.alfresco.cmis.CMISTypeDefinition;
-import org.alfresco.cmis.CMISQueryOptions.CMISQueryMode;
import org.alfresco.cmis.dictionary.CMISAbstractDictionaryService;
import org.alfresco.cmis.mapping.BaseCMISTest;
import org.alfresco.cmis.mapping.BaseTypeIdProperty;
@@ -81,7 +81,6 @@ import org.alfresco.repo.search.impl.querymodel.Order;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
import org.alfresco.repo.search.impl.querymodel.QueryOptions.Connective;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
-import org.alfresco.service.cmr.dictionary.PropertyDefinition;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.MLText;
@@ -90,14 +89,14 @@ import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.repository.datatype.Duration;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.namespace.QName;
+import org.alfresco.util.CachingDateFormat;
+import org.alfresco.util.ISO9075;
import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.CharStream;
import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.tree.CommonTree;
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
-import org.alfresco.util.CachingDateFormat;
-import org.alfresco.util.ISO9075;
import org.springframework.extensions.surf.util.I18NUtil;
/**
@@ -235,7 +234,7 @@ public class QueryTest extends BaseCMISTest
super.setUp();
DataTypeDefinition dataType = dictionaryService.getDataType(DataTypeDefinition.DATETIME);
- String analyserClassName = dataType.getAnalyserClassName();
+ String analyserClassName = dataType.resolveAnalyserClassName();
usesDateTimeAnalyser = analyserClassName.equals(DateTimeAnalyser.class.getCanonicalName());
f0 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("cm", "Folder 0", namespaceService), ContentModel.TYPE_FOLDER).getChildRef();
diff --git a/source/java/org/alfresco/repo/dictionary/RepoDictionaryDAOTest.java b/source/java/org/alfresco/repo/dictionary/RepoDictionaryDAOTest.java
index 94339e3193..2a39c42707 100644
--- a/source/java/org/alfresco/repo/dictionary/RepoDictionaryDAOTest.java
+++ b/source/java/org/alfresco/repo/dictionary/RepoDictionaryDAOTest.java
@@ -190,7 +190,7 @@ public class RepoDictionaryDAOTest extends TestCase
assertEquals("Assoc1 Description", assocDef.getDescription());
QName datatype = QName.createQName(TEST_URL, "datatype");
DataTypeDefinition datatypeDef = service.getDataType(datatype);
- assertEquals("Datatype Analyser", datatypeDef.getAnalyserClassName());
+ assertEquals("alfresco/model/dataTypeAnalyzers", datatypeDef.getAnalyserResourceBundleName());
}
public void testConstraints()
diff --git a/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java b/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java
index 7a5e463a4d..f4e3200217 100644
--- a/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java
+++ b/source/java/org/alfresco/repo/forms/processor/node/MockClassAttributeDefinition.java
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.List;
+import java.util.Locale;
import org.alfresco.repo.dictionary.IndexTokenisationMode;
import org.alfresco.service.cmr.dictionary.AssociationDefinition;
@@ -293,4 +294,29 @@ public class MockClassAttributeDefinition implements PropertyDefinition, Associa
{
return targetMany;
}
+
+ /* (non-Javadoc)
+ * @see org.alfresco.service.cmr.dictionary.PropertyDefinition#getAnalyserResourceBundleName()
+ */
+ @Override
+ public String getAnalyserResourceBundleName()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.alfresco.service.cmr.dictionary.PropertyDefinition#resolveAnalyserClassName(java.lang.String, java.util.Locale, java.lang.ClassLoader)
+ */
+ @Override
+ public String resolveAnalyserClassName(Locale locale)
+ {
+ return null;
+ }
+
+ @Override
+ public String resolveAnalyserClassName()
+ {
+ return null;
+ }
}
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneIndexerImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneIndexerImpl.java
index 808fb02729..b50ecaf741 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneIndexerImpl.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneIndexerImpl.java
@@ -838,7 +838,7 @@ public class ADMLuceneIndexerImpl extends AbstractLuceneIndexerImpl imp
if (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
DataTypeDefinition dataType = propertyDef.getDataType();
- String analyserClassName = dataType.getAnalyserClassName();
+ String analyserClassName = propertyDef.resolveAnalyserClassName();
isDateTime = analyserClassName.equals(DateTimeAnalyser.class.getCanonicalName());
}
}
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java
index ee90276ce3..1d448d4bad 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java
@@ -383,7 +383,7 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS
else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
DataTypeDefinition dataType = propertyDef.getDataType();
- String analyserClassName = dataType.getAnalyserClassName();
+ String analyserClassName = propertyDef.resolveAnalyserClassName();
if (analyserClassName.equals(DateTimeAnalyser.class.getCanonicalName()))
{
field = field + ".sort";
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java
index 2c2b244148..8a3dc8cf64 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneTest.java
@@ -4607,7 +4607,7 @@ public class ADMLuceneTest extends TestCase implements DictionaryListener
PropertyDefinition propertyDef = dictionaryService.getProperty(QName.createQName(TEST_NAMESPACE, "datetime-ista"));
DataTypeDefinition dataType = propertyDef.getDataType();
- String analyserClassName = dataType.getAnalyserClassName();
+ String analyserClassName = propertyDef.resolveAnalyserClassName();
boolean usesDateTimeAnalyser = analyserClassName.equals(DateTimeAnalyser.class.getCanonicalName());
Date date = new Date();
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java
index fdf49cce56..17b85e55b9 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java
@@ -748,8 +748,7 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl impl
isText = propertyDef.getDataType().getName().equals(DataTypeDefinition.TEXT);
if (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME))
{
- DataTypeDefinition dataType = propertyDef.getDataType();
- String analyserClassName = dataType.getAnalyserClassName();
+ String analyserClassName = propertyDef.resolveAnalyserClassName();
isDateTime = analyserClassName.equals(DateTimeAnalyser.class.getCanonicalName());
}
}