CMIS Dictionary Refactor

- follows pattern of Alfresco Dictionary
- simplified and much reduced DictionaryService interface
- model now compiled and cached (no more lots of small continuous object creations)
- walk model via simple getters
- validated (no dangling references)
- fix up property inheritance
- fix up sub-types for all types
- implements strict mode only for now (i.e. doesn't go outside of CMIS doc, folder, rel and policy)
- abstract helper for building other CMIS dictionaries (e.g. mapping all types in Alfresco)

Alfresco Dictionary:
- add event for initialized or re-initialized

Fix up usage in CMIS REST, Web Services and query. Tests pass.

REST support for custom sub-types and properties now reliable as constrained by validated CMIS model.

TODO:
- hook property value accessors into CMIS Dictionary

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13768 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2009-03-27 23:13:29 +00:00
parent df3e143e1c
commit 8fcebdc7cf
51 changed files with 2937 additions and 2095 deletions

View File

@@ -57,8 +57,6 @@ public class CMISQueryServiceImpl implements CMISQueryService
private CMISPropertyService cmisPropertyService;
private CMISMapping cmisMapping;
private QueryEngine queryEngine;
private NodeService nodeService;
@@ -81,15 +79,6 @@ public class CMISQueryServiceImpl implements CMISQueryService
this.cmisDictionaryService = cmisDictionaryService;
}
/**
* @param cmisMapping
* the cmisMapping to set
*/
public void setCmisMapping(CMISMapping cmisMapping)
{
this.cmisMapping = cmisMapping;
}
/**
* @param queryEngine
* the queryEngine to set
@@ -129,7 +118,7 @@ public class CMISQueryServiceImpl implements CMISQueryService
{
joinSupport = CMISJoinEnum.INNER_JOIN_SUPPORT;
}
CMISQueryParser parser = new CMISQueryParser(options, cmisDictionaryService, cmisMapping, joinSupport);
CMISQueryParser parser = new CMISQueryParser(options, cmisDictionaryService, joinSupport);
Query query = parser.parse(queryEngine.getQueryModelFactory());
CmisFunctionEvaluationContext functionContext = new CmisFunctionEvaluationContext();