20025: Created Enterprise branch V3.3
20026: ALF-2597 : IMAP : permissions on home space.
- now, by default, people can't read other's mail.
20030: Merged BRANCHES/V3.2 to BRANCHES/V3.3:
19919: Merged BRANCHES/V3.1 to BRANCHES/V3.2:
19766: Fixed ALF-2351: Oracle upgrade scripts need enhancements from 2.2SP7
20027: Merged BRANCHES/V3.1 to BRANCHES/V3.2:
19983: Changes for ALF-2545: Cannot upgrade from 2.1.2a (b 209) to the 3.1.2 (.a3 458) on Oracle
20008: ALF-2351: Oracle upgrade scripts need enhancements from 2.2SP7
20032: Merged HEAD to BRANCHES/V3.3 (RECORD ONLY)
20031: Fix ALF-2626 - Share Repository browser broken
20035: Enterprise branding for Share & Explorer - DO NOT MERGE (RECORD ONLY)
Also: SAIL-282: Update the Help URLs for 3.3 Enterprise
20039: Fix ALF-2393 - Alfresco Comunity 3.3 deployment error on JBoss v6
20044: Fix ALF-750 (versioning does not persist node associations)
- TODO: review version migrator (if upgrading directly from Ent 2.x to Ent 3.3)
20049: Merged PATCHES/V3.2.r to BRANCHES/V3.3
20047: Fix for ALF-2640: Share: Edit Offline and Upload New Version fails with HTML uploader on FF3.5, works on IE
20054: Fix ALF-750 (versioning does not persist node associations)
- update version migrator (only applies if not already run, ie. upgrading directly from Ent 2.x to Ent 3.3)
20057: Merged HEAD to BRANCHES/V3.3: (RECORD ONLY)
20033: Accordion example was broken when FDK is deployed as a JAR
20064: Fix for ALF-2623: Alfresco 3.3G's Share site is prone to cross site scripting attacks
- Bug is actually in the wiki components
20065: Fix unreported issue (auto-versioning for metadata-only updates stops working after checkin) & additional improvements to LockService
- explicitly remove lockable aspect (rather than nullifying properties) for unlock / checkin
- use txn resource to track ignorable nodes (for lockable aspect behaviours)
- note: currently affects Alfresco Explorer only (since Alfresco Share explicitly disables autoVersionOnUpdateProps)
20066: Increased PermGen space for tests to 256M from 128M
20071: AVM - check for circular layered directories (ALF-813 / ALF-910)
20073: Fix LockService tests
- fix typo (introduced in r20065)
- TODO: review LockOwnerDynamicAuthorityTest.testCheckOutCheckInAuthorities
20076: Fix LockOwnerDynamicAuthorityTest.testCheckOutCheckInAuthorities
20078: Fixed ALF-2464 "Missing i18n labels when rules fail to run"
20081: Fixed ALF-1626 "The position:absolute behaviour of the Flash preview container needs a re-think"
- Now handles long file names (resize was already fixed)
20083: Fix for ALF-2708: Unmodifiable exception thrown when Web Script f/w attempts to report error (latest Spring Surf webscripts libraries)
20084: Fixed ALF-253 "Unfriendly message appears when trying to login with username which contains symbol '\'"
- also fixed bug whereerror messages for illegal characters was displayed as undefined for FF on Mac
20085: Merging HEAD into BRANCHES/V3.3:
20074: ALF-959 The invitation email 'subject' can now be set as a localizable property in invitation-services.properties:
20080: Fixing failing test InvitationServiceImplTest.
20087: ALF-1498: RM web script puts Alfresco in endless loop
This was a general issue with the onUpdateProperties behaviour in the versionable aspect. This code now disables the behaviour whilst it is executing to prevent the endless loop occuring.
20088: Fixed an issue when uploading 2 or more documents for a new site.
- A failure occured since it asynchronously tried to create the documentLibrary container twice and the second attempt failed since it already existed.
20089: SAIL-356: Action label changes
20090: Dynamic models: minor improvements to DictionaryModelType
- add (optional) concurrency locking
- remove duplicate bean def
- bind remaining class behaviours (onCreateNode, onRemoveAspect) based on type
20091: Fixed ALF-1046 "Leave button is displayed for admin on Site Finder page near private site where admin is not invited"
20092: Merged DEV/BELARUS/V3.2-2010_03_17 to V3.3
20043: ALF-928: Upgrade from 2.1.7 to 3.2 with lots of content items - GC overhead limit exceeded exception
Call getChildAssocs(NodeRef, QNamePattern, QNamePattern, boolean) with a value of 'false' for the preload argument to avoid preloading all the child nodes
20093: Fix for ALF-2721: Upgrade clean 2.2.current + 20k users to 3.3.current fails in CalendarModelUriPatch updating URI that does not exist
20094: ALF-2630: LDAP differential sync was failing to sync group memberships of users who themselves hadn't changed
- New post process deals with group associations of unprocessed users
- Modified unit test to properly simulate differential sync
20095: Fix for ALF-2715: Rule creation in Alfresco Share 3.3G leads to an "Internal Server Error" failure message
20096: Fix webview and wiki dashlet titles in yellow and gdocs themes.
20097: Follow-up fix to cross-browser WebView dashlet (iframe) resizing
20098: Workaround for ALF-2211: Share - Accessing User homes from Share/JSF integration freezes the browser.
- The tree control has been given a configurable maximum folder count setting for both Site and Repository working modes. By default these are "unlimited" in Site mode and 500 in Repository mode. These values can be overridden in share-config-custom.xml - see the sample configuration file for details.
- The workaround is to display a "Too many sub-folders to display" message when the maximum number of folders has been reached.
- To aid users to select their User Home space (or sub-folder thereof) for Copy and Move actions, a new "My User Home" button is provided on the folder picker control.
20099: Fix for ALF-2606: Manage Permissions on multiple nodes.
- Toolbar action removed when in Repository Browser, as the fine-grained permissions page does not support multiple nodes.
20100: Merged Outlook Meeting Workspace integration from BRANCHES/DEV/BELARUS/V3.2-2010_01_11
20102: Fix for ALF-478: Authority CRC calculations must use UTF-8
20103: Follow up from ALF-253 (Unfriendly message appears when trying to login with username which contains symbol '\')
- Making lastName mandatory in Share ui since service otherwise complains
20106: Fixed ALF-1041 "Revert action is available for SiteContributor and SiteConsumer" (and added a missing msg key for blogs)
20108: ALF-2235: Permission exception when creating non-electronic records by Power User with Read and File permssions
20109: Fix for ALF-2706 "ConcurrentModificationException in AsynchronousActionExecutionQueueImpl"
20110: Merge Dev to V3.3
ALF-1980 - Huge UIDVALIDITY giving IMAP client problems
20111: Latest webeditor JAR containing change to orientation strings in WEF
20113: Fix Share DocLib copy/move actions from recent refactor. Picker now appears with correct Site/Repository mode set upon opening.
20114: Fix for ALF-2726: 'Transform and Copy content' action causes error.
20115: Fix for ALF-2697 - File encoding is hard-coded for upload.post.js (Webscript API)
20116: Fix for ALF-1090
20119: ALF-2734 - Incorrect behaviour on creating google docs in Repository Browser
20120: Enterprise build fix for Index check tests
- disable user usage updates
- this should not be required
20121: ALF-959 The site name/title should now correctly appear in the invite email subject, replacing '{0}'.
20123: Merged HEAD to V3.3 (RECORD ONLY)
20122: First part of fix for ALF-2718: DOD5015 module breaks CMIS Atom DiscoveryService webscripts
20126: Fix rule rest api json so numbers are not incorrectly formatted.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@20565 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
15422: Fix deploy-virtual-tomcat macro for Spring 3
15391: Fix ContentStoreReplicatorTest for Spring 3
15390: Upgrade CXF to version 2.2.2 for Spring 3 compatibility
15385: Correction to previous checkin
15384: Fix ClassPathStore.createRelative() to work with Spring 3
- Relative resource path resolution with directory resources has changed
15346: Merged V3.3_SPRING3 to SPRING3
15310: Spring 3: Change to the way that FileContentStore broadcasts its existence to interested parties (for enterprise-only monitoring)
- Introduced new SafeEventPublisher singleton that queues up events until after the application context has finished refreshing
15309: Use AUTODETECT_NONE auto detect mode for JMX exporters to be compatible with Spring 3
15308: Fix IBATIS integration to be compatible with Spring 3
15307: Added missing runtime dependencies
- org.springframework.expression-3.0.0.RC2.jar
- org.springframework.asm-3.0.0.RC2.jar
15289: Move Alfresco stack to Spring 3
- Stage 1: get it compiling in eclipse and update ant scripts
- Still requires Web Framework contributions from Uzi
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17624 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
17462: ETHREEOH-3346: New meaning to synchronization.synchronizeChangesOnly property
- In the LDAP sync performance optimizations we always used the differential queries to determine the users and groups to be updated. Deletions were determined by a separate query.
- This meant that if you ever did want to force the update of all users it wasn't possible.
- So now when the flag is false it means don't use differential queries in the scheduled sync job.
- The scheduled job now processes deletions regardless.
- The default value for the property is now true.
17431: ETHREEOH-3274: Refix NTLM support for share
- Fixed NPE introduced by ETHREEOH-2767
- Made web.xml validate against schema for JBoss
- Reintroduced missing open comment in webscript-framework-config-custom.xml.sample
17426: ETHREEOH-2997: Fix ticket parameter passing into NTLM/Kerberos WebDAV authentication filters
- A NPE was stopping it from working
17425: ETHREEOH-3282: Fixed NPE preventing upload from working with NTLM SSO enabled
17368: ETHREEOH-3197: Use utf8_bin collation in MySQL out of the box to avoid problems with comparison of accented characters
17361: ETHREEOH-3276: Don't attempt to start an LDAP sync when the repository is read only
17347: ETHREEOH-3206: Fix LocalFeedTaskProcessor to work with JBoss 5
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17464 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
17163: org.alfresco.repo.domain.hibernate.AclDaoComponentImpl.updateAuthority() needs to flush/dirty the session in order to work
17160: Fix HeartBeat
- Lazy initialization in scheduled job needed its own transaction
17146: Fix failing unit tests
- HibernateNodeDaoServiceImpl.moveNodeToStore() must invalidate parentAssocsCache now that it contains NodeRefs
17145: Fixes to patches for new CRC schema changes
- Sequenced patch.fixNameCrcValues-2 before all other patches
- Fixed typos in schema upgrade script and added CRCs for the repository descriptor nodes, so that the descriptor service and patch service can boot up
- HeartBeat initializes lazily so that it doesn't try to load information before the patch service has bootstrapped
- Made FixNameCrcValuesPatch industrial strength by using BatchProcessor to handle multi threading, progress reporting and transaction delineation
17097: Removal of spurious logs directory accidentally introduced in 17096
17096: Performance tuning for improved throughput during high volume import from LDAP directory
- Lucene indexer will now no longer index and then reindex the same node in the same transaction
- lucene.indexer.mergerTargetOverlaysBlockingFactor reduced to 1 (improves indexing performance and no excessive throttling observed during 10 hour test)
- HomeFolderManager fixed so that it pays attention to the eager home folder creation flag
- HibernateNodeDaoServiceImpl.parentAssocsCache 'upgraded' to hold information about root nodes and node refs so that recursive methods such as prependPaths can run entirely out of the cache
- Boolean argument added to getChildAssocs() so that preloading of all child nodes is optional
- qname_crc column added to alf_child_assoc to allow efficient lookup and indexing of child associations by QName. CRC of (qname_namespace, qname_localname).
- idx_alf_cass_qnln on qname_localname replaced with idx_alf_cass_qncrc (qname_crc, type_qname_id, parent_node_id)
- All node service lookup queries involving qname_localname modified to include qname_crc in WHERE clause
- schema patch provided
- existing org.alfresco.repo.admin.patch.impl.FixNameCrcValuesPatch extended to also fill in qname_crc column and forced to run on newer schemas
- Optimized ChainingUserRegistrySynchronizer so that it doesn't have to look up the entire set of authorities during an 'empty' incremental sync
- ChainingUserRegistrySynchronizer no longer starts an outer transaction around all its smaller transactions (used to die due to timeout)
- rule service disabled for LDAP batch processing threads
- org.alfresco.cache.parentAssocsCache and org.alfresco.cache.storeAndNodeIdCache size increased to 80,000
- Fixed case sensitivity issue with person caching in PersonServiceImpl
- Cache the people container in PersonServiceImpl for faster person lookups
- PersonDAO removed and replaced with now more efficient node service child assoc lookup methods
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17168 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
16939: Merged V3.1 to V3.2
16938: ETHREEOH-622: AuthorityServiceImpl uses userNameMatcher to check for admin users according to case sensitivity settings
16934: ETHREEOH-2584: Coding error in BaseSSOAuthenticationFilter
16924: LDAP Performance
- Created NodeService addChild variants that can add associations to multiple parents (groups/zones) at the same time with a single path check.
- Created AuthorityService addAuthority variant that can add an authority to multiple groups at the same time, using the above
- Optimized group association creation strategy. Groups and Persons created in 'depth first' order (root groups first, parents last). Prevents the nodes having to be reindexed.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17070 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
16780: Fix failing unit test
- HeartBeat now needs to be constructed inside a transaction.
16765: Merged DEV/BELARUS/V3.2-2009_10_05 to V3.2
16754: ETHREEOH-2534: SPP does not authenticate when authentication chain contains both alfrescoNtlm and passthru types.
- NTLM Authentication handler for Sharepoint module was implemented as singleton. But after it was integrated into Alfresco Authentication Subsystem, instance of this object is created for each type of NTLM authentication. As result static field with NTLM flags was rewrited for each instance. Bug was resolved by removing static indicator.
16751: LDAP sync improvements
- Correction to the way retried transactional errors are reported
- Addition of unit test for synchronization with a mock user registry generating a large volume of users, groups and associations
16749: Removed UserUsageBootstrapJob from scheduled jobs and moved UserUsageTrackingComponent to bootstrap
- files missed from CHK-9619
16748: User Usage Tracking Component bootstrapped synchronously to avoid its expensive queries across all users 'stepping on top of' other bootstrap activity such as LDAP synchronization
- Its startup messages are no longer masked out by log4j.properties
- Logged ETHREEOH-3009 regarding upgrade impact of new faster queries
16747: Lower impact of HeartBeat service on server performance
- More efficient AuthorityService APIs used to determine the total number of groups and users more efficiently
- Queries of all users and groups done synchronously at startup only
16746: Improvements for faster user and group lookup and association on a large repository (unfortunately intertwined)
- NodeService getChildAssocRefsByTypeQNames query rewritten to use a subquery to force a more logical evaluation order on MySQL
- NodeService getChildAssocs method made to use more efficient getChildAssocRefsByTypeQNames DAO call when a type qname but no assoc qname is specified
- NodeService getUsersWithoutUsage / getUsersWithUsage queries rewritten to avoid an expensive outer join on all users
- PersonService getPersonIgnoreCase query corrected to include the type QName ID of the child associations it is querying (thus avoiding unnecessarily triggering duplicate person removal)
- PersonService now supports an optional boolean argument to getPerson that indicates whether the auto-create + home folder creation behaviour should be triggered.
- AuthorityDAOImpl now uses false argument to getPerson call to avoid lazy home folder creation during creation of group associations
- AuthorityDAOImpl now specifies assoc type to getChildAssocs in getAllAuthoritiesInZone and findAuthorities calls so that the more efficient query variant is used
- Redundant personExists() call removed from authorityServiceImpl
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16914 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
16662: LDAP sync: improved group association filtering, referential integrity checking, deletion strategy and performance tuning of batch sizes
16648: ETHREEOH-2752: Improved ticket validation fix
- Invalidate user's tickets during person deletion rather than validation or it can mess up chained validation
16647: ETHREEOH-2534: Fixed Sharepoint NTLM authentication
- user details were never getting cached in the session
16579: Small improvement to LDAP error reporting
- Committed errors counted before successes in a logging interval
16515: LDAP sync performance
- Improved full sync strategy - run differential queries to work out required updates/additions and full queries to work out required deletions. Saves updating unchanged nodes.
- Use a TreeSet rather than a HashSet to gather group associations in an attempt to avoid blowing the heap size
16498: More LDAP performance improvements
- Uses thread pool with 4 worker threads and blocking queue to process returned results. The number of worker threads can be controlled by the synchronization.workerThreads property.
- Switched LDAP connection pooling back on again
- Group Associations processsed individually so that errors are collated and we get a better idea of their throughput
- Fixed potential bug. Group membership resolution done with isolated LDAP context to avoid cookies from paging creeping in.
16424: Try switching off LDAP connection pooling to see if it works better with our flaky server.
16414: Further LDAP fault tolerance
- Log causes of group member resolution failures where possible
16413: More fault tolerance for LDAP sync
- Always commit last sync times before overall sync is complete to avoid the 'forgetting' of differential sync information
- DN comparisons should be case insensitive to avoid issues resolving DNs to user and group IDs
16398: Improved monitoring and fault tolerance for LDAP sync
- When the batch is complete a summary of the number of errors and the last error stack trace will be logged at ERROR level
- Each individual error is logged at WARN level and progress information (including % complete) is collated and logged at INFO level after a configurable interval
- In the Enterprise Edition all metrics can be monitored in real time through JMX
- Sanity testing to be performed by Mike!
16319: Merged HEAD to V3.2
16316: ALFCOM-3397: JBoss 5 compatibility fix
- Relative paths used by LDAP subsystem configuration weren't being resolved correctly
- See also https://jira.jboss.org/jira/browse/JBAS-6548 and https://jira.springsource.org/browse/SPR-5120
16272: ETHREEOH-2752: Once more with feeling!
16261: ETHREEOH-2752: Correct exception propagation.
16260: ETHREEOH-2752: Fix ticket validation
- Current ticket was getting forgotten by previous fix
- Person validation in CHECK mode now done AFTER the current user is set, so that the current ticket is remembered
16243: ETHREEOH-2752: Improve ticket validation used by all authentication filters
- Now takes into account whether person actually exists or not
- Tickets for non-nonexistent persons are now considered invalid and cached session information is invalidated
- New BaseAuthenticationFilter superclass for all authentication filters
- Improved fix to ETHREEOH-2839: WebDAV user is cached consistently using a different session attribute from the Web Client
16233: ETHREEOH-2754: Correction to previous checkin.
- relogin for SSO authentication, logout for normal login page
- logout is default
16232: ETHREEOH-2754: Log Out Action outcome passed as a parameter
- relogin for SSO authentication, login for normal login page
- Means the log out link always leads to the correct place, even when the session has expired
- Also lowered ticket validation error logging to DEBUG level to avoid unnecessary noise in the logs from expired sessions
16220: ETHREEOH-2839: Fixed potential ClassCastExceptions when Alfresco accessed via WebDAV and Web Client links in same browser
- WebDAV side no longer directly casts session user to a WebDAVUser
- ContextListener no longer casts session user to web client user
- Web client side will 'promote' session user to a web client User if necessary via AuthenticationHelper
- All authentication filters made to use appropriate AuthenticationHelper methods
16211: ETHREEOH-2835: LDAP sync batches user and group deletions as well as creations
- Also improved logging of sync failures
16197: ETHREEOH-2782: LDAP subsystems now support search-based user DN resolution
- When ldap.authentication.userNameFormat isn't set (now the default) converts a user ID to a DN by running ldap.synchronization.personQuery with an extra condition tacked on the end to find the user by ID
- Structured directories and authentication by attributes not in the DN such as email address now supported
16189: ALFCOM-3283: Prevent errors when user accepts an invite when not logged in
- new isGuest attribute propagated to user object
- header component (used by accept-invite page) needs to avoid calling prefs and site webscripts for guest user
- Conditional stuff in header template changed to use user.isGuest
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16896 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
15636: ETHREEOH-2626: LDAP sync will no longer delete and recreate colliding users and groups in zones that aren't even in the authentication chain.
- Instead such users and groups will be 're-zoned' to the first zone where they were found
- Avoids losing site memberships, etc. on upgrade or change of authentication chain
- Will continue to recreate users and groups from lower priority zones in the authentication chain
- Updated unit tests appropriately
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15637 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
15473: ETHREEOH-2574: Fixed problem when LDAP sync attempts to delete a user who already exists but with username in a different case (e.g. guest -> Guest)
- ACLs were getting left behind due to case issues
- Now 'normalize' the name using getUserIdentifier()
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15474 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
15388: ETHREEOH-1872: Better debug logging in authentication components
- Now each authentication component logs every step of the authentication process (including reason for failure) if you switch on debug logging for that component or the entire org.alfresco.repo.security.authentication package. E.g.
log4j.logger.org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl=debug
log4j.logger.org.alfresco.repo.security.authentication.AuthenticationComponentImpl=debug
log4j.logger.org.alfresco.repo.security.authentication=debug
15196: Further LDAP sync performance improvements
- Bunch user and group creations into small transactions (except for differential sync on login)
- Run a differential sync on startup (so that bulk of users are not brought over on first login)
- Can be disabled by synchronization.syncOnStartup property
15135: Node creation / ACL performance improvements
- When an ACL was set on a leaf node such as a person, redundant 'shared' ACLs were created for child nodes with getInheritedAccessControlList(), even though no child nodes existed.
- Now setInheritanceForChildren() makes a 'lazy' call to getInheritedAccessControlList(), only when it realises there are child nodes
15133: Changes to datasource definition for improved performance
- Enable caching and reuse of prepared statements (by default 40 for each connection)
- Removed custom-connection-pool-context.xml.sample and instead introduced complete property set into repository.properties
- Updated v3.2 Wiki docs http://wiki.alfresco.com/wiki/Database_Configuration#Overriding_the_Database_Connection_Properties
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15439 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
14587: Added new node service method getNodesWithoutParentAssocsOfType to public-services-security-context.xml (or at least my best guess at it!)
14586: Use US spelling of synchronization in filenames for consistency
14585: Lower the default user registry sync frequency to daily instead of hourly. Now users and groups are pulled over incrementally on login of missing users.
14583: Unit test for ChainingUserRegistrySynchronizer
14571: Migration patch for existing authorities previously held in users store
- Uses AuthorityService to recreate authorities in spaces store with new structure
14555: Authority service changes for LDAP sync improvements
- Moved sys:authorities container to spaces store
- All authorities now stored directly under sys:authorities
- Authorities can now be looked up directly by node service
- Secondary child associations used to model group relationships
- 'Root' groups for UI navigation determined dynamically by node service query
- cm:member association used to relate both authority containers and persons to other authorities
- New cm:inZone association relates persons and authority containers to synchronization 'zones' stored under sys:zones
- Look up of authority zone and all authorities in a zone to enable multi-zone LDAP sync
14524: Dev branch for finishing LDAP zones and upgrade impact
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14588 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261