30458: ALF-10100: need to be able to apply %age or abs disk space usage constraints on ${dir.cachedcontent}
30573: ALF-9613: Add min age of files checking to cached content cleaner
30594: ALF-10100: added more sensible default in sample config for quota size (4GB)
30695: ALF-10391, ALF-10392: Added MBeans and improved logging for monitoring purposes.
30850: THOR-202: CachingContentStore quota manager should reject large files
30901: Added warn-level logging about failure to cache content item
30951: THOR-217 - when the quota is met or exceeded, then next time the cleaner runs it must use some strategy to make some space.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30956 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
30744: ALF-9524: WCM: Defining a complex type with 'abstract' attribute to true does not allow other complex types to define elements with the same name
- Fix by Pavel
30804: ALF-9524: Fix to NPE by Pavel
30812: ALF-718: Rules Fire Emails before Transaction Commit/Rollback
Added tests and moved email sending into a post commit callback.
30820: Fix for ALF-10516 - 'My Sites' dashlet should indicate it is loading rather than say 'No sites'
30824: Fixed ALF-10470: DeclaritiveRegistry is looping continuously and re-initializing
- Only replicate removals for the cache. The reset always does a remove first.
<cache
name="org.alfresco.cache.webScriptsRegistryCache"
...
replicateUpdates = false,
...
</cache>
30827: ALF-10513 60k Site Performance: Unable to delete user + request not acknowledged for 2 minutes
Now about 3 to 4 seconds
30828: Andy H recommended change to lucene indexer values
30831: ALF-718: Fix for InvitationServiceImplTest
Fixes behaviour broken by original fix for ALF-718: the send-after-commit does NOT work for the invitation service, so it was necessary
to change the code to only send-after-commit in the context of a rule.
30843: Fixed ALF-7698 "Defects in tags picker in SHARE." according to feedback provided in ALF-9953 "Decide order where new items shall appear in the object finder."
30844: ALF-9544 - Inbound email restricts file name to 86 characters or less.
used QName.createQNameWithValidLocalName() as suggested.
added new EmailServiceImplTest
30849: Fixed ALF-8776 "Rule details dialog handling of apostrophes"
30862: Merged DEV/TEMPORARY to V3.4-BUG-FIX (with improvements)
30856: ALF-10288: Regression of ALF-1997: non domain users cannot bypass SSO in Share using /share/page?pt=login
In SSOAuthenticationFilter.doFilter() method added check (PAGE_SERVLET_PATH.equals(req.getServletPath()) && LOGIN_PATH_INFORMATION.equals(req.getPathInfo()).
30864: SMTP Server, To and From address format.
- Out standards for from and to address were stuck in the 1980s!
30867: ALF-10517 - 'My Content' slow
- performance improvements by reworking Lucene queries used to retrieve recently modified and recently created content for a user
- converted queries to fts-alfresco
- improvements from 3.5sec per page render down to 1.1 secs
30874: MERGE DEV to V3.4-BUG-FIX
30851 : ALF-9558 - Unchecked Return Value
30882: - ScriptGroup.isRootGroup() now stops if it finds a single parent rather than doing a size on all parent groups.
Not sure the logic (not changed by me) is correct as it includes parents that are site groups.
- SiteServiceImpl now only gets the specified number of sites. Sometimes it would have return more if AuthorityDAOImpl
switched approach used to get containing authorities.
- Overloaded getContainingAuthorities to take a size parameter, deprecated other and switched calling code
Done for isRootGroup activity.
30910: - Fix build error
- Found a better way to use filter in AuthorityDAOImpl.getContainingAuthoritiesInZone
so that we don't need to reset the filter, by using the +ve hits from first approach
if we switch to second approach.
30925: - ALF-10501 60k Site Performance: Searching for a group to add to a site with a value that matches a few sites takes 2 minutes
ALF-10502 60k Site Performance: Admin Console | Groups: search with a value that matches a few sites takes 70 seconds
ALF-10504 60k Site Performance: Admin Console | Groups | Browse Groups page appears corrupt as it never finishes loading
- All the above were slow as a result of ScriptGroup.isRootGroup()
- ScriptGroup.isRootGroup() and ScriptGroup.isAdminGroup() removed - Checked with KevinR that these are not needed any more.
- Removed code added on 30 Sep 11 to support isRootGroup (the size parameter to AuthorityDAO.getContainingAuthorities)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30935 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- recent changes (unsure which...) mean that somewhere in rules services a RunAs(system) is interfering with the RunAs(user) already set on the outer txn - this means that all Share sites migrated from 3.X to 4.0 in the last couple of weeks (including Community 4.0a) will not have the correct user permissions.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30914 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
30342: Dev branch for Site performance issues (including rework of AuthorityService.getAuthorities() to use a 'lazy' set and DM indexing rework)
ALF-9899 Huge share site migration, add group to site and user access site related performance issue.
ALF-9208 Performance issue, during load tests /share/page/user/user-sites is showing to be the most expensive.
ALF-9692 Performance: General performance of Alfresco degrades when there are 1000s of sites present
- ancestor-preloading
- hasAuthority
- huge site test
30370: - Save changed to do with adding childAuthorityCache to AuthorityDAOImpl
- Increase aspectsTransactionalCache size as it blows up
30387: Experimental solution to 'cascading reindex' performance problem
- Now only Lucene container documents for a single subtree are reprocessed on addition / removal of a secondary child association
- No need to delete and re-evaluate ALL the paths to all the nodes in the subtree - just the paths within the subtree
- Lucene deltas now store the IDs of ANCESTORs to mask out as well as documents to reindex
- Merge handles deletion of these efficiently
- Node service cycle checks changed from getPaths to recursive cycleCheck method
- Adding a group to 60,000 sites might not require all paths to all sites to be re-evaluated on every change!
30389: Missed files from last checkin
30390: Optimizations / fixes to Alan's test!
30393: Bug fix - wasn't adding new documents into the index!
30397: Fixed a problem with bulk loading trying to bulk load zero parent associations
Also tweaked reindex calls
30399: Correction - don't cascade below containers during path cascading
30400: Another optimization - no need to trigger node bulk loading during path cascading - pass false for the preload flag
30404: Further optimizations
- On creation of a secondary child association, make a decision on whether it is cheaper to cascade reindex the parent or the child, based on the number of parent associations to the child
- Assumes that if there are more than 5 parent associations, it's cheaper to cascade reindex the parent
- Add a new authority to a zone (containing 60,000 authorities) - cascade reindex the authority, not the zone
- Add a group (in 60,000 sites) to a site - cascade reindex the site, not the group
- Caching of child associations already traversed during cascade reindexing
- Site creation time much reduced!
30407: Logic fix: Use 'delete only nodes' behaviour on DM index filtering and merging, now we are managing container deletions separately
30408: Small correction related to last change.
30409: Correction to deletion reindex behaviour (no need to regenerate masked out containers)
- Site CRUD operations now all sub-second with 60,000 sites!
30410: Stop the heartbeat from trying to load and count all site groups
- Too expensive, as we might have 60,000 sites, each with 4 groups
- Now just counts the groups in the default zone (the UI visible ones)
30411: Increased lucene parameters to allow for 'path explosion'
- 9 million lucene documents in my index after creating 60,000 Share sites (most of them probably paths) resulting in sluggish index write performance
- Set lucene.indexer.mergerTargetIndexCount=8 (142 documents in smallest index)
- Increased lucene.indexer.maxDocsForInMemoryMerge, lucene.indexer.maxDocsForInMemoryIndex
30412: Test fixes
30413: Revert 'parent association batch loading' changes (as it was a bad idea and is no longer necessary!)
- Retain a few caching bug fixes however
30416: Moved UserAuthoritySet (lazy load authority set) from PermissionServiceImpl to AuthorityServiceImpl
30418: - Remove 'new' hasAuthority from authorityService so it is back to where we started.
- SiteServiceHugeTest minor changes
30421: Prevent creation of a duplicate root node on updating the root
- Use the ANCESTOR field rather than ISCONTAINER to detect a node document, as the root node is both a container and a node!
30447: Pulled new indexing behaviour into ADMLuceneIndexerImpl and restored old behaviour to AVMLuceneIndexerImpl to restore normal AVM behaviour
30448: - Cache in PermissionServiceImpl cleared if an authority container has an association added or removed
Supports the generateKey method which includes the username
Supports changes in group structures
- Moved logic to do with ROLE_GUEST from PermissionServiceImpl to AuthorityServiceImpl
30465: - Tidy up tests in SiteServiceTestHuge
30532: - Added getContainingAuthoritiesInZone to AuthorityService
- Dave Changed PeopleService.getContainerGroups to only return groups in the DEFAULT zone
- Fixed RM code to use getAuthoritiesForUser method with just the username again.
30558: Build fixes
- Fixed cycleCheck to throw a CyclicChildRelationshipException
- More tidy up of AVM / ADM indexer split
- Properly control when path generation is cascaded (not required on a full reindex or a tracker transaction)
- Support indexing of a 'fake root' parent. Ouch my head hurts!
30588: Build fixes
- StringIndexOutOfBoundsException in NodeMonitor
- Corrections to 'node only' delete behaviour
- Use the PATH field to detect non-leaf nodes (it's the only stored field with which we can recognize the root)
- Moved DOD5015Test.testVitalRecords() to the end - the only way I could work out how to get the full TestCase to run
30600: More build fixes
- Broadcast ALL node deletions to indexer (even those from cascade deletion of primary associations)
- Allows indexer to wipe out all affected documents from the delta even if some have already been flushed under different parents by an intricate DOD unit test!
- Pause FTS in DOD5015Test to prevent intermittent test failures (FTS can temporarily leave deleted documents in the index until it catches up)
- More tidy up of ADMLuceneIndexerImpl
- flushPending optimized and some unnecessary member variables removed
- correction to cascade deletion behaviour (leave behind containers of unaffected secondary references)
- unused MOVE action removed
- further legacy logic moved into AVMLuceneIndexerImpl
30620: More build fixes
- Cope with a node morphing from a 'leaf' to a container during its lifetime
- Container documents now created lazily in index as and when necessary
- Blank out 'nth sibling' field of synthesized paths
- ADMLuceneTest now passes!
- TaggingServiceImplTest also passes - more special treatment for categories
30627: Multi tenancy fixes
30629: Possible build fix - retrying transaction in ReplicationServiceIntegrationTest.tearDown()
30632: Build fix - lazy container generation after a move
30636: Build fix: authority comparisons are case sensitive, even when that authority corresponds to a user (PermissionServiceTest.testPermissionCase())
30638: Run SiteServiceTestHuge form a cmd line
set SITE_CPATH=%TOMCAT_HOME%/lib/*;%TOMCAT_HOME%/endorsed/*;%TOMCAT_HOME%/webapps/alfresco/WEB-INF/lib/*;\
%TOMCAT_HOME%/webapps/alfresco/WEB-INF/classes;%TOMCAT_HOME%/shared/classes;
java -Xmx2048m -XX:MaxPermSize=512M -classpath %SITE_CPATH% org.alfresco.repo.site.SiteServiceTestHuge ...
Usage: -Daction=usersOnly
-Dfrom=<fromSiteId> -Dto=<toSiteId>
-Dfrom=<fromSiteId> -Dto=<toSiteId> -Daction=sites -Drestart=<restartAtSiteId>
-Dfrom=<fromSiteId> -Dto=<toSiteId> -Daction=groups -Drestart=<restartAtSiteId>
30639: Minor changes to commented out command line code for SiteServiceTestHuge
30643: Round of improvements to MySites dashlet relating to huge DB testing:
- 10,000 site database, user is a member of ~2000 sites
- Improvements to site.lib.ftl and related SiteService methods
- To return MySites dashlet for the user, order of magnitude improvement from 7562ms to 618ms in the profiler (now ~350ms in the browser)
30644: Fixed performance regression - too much opening and closing of the delta reader and writer
30661: More reader opening / closing
30668: Performance improvements to Site Finder and My Sites in user profile page.
- faster to bring back lists and site memberships (used by the Site Finder)
- related further improvements to APIs used by this and My Sites on dashboard
30713: Configuration for MySites dashlet maximum list size
30725: Merged V3.4-BUG-FIX to DEV/ALAN/SITE_PERF
30708: ALF-10040: Added missing ReferenceCountingReadOnlyIndexReaderFactory wrapper to IndexInfo.getMainIndexReferenceCountingReadOnlyIndexReader() to make it consistent with IndexInfo.getMainIndexReferenceCountingReadOnlyIndexReader(String, Set<String>, boolean) and allow SingleFieldSelectors to make it through from LeafScorer to the path caches! Affects ALL Lucene queries that run OUTSIDE of a transaction.
30729: Use getAuthoritiesForUser rather than getContainingAuthorities if possible.
SiteServiceTestHuge: command line version
30733: Performance improves to user dashboard relating to User Calendar
- converted web-tier calendar dashlet to Ajax client-side rendering - faster user experience and also less load on the web-tier
- improvements to query from Andy
- maximum sites/list size to query now configurable (default 100 instead of previously 1000)
30743: Restore site CRUD performance from cold caches
- Introduced NodeService.getAllRootNodes(), returning all nodes in a store with the root aspect, backed by a transactional cache and invalidated at key points
- Means indexing doesn't have to load all parent nodes just to check for 'fake roots'
- Site CRUD performance now back to sub-second with 60,000 nodes
30747: Improvement to previous checkin - prevent cross cluster invalidation of every store root when a single store drops out of the cache
30748: User dashboard finally loading within seconds with 60,000 sites, 60 groups, 100 users (thanks mostly to Kev's UI changes)
- post-process IBatis mapped statements with MySQL dialect to apply fetchSize=Integer.MIN_VALUE to all _Limited statements
- Means we can stream first 10,000 site groups without the MySQL JDBC driver reading all 240,000 into memory
- New NodeService getChildAssocs method with a maxResults argument (makes use of the above)
- Perfected getContainingAuthoritiesInZone implementation, adding a cutoff parameter, allowing only the first 1000 site memberships to be returned quickly and caches to be warmed for ACL evaluations
- New cache of first 10,000 groups in APP.SHARE zone
- Cache sizes tuned for 60,000 site scenario
- Site service warms caches on bootstrap
- PreferencesService applies ASPECT_IGNORE_INHERITED_RULES to person node to prevent the rule service trying to crawl the group hierarchy on a preference save
- WorkflowServiceImpl.getPooledTasks only looks in APP.DEFAULT zone (thus avoiding site group noise)
30749: Fix compilation errors
30761: Minor change to SiteServiceTestHuge
30762: Derek code review: Reworked fetchSize specification for select_ChildAssocsOfParent_Limited statement for MySQL
- Now fetchSize stated explicitly in a MySQL specific config file resolved by the HierarchicalResourceLoader
- No need for any Java-based post processing
30763: Build fix: don't add a user into its own authorities (until specifically asked to)
30767: Build fix
- IBatis / MySQL needs a streaming result statement to be run in an isolation transaction (because it doesn't release PreparedStatements until the end)
30771: Backed out previous change which was fundamentally flawed
- Resolved underlying problem which was that the select_ChildAssocsOfParent_Limited SQL string needs to be unique in order to not cause confusion in the prepared statement cache
30772: Backed out previous change which was fundamentally flawed
- Resolved underlying problem which was that the select_ChildAssocsOfParent_Limited SQL string needs to be unique in order to not cause confusion in the prepared statement cache
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30797 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Publishing: Remove some operations from the Channel and ChannelType interface that really shouldn't be exposed. Also removed the PublishingQueue interface - the two operations it had are now on the PublishingService.
WQS: Removed obsolete references to publishing channels.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30794 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
30270: ALF-9492 Can now update task properties through the Workflow JavaScript API. ALF-10087 Fixed failing Multi-tenancy tests.
30306: Fixed ALF-7384: Xam: XamArchiveCleaner can delete files before retention period has passed
- Keep the NOW upper limit to the query
- Add a double-check using Java code to precisely check (down to the ms) that the retention time has passed
30308: Merged V3.4 to V3.4-BUG-FIX
30307: ALF-10186: Fix up all code that expects it can cast a WebScriptRequest directly into a WebScriptServletRequest
30310: ALF-5830 show_audit.ftl template doesn't work any more
- Changes to support new audit api
- Works with high level content auditing
30337: Merge DEV to V3.4-BUG-FIX
30160 : ALF-9257 - Renaming web project cause no trigger of the autodeploy process
30362: ALF-10227 Add space after ''{0}'' in text
30395: Removed deep svn:mergeinfo
30433: Merged DEV/TEMPORARY to V3.4-BUG-FIX
30424: ALF-8941: WCM: Virtual server setting lazyDeployExperimentalOnly ="true" (as per si3 fix) fails to load library under WEB-INF/lib directory (for HTTP filter).
Walk up by hierarchy to the root and deploys a context if it wasn't deployed yet, through invocation of updateAllVirtualWebapps recursively.
30454: Fixed ALF-9158: Assignment of workflow task is not proper - out-of-the-box WCM workflow
30466: Merged DEV/TEMPORARY to V3.4-BUG-FIX
30460: ALF-9424 : Webform(XSD): xf:switch switch group does not work based on "complexContent with Base" element.
Schema2XForms and SchemaUtil were modified to allow correctly process elements with namespace that differ from "http://www.w3.org/2001/XMLSchema"
30476: Merged DEV to V3.4-BUG-FIX
30474: ALF-10021: Get the last node in the resultset outside the timing loop to force prefetch.
30483: Fixed ALF-9417: (pdf2swf) Share preview is blank with some pdf files.
30514: ALF-240: Unfriendly error appears when trying to view details for created discussion for multilingual content
Webdav URLs were not valid for non-ML or ML discussion items, but were only stopping the details page for the ML items from being shown. Utils.generateURL now returns null for such items.
30517: Fixed ALF-5526: Component-Generator for d:noteref and other "system" types always disabled => breaks extensibility
30519: FileFolderService moveFrom method was not supported by MLTranslationInterceptor
30527: ALF-240: added missing exception message.
30531: Fixed ALF-9599: Share forms do not allow edit of non-cm:content nodes
30541: ALF-9424: Missed change, causing compilation error
30552: Tests to accompany fix for ALF-240, ALF-10298: discussion topic webdav URLs causing error page in explorer.
30565: Fixed ALF-10336 "Drag and Drop item in Customize Site Dashboard - text of item reverts to default font style and size during drag operation"
30568: Fixed ALF-10342: ClassCastException on org.alfresco.repo.copy.AbstractCopyBehaviourCallback
30570: ALF-3332: (circa 2008) Pagination inks rewritten incorrectly by opensearch proxy
30574: ALF-9470: OwnableService cache not being updated for archived nodes - modified fix by Pavel
30579: ALF-5607: Cancelling of install. Some directories are not deleted from disk.
- Fixed provided by Bitrock for Mac and Windows
30583: Merged HEAD to V3.4-BUG-FIX (Back ported 2 fixes for included resource handling when running unit tests)
28711: Avoid a NPE on certain kinds missing included resources, and instead give a helpful error along the lines of other include issues
28716: When loading JS includes with a full classpath reference, handle the Eclipse classloader behaving slightly differently on absolute paths compared to the JVM one
30648: Fixed ALF-10401: No simple way to disable auto-versioning behaviour
- Added property: version.store.enableAutoVersioning=true
- When set to 'false', the VersionableAspect will not respond to any events;
even if the aspect is present, it will not create versions.
30657: Merged DEV/TEMPORARY to V3.4-BUG-FIX
30590: ALF-7105: pdfbox returns errors in the logs but one cannot understand what file is affected (PDFBox)
Level log4j.logger.org.apache.pdfbox.pdmodel.font.PDCIDFont=fatal was introduced in log4j.properties.
30669: Fixes: ALF-6470 (Updates FR translation)
30686: ALF-1017: Fixed compilation error in backport
30696: Fix for ALF-8176
30708: ALF-10040: Added missing ReferenceCountingReadOnlyIndexReaderFactory wrapper to IndexInfo.getMainIndexReferenceCountingReadOnlyIndexReader() to make it consistent with IndexInfo.getMainIndexReferenceCountingReadOnlyIndexReader(String, Set<String>, boolean) and allow SingleFieldSelectors to make it through from LeafScorer to the path caches! Affects ALL Lucene queries that run OUTSIDE of a transaction.
30722: Fixed ALF-9465: Share: We can add category in Share, but the selected value will not be shown in U.I.
30724: Merged BRANCHES/DEV/BELARUS/V3.4-BUG-FIX-2011_09_05 to BRANCHES/DEV/V3.4-BUG-FIX:
30603: ALF-10165: Unexpected behaviour when title duplicated between web forms
30754: Fix for ALF-9899 Huge share site migration, add group to site and user access site related performance issue.
- generic performance improvements for PATH queries ending "..../*" - specifically to improve listing calendar items for users in many share sites
30765: Fix for ALF-760 - import loses category association data
30779: Merged V3.4 to V3.4-BUG-FIX
30716: ALF-10452 It's impossible to edit existing user details
- Change for ALF-371 did not handle the simplest case - no change of home folder location
30549: Fixes ALF-9534 - Location API
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30780 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This problem was caused by the deletion of a discussion topic leading to the update (property changes) on parent nodes. Whilst the site manager mentioned in the bug has permission to delete the topic node, they do not have permission to update the properties further up the containment hierarchy.
Those updates should have been run as system and not they are.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30751 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- NOTE: this fix means that any existing publishing channels in the repo will cease to work and will cause the publishing generally to have problems. If you have publishing channels in your repo then you must remove them following this fix. This can be done by either cleaning your repo out completely or deleting the node underneath "Data Dictionary/Publishing Root" (it has a UUID as its name).
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30646 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
The new TestNotificationProvider acts like a simple callback. You inject an instance of the new NotificationReceiver into the above NotificationProvider and then override the EMailNotificationProvider with the test one.
By doing so, emails will not be sent, but the NotificationContext object, which encapsulates all input state for such emails, can be stored and validated against expected values.
Test code for same.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30618 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261