* replace path/push/pop mechanism as it doesn't work well at reporting where differences/validation errors occur.
* add getParent() to DbObject - so that a path-style identifier can be deduced for a DbObject when needed
* add DbProperty to specify a specific DbObject's property and value -- acts as a schema location pointer
* refactored Result code (need difference result and validation error result)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31527 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Added support to DbObjects to accept visitors
Added ValidatingVisitor to invoke suitable validator on each DbObject
Added NameValidator and NullValidator to operate on DbObject types
Added test suites
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31494 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Instead of the Differences being passed around on their own, the DiffContext is able to provide more information -- at present just the Dialect. The dialect can be used to change the way database objects are validated or differenced.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31466 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Found while testing XAMcontentStore
- Pulled stream copy code into AbstractContentWriter
- OutputStream closure (write-side) exception is rethrown to allow full rollback, etc
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31441 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Originally removed as part of the 'reverse lookup' of parentAssocsCache
- This cache is NOT clustered; the child target version is checked; requery if necessary
- NB: Cache misses are NOT cached. Do do so would mean making the cache clustered.
It is better to avoid querying for random files that don't exist over and over.
Add a higher level cache (as is done in CIFS) for that case.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31417 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- fixed performance regression since fix for ALF-3756 - actually due to some madness inside java.util.Locale as it hilariously calls String.intern() for every new instance - which we were now creating on every method intercepted
- added a helper to I18NUtil to retrieve just the lang of the locale (as used by the interceptor) which is only done once per thread like the usual locale management
- modified the interceptor to only actually retrieve the locale at all if it's going to use it for something, as some code paths do not
- in example of retrieving list of 1000 sites, CPU time (sampler) for String.intern() calls (previouslytop of method hotspot list) is down 75%
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31383 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- This use case uses getPaths() instead of cycleCheck. This is due to the nature of the archive process, but will
be changed once cycleCheck is made to happen faster.
- Efficient child node cache invalidation
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31382 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Was adding the cm:title property to the containing folder instead of the newly created files
- Since the MLPropertyInterceptor no longer uses the full Locale, this messed up the
AVM logic. There will probably be more fallout and the AVM MLText handling still needs fixing.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31330 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Use regular pattern of get -> select in the DAO
- All getChildren* batching done after the query
- Unit tests
- In progress: Added option (low level select only) to constrain by assoc ID
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31318 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- addition of index control aspect to surf-config objects - config xml files no longer indexed at all
- refactoring of My Profile user contents fts-alfresco queries to search specific known containers only rather than all
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31288 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Done while rolling in ALF-10839: Eliminate rule discovery overhead on property update when rules have been disabled
- Some checking of rule state done BEFORE walking up the node hierarchy
- Also fixes ALF-4216: disabledRules List is not thread safe
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31255 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261