11 Commits

Author SHA1 Message Date
Derek Hulley
ae202a3f24 Merged DEV to HEAD
31651: Fixed up concurrency tests: target concurrent aspect adds in addition to numeric property increments
   31652: Ensure DB-based concurrency problems are propagated when updating alf_node (not just optimistic lock detections)
   31823: TransactionalCache provides REPEATABLE READ
          - Values found in shared cache are placed into transactional cache
          - Previously, values could keep changing until first write (READ COMMITTED)
            but now the first read sets the value until it is changed by the current
            transaction
   31825: Minor comment about node version rollover after version=32767
   31826: Immutable node caches: properties, aspects and parent assocs are immutable
          - cache entries are only put but never updated
          - zero cluster overhead for these 3 caches
          - Stale nodeCache detection when reading properties, aspects or parent assocs
          - Added tests to introspect on the caches directly to validate behaviour
          - Ensure that each node gets a single version increment per transaction
   31854: Cater for cm:auditable changes during touchNode()


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31912 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-11-11 16:37:07 +00:00
Steven Glover
a667dc498a Fix for ALF-10842
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31673 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-11-03 09:44:36 +00:00
Derek Hulley
1dca4cd1fc Fixed ALF-10964: Add back cache for getChildByName
- 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
2011-10-22 05:06:15 +00:00
Derek Hulley
7e27fbd5d8 Rework APIs of new getChildAssocs with result count limit
- 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
2011-10-18 13:48:32 +00:00
Derek Hulley
68f462492e Fix for rev 31223: Missing child node cache invalidation call (ALF-10699)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31253 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-10-16 05:24:06 +00:00
Derek Hulley
fb406b769b Merged V3.4-BUG-FIX
30520: Revisited timestamp propagation (cm:modified) now that the system does this by default
          - Original low-level code (Hibernate optimizations) pulled back into NodeService implementation
          - Use case driven prompting to touch the parent node
          - Full indexing and policy callbacks against parent (was missing completely)
          - Optimizations to ensure parent node modifications are only done where required and
            the same transaction is used where possible
          - 1s accuracy limit is maintained to prevent unnecessary modifications
          - Enhanced tests to cover use cases where propagation is expected
            - ALF-10262: Timestamp propagation is enabled by default
          - Fixes or will fix:
            - ALF-10291: Test disabled: SOLRTrackingComponentTest (various)
            - ALF-7433: A file deleted using the web UI still appears in a NFS mount but with NULL stats
            - ALF-10271: Test disabled: ArchiveAndRestoreTest.testAR7889ArchiveAndRestoreMustNotModifyAuditable
            - ALF-10267: Test disabled: NodeServiceTest.testArchiveAndRestore
         Also
          - Found problem where cm:auditable properties could be modified directly against the cached values
          - Extended locking of cached entities to the AuditablePropertiesEntity


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30598 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-09-19 11:30:56 +00:00
Derek Hulley
e40265f1a1 Fixed ALF-10280: Slow to report « Duplicate entry » in database.
- DuplicateChildNodeNameException implements DoNotRetryException
 - Must be merged back to V3.4


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30468 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-09-13 12:40:21 +00:00
Derek Hulley
b0d88e65aa ALF-10267: Test disabled: NodeServiceTest.testArchiveAndRestore
- Timestamp propagation causing incorrect test results.
   Review node creation to ensure timestamp propagation doesn't run up to parents for no reason. 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30401 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-09-09 17:11:49 +00:00
Derek Hulley
9e84d86ec5 Fixed ALF-10061: NodeService.getAssoc() throws an exception if the requested association does not exist
- CMIS expects to get null (as per NodeService javadoc) but it was generating a concurrency exception
 - Added a specific call to getNodeAssocOrNull to the DAO


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30162 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-09-02 03:23:06 +00:00
Derek Hulley
c72a19b637 Merged DEV to HEAD:
29876: Removed emotive language from build.xml
   29877: Made getter final; should make members final.
   29879: Extra check for erroneous, pre-existing transactions
   29880: ALF-8966: RSOLR 042: Node deletes keep DB ID (ALF-8965)
          - There is no longer code to change the store ID and UUID for an entry in alf_node
          - During store moves, new node entries are created and node data is moved onto the new node
          - Primarily affects archive/restore use cases
          - Any NodeRef can be tracked using the DB ID associated with it (see NodeService.getNodeStatus)
   29926: Minor toString modification
   29927: Code cleanup: line endings, non-javadoc and isDebugEnabled
   29928: Moved exception absorbtion out of the non-propagating txn (and cleaned up unused code)
   29930: Test for ALF-5714: Write transactions serialized on MySQL
          - The fix is to add this to the MySQL configuration and restart the MySQL server
            innodb_locks_unsafe_for_binlog = true
            See: http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_locks_unsafe_for_binlog
          - The test holds DB resources from one archive process while doing another.  It fails without the setting given.
          - TODO: Documentation required
   29969: ALF-8966: RSOLR 042: Node deletes keep DB ID (ALF-8965)
          - Fixed timing of circular hierarchy detection
   29972: ALF-8966: RSOLR 042: Node deletes keep DB ID (ALF-8965)
          - Fixed ACL retrieval from old parent node during move
          - Fixes PermissionServiceTest failures
   29979: Fix test's initialization
   29987: Fixed txn demarcation during write of transfer report


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30044 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-08-24 23:09:39 +00:00
Derek Hulley
afe709ae54 Merged DEV/SWIFT to HEAD
27908: ALF-8706: RSOLR 023: Locale is persisted for all nodes
          - Part of ALF-7991: RSOLR 023: Locale support for query: Repository
          - Added alf_node.locale_id mandatory column
          - sys:localizable is now spoofed and mandatory on sys:base
          - sys:locale property is always available
          - The locale set is the I18NUtil.getLocale() (thread then server)
          - TODO: Upgrade scripts, so drop database to take this change
   27909: ALF-8706: RSOLR 023: Locale is persisted for all nodes
          - Part of ALF-7991: RSOLR 023: Locale support for query: Repository
          - Extended locale test to ensure that sys:locale can be set using properties during create
   27910: ALF-8707: RSOLR 023: Upgrade to give nodes their default locales
          - Part of ALF-7991:RSOLR 023: Locale support for query: Repository
          - Upgrade scripts for PostgreSQL and MySQL: patch.db-V4.0-Node-Locale
   27912: WCM QS ML Support for creating missing intermediate directories when adding an "orphan" translation, plus tests
   27913: Fixed failing JbpmEngineUnitTest.
   27914: Build fix. Fixes failing test DiscussionServiceTest.testDeleteTopLevelPost
   27916: WCM QS ML forms config for overrideable name, and passing the initially orphaned flag through to the behaviour
   27917: Enable the WCM QS ML Manage Translations action in the folder details page, as well as the document details page as before
   27919: Quick build fix. Introduction of new property sys:locale on all nodes means that FormService is seeing some off-by-one errors.
   27921: WCM QS ML - Support copying parts of the section collections to the new folder when translating a section, plus tests
   27925: ALF-8707: RSOLR 023: Upgrade to give nodes their default locales
          - Part of ALF-7991: RSOLR 023: Locale support for query: Repository
          - Upgrade scripts for DB2, Oracle and SQLServer
   27927: Update FileFolderService list/paging (RINF 09) & CQ permission checking (RINF 11)
          - also added additional unit tests and update FileFolderPerformanceTester utility (for read / list testing)
   27930: Corrected bean reference: "ServiceRegistry"
   27931: Partially implemented EnvironmentImpl.getPublishingEvents(). This currently only supports searching on publishing event ids.
   27933: Implemented PublishService.getPublishingEvent(String) method.
   27934: WCM QS ML Pull over the locale resolver from Ian, and delegate much of the work to the main class
   27941: ALF-7874 - Mime Type entries for detection and display for some Apple and Adobe formats
   27947: ALF-2707 - Largely fix custom site properties that have multiple values, and custom site properties without a full definition, plus tests.
   27964: ALF-7339:RSOLR 009: Index track and build from SOLR
          - complete
          ALF-7475: RSOLR 010: Index integrity check
          - check ACL info
   27966: RINF 09: FileFolderService list - if skipCount > number of items then return empty list
          - related to ALF-7884 when using CMIS getChildren (via OpenCMIS - eg. http://localhost:8080/alfresco/cmisatom/...)
   27968: ALF-7884 - getChildren() returns an error if skipCount > number of children
   27970: WCM QS Fix issue in the webapp for sites where no port has been given yet
   27972: WPUB: F150: Foundation API: Request that a node be removed from the live environment
          - Initial support for "unpublish"
   27975: ALF-8790:RSOLR 033: Automated build produces SOLR artifacts
          - add configuration per core based on properties files
   27976: ALF-8790: RSOLR 033: Automated build produces SOLR artifacts
          - restructure, added properties files for config, track archived store
   27977: ALF-8790: RSOLR 033: Automated build produces SOLR artifacts
          - Solr zip included in continuous build
   27978: Fixed missing policy event when sys:locale is changed.
   27979: Fixed tests and checks after sys:locale became a mandatory property.
   27982: ALF-8547: WPUB: F163: Foundation API: Create/update/remove a delivery channel
          - Code and tests for channel update and delete
   28007: Implemented starting publishing workflow on schedulePublishingEvent method. Added tests for PublishingEventHelper.
   28008: Updated web-publishing-context.xml to include WorkflowService and workflowEngineId for PublishingEventHelper.
   28009: Added more PublishingEventHelper tests.
   28012: Support for ALF-8792: RSOLR 036: SOLR APIs to support index integrity checking
   28013: Fix failing Web Publishing tests.
   28015: Adding a DoNotCopy CopyBehaviourCallback for the fm:commentsRollup aspect. Part of ALF-8498.
   28016: Bring over the WCM QS ML RootNavInterceptor from Ian, and productise it
   28019: CMIS browser: close invalid connections
   28025: Update the WCM QS ML behaviour, webscript and test to handle more things having locales by default
   28026: ML-WQS:
          - Wired up the RootNavInterceptor to detect locale based on path
          - Wired up the replacement locale resolver to respect the locale determined by the RootNavInterceptor
          - Adjusted "Manage Translations" page to render the data table correctly
          - Adjusted site search box to restrict search to selected site localisation
          - Adjusted top nav component to select menu items only from appropriate site localisation
   28029: Added more tests for PublishingEventHelper and PublishingQueueImpl. Also added WebPublishingTestSuite.
   28034: Support for ALF-8792: RSOLR 036: SOLR APIs to support index integrity checking
          - ACL and ACLTX support
   28036: WCM QS ML UI tweaks for marking something as the initial translation
   28038: ALF-8548: WPUB: F165: Foundation API: Cancel a scheduled publishing event
           - Code and initial test cases
   28043: Added missing JCR mapping for property type d:locale
           - This property type is not new, btw.
   28312: RepoBM: minor cleanup
          - remove hardcoded JMeter install dir
          - add configurable user.dir (for default import of test data) - check that default zip exists
          - update readme
          - default threadfolder should be null (in case of absolute folder paths)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28320 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-06-09 22:40:27 +00:00