Jan Vonka 6e5b951fe5 Merged BRANCHES/DEV/CONV_HEAD to HEAD:
48055: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
         46833: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                30799: THOR-172: Switch Tenant via public API
         46836: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                30853: Initial implementation of THOR-209. Webscript to get invitation/invitee status.
                30855: More on THOR-209. Added siteTenantTitle to the webscript response.
                30858: Apply generated cloud license
                30859: Miscellaneous tidy-ups and refactorings, additional documentation and some webscript JSON additions. All as part of THOR-209.
                30860: Miscellaneous doc improvements around the MT/Activiti workarounds.
                30861: Removing unnecessary TenantUtil.runas in test code.
                30863: THOR-204. Dev mode option to send invite/sign-up emails to spring-injected address.
                30865: Temporarily disable subscriptions (followers) - pending ALF-9957
                30866: THOR-175: Set and enforce file space quota for tenant
                30868: Deleted obsolete/empty dir
                30869: THOR-210: disable jobs that are not used/required (eg. AVM orphan reaper)
                30870: THOR-209. Have fixed up issue with getting properties from completed workflow instances.
                    Changed invitation to use pathInstanceId instead of taskId as the 'id' for these workflows. Now consistent with signup. Commented in the test that calls invitee-status.get
                30871: THOR-209. Adding the inviteeIsActivated value to the webscript response.
                30872: THOR-204. When emails are sent to the dev-only, spring-injected email address, the subject is now prefixed with the orig
                30879: THOR-209. Making sure inviteeIsActivated is present for both in-flight and completed workflows.
                30883: Resolve THOR-212
                30895: THOR-172: Switch Tenant via public API
                30896: THOR-209. Renaming some files so that they refer to invitation status rather than invitee status. Also added some documentation to make this dicstinction clearer. This is not a general purpose script to get the status of an invitee to a site. It is only for checking if a particular invitation workflow is complete and then getting some additional state data.
                30897: THOR-175: Set and enforce file space quota for tenant
                30900: Changing invitation-status webscript to auth=none; runas=Admin to support invitation flow of exteernal users. Part of THOR-209.
        46845: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                30967: Invite & signup improvemengts
                30969: Share Activities
                30976: Remove unreliable hosts from isReachableDomain test
   48066: Merged DEV/CONV_V413 to DEV/CONV_HEAD (RECORD ONLY)
        46857: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35731: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31149: Initial Commit of Analytics Service
              31150: Second draft of Analytics Service
              31151: First cut of forms runtime supporting balloons on "blur" event as requested
              31163: FORMS RUNTIME CHECKPOINT - before making the yellow mandatory only being displayed "on load and until focused"
              31168: Refactored Analytics Service to be static
              31170: Forms runtime as agreed in meeting
   48067: Merged DEV/CONV_V413 to DEV/CONV_HEAD (RECORD ONLY)
        46861: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35752: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31220: THOR-49. Implementation of Reset Forgotten Password workflow.
              31227: (RECORD ONLY) Fix merge error
              31237: Add email validation to registration and invite services:
              31239: THOR-219: Merge fix (re-disable Repo<->SOLR ssl config)
   48069: Merged DEV/CONV_V413 to DEV/CONV_HEAD (RECORD ONLY)
        46864: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35754: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31240: MultiSelectAutoComplete now has configurable validation (& tooltips)
              31241: Tenant site count usage/quota - exposed via Account API
              31250: Made events enumerations
              31251: Forgot to add AnalyticsEvent class to previous commit
              31271: Attempt at fixing test dependencies and remove intermittent test
   48070: Merged DEV/CONV_V413 to DEV/CONV_HEAD (NOTE! Added TenantXxxx classes and change in FormUIGet Will be removed in later revisions)
        46911: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35757: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31367: Merged BRANCHES/DEV/THOR1SURF to BRANCHES/DEV/THOR1:
                   30971: (RECORD ONLY) Creating SURF update branch for THOR1
                   30979: Commit initial Surf lib changes, Cloud classes and config overrides
                   30980: Add custom Cloud Surf authenticator, connector, remote store, user and user factory
                   31015: Renamed classes and references from Cloud to Tenant, custom page view, page view resolvers, URLModel + factory, URLHelper + factory
                   31076: Successful signup and page redirection
                   31091: Correct redirects from <application context> and <application context>/<tenant name> URLs
                   31098: Updated Surf libs
                   31132: Tenant specific implementation of PathStoreObjectPersister - Surf modelobject cache is now partitioned by the tenant name.
                   31133: Updated Surf libs and JavaDoc updates
                   31155: Initial code to handle attempted access to unauthorised tenants, secondary tenants added to TenantUser and page/activations filter rule
                   31210: Fixed 401 & 409 errors on remote GET/POST calls. Logout redirection support.
                   31229: Signup and invitiation completion updates
                   31242: Fixed up invitation, signup and tenant switching problems
                   31270: Fixed forms issue (can now create folders in doc lib)
                   31277: THOR-207. Invitation workflows now run in the inviter's tenant rather than the default tenant.
                       This is checked in on a side-branch because the invitation email's accept/reject links include the tenantId and this tenant-aware Share URL is not yet supported on the THOR1 branch.
                       I removed various TenantUtil.runAsWork calls which were causing the workflow to run on the default tenant rather then the current tenant.
                       SendCloudInvitationEmailDelegate.createInvitationUrl now includes the tenantId in the Share URL it generates.
                       Added new test cases at the Java API level. (Was formerly just at REST API level).
                   31286: (RECORD ONLY) Reset solrcore.properties files
                   31297: Fixed FlashUpload problem
                   31298: Fixed application context only login
                   31302: Fixed no user profile image url issue
                   31306: Updates to TenantUserFactory to defensively handle missing tenant data
                   31326: Repo switch tenant fixes:
                   31356: Resolve switch tenant niggles, with assistance from Erik:
   48072: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        46934: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           46930: Adding extension point to forms runtime's FormUIGet for modifying submission url
        46937: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35762: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31408: Latest Spring Surf Libs (including SubComponentEvaluator param tokenization fix for THOR)
              31409: Tenant usage/quota -> person count
              31412: RM module cleanup & almost finsihed THOR-287 & THOR-288
              31434: Fix Thor Share eclipse project
   48073: CONV: Fix slingshot eclipse .classpath (add freemarker dep)
   48074: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        46940: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
           35766: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31450: Additional DB query support in Repo/Core
                31451: Tenant people count (internal + total) usage/quota
                31453: Fix issue uploading small files which resulted in zero byte content
                31456: Fix paging and total count (1000+) when listing accounts
                31457: THOR-312. Addition of NETWORK_ADMINS group authority.
                31461: THOR-314. I've overridden people.get with a cloud-specific template.
                    This adds an isExternal JSON field to each person object.
                31463: THOR-316 webscript filter on people.get for isInternal, isExternal.
                    Overridden people.get.desc.xml and .js in the cloud module in order to add query param
                    and add additional filtering.
                31464: Base work for THOR-178 "F5: Existing user has forgotten password and needs to reset it"
                31468: THOR-321 Create cloud:networkAdmin aspect.
                31469: THOR-315 Return isNetworkAdmin in overridden people.get webscript.
                31470: THOR-275: Add simple caching (for PropertyUniqueContext - used via AttributeService)
                31471: THOR-318 people.get has new cloud query parameter 'networkAdmin'
                31477: THOR-275: temp build fix
                31479: THOR-324 Demote user from admin.
                    New method on RegistrationService to demote a user from NetworkAdmin and tests.
                31484: THOR-319. Fixing maxResults on people.get when internal/external/admin filtering is applied.
                    This issue is not really resolved, but I've commented the code to illuminate the issue.
                31485: THOR-275: fix build/test
                31486: Working forgot password for THOR-178 (problem accessing the reset-password email link though)
                31488: THOR-184: Disable user usages
                31495: F156: Allow super system admin to login to any tenant
                31496: Fix for personExists since hiding admin
                31500: THOR-178
                31501: THOR-329 Add a get-reset-password status webscript.
                31503: Finished forgot password flow THOR-178
                31507: THOR-328: add fixed adjustment (for people usage)
                31508: Back out some of the hidden admin changes
                31509: Revert mistaken check
                31510: THOR-326 Changes to DAO layer to allow update of account type.
                31513: Cloud Console updates
                31514: Switch Network now uses tenants from the user object (instead of making a remote call)
                31515: THOR-326 Changes to the REST & Service layer to allow update of account type.
   48075: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (effectively record-only - no changes)
        46849: Merged PATCHES/V4.1.3 to DEV/CONV_V413
             46779: ALF-17967: Error in org.alfresco.repo.workflow.WorkflowServiceImpl.getPooledTasks on StartUp.
             - Improved fix that uses the bridge table cache if it is available
             - Groups queried for pooled tasks still limited to 100 by default but can be configured with system.workflow.maxAuthoritiesForPooledTasks
             - Overall number of results can be cut off with system.workflow.maxPooledTasks
   48076: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        46855: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             35706: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  31049: THOR-175: set and enforce per-tenant quota
                  31053: THOR-204: Add dev email mode option
   48077: Merged DEV/CONV_V413 to DEV/CONV_HEAD (RECORD ONLY)
        46944: Merge fallout - fix compile error.
   48078: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (already fixed - no changes)
        46858: Fix compile error
   48079: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        46953: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35767: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31516: Hidden admin - attempt 2
              31517: THOR-326. Update to REST-cient rcq file following 31515, which allows for account upgrade.
              31518: THOR-326. DaveC asked me to move the paid business account type out of test config and into product config.
              31519: After tenant switch the client side resources are more sensitive (new requires /res) which it didn't before. This solves the webpreview bug and some other minor stuff.
              31520: THOR-175: Set and enforce file space quota for tenant
              31522: THOR-330. Return Account Class data in Account REST API.
              31523: THOR-330. Added new rsp data into desc.xml sample response.
              31524: THOR-322: refactor tenant file usage/quota
              31525: Skip activity post lookups that have exceptions
              31526: Root webdav to st:sites for now (as per current beta.alfresco.com)
              31528: THOR-323 & THOR-324 Promotion and demotion of users to/from NetworkAdmin.
              31534: Account Summary now also displays name & summary
              31535: Fix for THOR-320. Alfresco logo image in the various Cloud emails is broken.
              31538: Account Summary now handles -2 & MultiSelectAutoComplete  doesn't bounce when selecting first item
              31540: Implementation of THOR-335 webscript for account-types.get
              31541: Account Summary now displays date correctly
              31542: Some paths to client side resources that were missing "/res" in the path
              31547: Various label changes according to Kathryns docs & some new login/forgot password links in invite/signup forms
              31555: Refactored Analytics Service to send JSON Analytics properties
              31557: Some changes to cloud email templates following feedback from Kathryn, Erik.
              31558: THOR-322: refactor tenant file usage/quota
              31559: Turned 'sign up' email URLs into links rather than text. Yes, we'll make these buttons at some point but I just want them to be clickable for now.
   48080: Merged DEV/CONV_V413 to DEV/CONV_HEAD (UI ONLY)
        46954: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35771: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31563: THOR-123: modules are no longer started for each tenant 
              31566: Update account class display names:
              31567: THOR-123: temp' put back "applyToTenants=true" ...
              31575: THOR-123: pre-req
              31579: Fix issue where setting a preference meant that the person could no longer login:
              31581: Addition of isNetworkAdmin, accountClassName and accountClassDisplayName to the metadata.get webscript, as required by Erik.
              31582: Re-enabling RenditionServiceIntegrationTest which was failing. See THOR-106.
              31584: THOR-123: pre-req
              31585: THOR-347: disable test (pending this JIRA) - ChainingUserRegistrySynchronizerTest
              31590:  Account changes
              31591: Upgrade accound button is now a mailto link pointing to sales@alfresco.com
              31592: Added isNetworkAdmin
              31593: Made sure tooltips are hidden when a dialog/overly is showed/hidden
              31594: Disabling test again pending proper fix. THOR-106
              31595: Reduce log level
              31600: THOR-123: mark modules with "applyToTenants=false"
              31601: Tooltips now dissapear when panel/overlays are destroyed (not only hidden)   
   48081: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        46955: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35779: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31605: (RECORD ONLY) THOR-336. Fixing /res/themes URLs in activity emails.
                     Fix /res/themes URL in newly located activity emails.
   48088: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        46874: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             35709: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  31054: Fix for email templates (getDirectReadableChannel -> File does not exist)
        46875: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             35711: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  31055: Re-enable activity feed notifications and subscriptions (followers)
   48094: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        46894: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             35759: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  31386: Added some tenancy-awareness to ActionService.
                  31388: Addition of accountTypeId to metadata.get webscript.
                  31391: Fix for unreported issue that arises from the invitation workflow having moved from the system to the inviter tenant.
                  31392: Build fixes: Add pseudo-support for tenant switching in web script test f/w
                  31393: The final fix for the 'external user invites other external user' scenario.
                  31398: Tenant usage/quota - site count
                  31405: Build fix for failing ActionService tests. Compensating actions were not running on the correct tenant.
                  31407: Resolve THOR-248: Extensions is not deployed as part of the build
   48095: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (repo pre-merge)
        46911: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35757: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31367: Merged BRANCHES/DEV/THOR1SURF to BRANCHES/DEV/THOR1:
                     30971: (RECORD ONLY) Creating SURF update branch for THOR1
                     30979: Commit initial Surf lib changes, Cloud classes and config overrides
                     30980: Add custom Cloud Surf authenticator, connector, remote store, user and user factory
                     31015: Renamed classes and references from Cloud to Tenant, custom page view, page view resolvers, URLModel + factory, URLHelper + factory
                     31076: Successful signup and page redirection
                     31091: Correct redirects from <application context> and <application context>/<tenant name> URLs
                     31098: Updated Surf libs
                     31132: Tenant specific implementation of PathStoreObjectPersister - Surf modelobject cache is now partitioned by the tenant name.
                     31133: Updated Surf libs and JavaDoc updates
                     31155: Initial code to handle attempted access to unauthorised tenants, secondary tenants added to TenantUser and page/activations filter rule
                     31210: Fixed 401 & 409 errors on remote GET/POST calls. Logout redirection support.
                     31229: Signup and invitiation completion updates
                     31242: Fixed up invitation, signup and tenant switching problems
                     31270: Fixed forms issue (can now create folders in doc lib)
                     31277: THOR-207. Invitation workflows now run in the inviter's tenant rather than the default tenant.
                         This is checked in on a side-branch because the invitation email's accept/reject links include the tenantId and this tenant-aware Share URL is not yet supported on the THOR1 branch.
                         I removed various TenantUtil.runAsWork calls which were causing the workflow to run on the default tenant rather then the current tenant.
                         SendCloudInvitationEmailDelegate.createInvitationUrl now includes the tenantId in the Share URL it generates.
                         Added new test cases at the Java API level. (Was formerly just at REST API level).
                     31286: (RECORD ONLY) Reset solrcore.properties files
                     31297: Fixed FlashUpload problem
                     31298: Fixed application context only login
                     31302: Fixed no user profile image url issue
                     31306: Updates to TenantUserFactory to defensively handle missing tenant data
                     31326: Repo switch tenant fixes:
                     31356: Resolve switch tenant niggles, with assistance from Erik:
   48109: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        46917: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts (not mergeinfo/slingshot/web-framework-commons)
             35766: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
        46918: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts (not mergeinfo/slingshot)
             35767: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
        46919: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             35768: Fix compile issue from merge
        46921: Merge fallout - fix compile error.
        46949: Test fallout
        47126: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35954: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35960: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35961: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35962: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35963: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35964: Spring Surf library refresh
             35995: Fix merge issue
             35999: Fix merge issue
        47144: Fix merge/test failures (WCMTestSuite)
        47539: CLOUD-1375 - fix WCM unit test fallout: SandboxServiceImplTest.testDeleteSandbox + WebProjectServiceImplTest.testDeleteWebProject
   48111: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        46954: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35771: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31563: THOR-123: modules are no longer started for each tenant 
                31566: Update account class display names:
                31567: THOR-123: temp' put back "applyToTenants=true" ...
                31575: THOR-123: pre-req
                31579: Fix issue where setting a preference meant that the person could no longer login:
                31581: Addition of isNetworkAdmin, accountClassName and accountClassDisplayName to the metadata.get webscript, as required by Erik.
                31582: Re-enabling RenditionServiceIntegrationTest which was failing. See THOR-106.
                31584: THOR-123: pre-req
                31585: THOR-347: disable test (pending this JIRA) - ChainingUserRegistrySynchronizerTest
                31590:  Account changes
                31591: Upgrade accound button is now a mailto link pointing to sales@alfresco.com
                31592: Added isNetworkAdmin
                31593: Made sure tooltips are hidden when a dialog/overly is showed/hidden
                31594: Disabling test again pending proper fix. THOR-106
                31595: Reduce log level
                31600: THOR-123: mark modules with "applyToTenants=false"
                31601: Tooltips now dissapear when panel/overlays are destroyed (not only hidden)   
        46956: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35782: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31607:  "Hide everything but the doclib" customizations
                     - Dashlets adjustments
                       * Addons RSS feed - hidden
                       * Site Calendar - hidden
                       * Content I'm editing - added <@markup> extension points so blog, wiki & forum sections are hidden by cloud extension module
                       * Site Data List - hidden
                       * Site Links - hidden
                       * Wiki - hidden
                       * User Calendar - hidden
                     - URL rewrites
                       * Forgot & reset password urls now prettyfied, not using "-default-/"
                     - Duplicated slingshot presets to avoid future slingshot changes popping up in the cloud          
                31611: MT: fix ability to delete a disabled tenant
                31612: THOR-339: Disable/enable logins for a network (account update)
                31621: THOR-106. Taking a failing test class out again, pending fix. Hmmmm.
                31623: THOR-357 - support shared CMIS dictionary
   48112: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (no changes)
        46957: Test fallout
   48113: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (no changes - already pre-merged)
         46911: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35757: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31367: Merged BRANCHES/DEV/THOR1SURF to BRANCHES/DEV/THOR1:
                     30971: (RECORD ONLY) Creating SURF update branch for THOR1
                     30979: Commit initial Surf lib changes, Cloud classes and config overrides
                     30980: Add custom Cloud Surf authenticator, connector, remote store, user and user factory
                     31015: Renamed classes and references from Cloud to Tenant, custom page view, page view resolvers, URLModel + factory, URLHelper + factory
                     31076: Successful signup and page redirection
                     31091: Correct redirects from <application context> and <application context>/<tenant name> URLs
                     31098: Updated Surf libs
                     31132: Tenant specific implementation of PathStoreObjectPersister - Surf modelobject cache is now partitioned by the tenant name.
                     31133: Updated Surf libs and JavaDoc updates
                     31155: Initial code to handle attempted access to unauthorised tenants, secondary tenants added to TenantUser and page/activations filter rule
                     31210: Fixed 401 & 409 errors on remote GET/POST calls. Logout redirection support.
                     31229: Signup and invitiation completion updates
                     31242: Fixed up invitation, signup and tenant switching problems
                     31270: Fixed forms issue (can now create folders in doc lib)
                     31277: THOR-207. Invitation workflows now run in the inviter's tenant rather than the default tenant.
                         This is checked in on a side-branch because the invitation email's accept/reject links include the tenantId and this tenant-aware Share URL is not yet supported on the THOR1 branch.
                         I removed various TenantUtil.runAsWork calls which were causing the workflow to run on the default tenant rather then the current tenant.
                         SendCloudInvitationEmailDelegate.createInvitationUrl now includes the tenantId in the Share URL it generates.
                         Added new test cases at the Java API level. (Was formerly just at REST API level).
                     31286: (RECORD ONLY) Reset solrcore.properties files
                     31297: Fixed FlashUpload problem
                     31298: Fixed application context only login
                     31302: Fixed no user profile image url issue
                     31306: Updates to TenantUserFactory to defensively handle missing tenant data
                     31326: Repo switch tenant fixes:
                     31356: Resolve switch tenant niggles, with assistance from Erik:
   48114: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
         46962: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            40147: (RECORD ONLY) French: Cloud Translation update from Gloria (based on EN rev38372)
            42709: (RECORD ONLY) FRENCH: Translation updates based on EN r42416
            42871: (RECORD ONLY) GERMAN: Cloud Translation, based on r 42416
            42879: (RECORD ONLY) SPANISH: Cloud Translation, based on r 42416
            42890: (RECORD ONLY) ITALIAN: Cloud Translation, based on r 42416
            43879: (RECORD ONLY) FRENCH: Translation updates based on EN r43703
            43983: (RECORD ONLY) GERMAN: Translation updates based on EN r43703
            43984: (RECORD ONLY) SPANISH: Translation updates based on EN r43703
            43985: (RECORD ONLY) FRENCH: Translation updates based on EN r43703, includes file missing from previous commit.
            43986: (RECORD ONLY) ITALIAN: Translation updates based on EN r43703.
            43987: (RECORD ONLY) JAPANESE: Translation updates based on EN r43703.
            44031: (RECORD ONLY) JAPANESE: Translation updates based on EN r43703. Corrects file missed from previous commit.
            44032: (RECORD ONLY) GERMAN: Translation updates based on EN r43703. Corrects missing line break.
            45329: (RECORD ONLY) FRENCH: Cloud translation updates based on EN r45266
            45330: (RECORD ONLY) GERMAN: Cloud translation updates based on EN r45266
            45332: (RECORD ONLY) SPANISH: Cloud translation updates based on EN r45266
            45333: (RECORD ONLY) JAPANESE: Cloud translation updates based on EN r45266
            45427: (RECORD ONLY) SPANISH: Cloud 1 translation updates based on EN r45266
            45718: (RECORD ONLY) ITALIAN: Translation updates based on EN r45266 (missed from previous bundle import)
            45838: (RECORD ONLY) FRENCH: Cloud Translation update based on EN r45266
            45966: (RECORD ONLY) Translation update to fix CLOUD-1270 in FR and ES
            46365: (RECORD ONLY) ALL LANG: Translation updates based on EN r46289
            46366: (RECORD ONLY) ALL LANG: Updates copyright year to 2013
            46377: (RECORD ONLY) ALL LANG: Adds strings missing from previous commit.
         47192: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: (record-only - WebDAV mostly resolved as part of 36117 merge)
            36408: (RECORD ONLY) Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                 36404: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/THOR1:
                      36060: THOR-1373: Proxied WebDAV must generate correct URLs when URL-rewriting is used.
                      36083: THOR-1373: Proxied WebDAV must generate correct URLs when URL-rewriting is used.
         47369: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            41180: (RECORD ONLY) Merged BRANCHES/DEV/FEATURES/CLOUD1_CLOUDSYNC to BRANCHES/DEV/CLOUD1:
                 40482: ALF-13998: 'No items' error is highlighted in red, even that is not sever error.
                    - ALF-15453: Incorrect manage permissions working for a file/folder
                 Merged BRANCHES/DEV/FEATURES/CLOUD1_CLOUDSYNC to BRANCHES/DEV/CLOUD1:
                    40486: ALF-15453: Incorrect manage permissions working for a file/folder
         47377: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            41048: (RECORD ONLY) Merged DEV/V4.1-BUG-FIX to DEV/CLOUD1
                  40382: Fix for ALF-15491 SOLR is generating queries for lucene style cross-language support
                  40632: Fix for ALF-15487 Search not working for queries containing 3-digit versions
                         Fix for ALF-15356 SOLR doesn't support searching by cm:name of file with underscore and dots
                  40662: Eclipse classpath fixes
                  41032: Fix for ALF-15753       Infinite loop during Solr ACL indexing when ACL Changeset batch is empty
         47393: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             Merged DEV/CLOUD1-BUG-FIX into DEV/CLOUD1:
                 41674: ALF-15967: Using START_USER_ID_ instead of "initiator" property to query process instances started by user X to prevent extra joins + removed unused constants
                 41650: Fixed CLOUD-667: Merged fix for ALF-14438 into CLOUD1-BUG-FIX + using START_USER_ID_ instead of custom "initiator" property to query initiator to boost performance even more
         47412: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            42252: (RECORD ONLY) Merged BRANCHES/DEV/V4.1-BUG-FIX to BRANCHES/DEV/CLOUD1
                  42233: Fix for ALF-16164 Cloud monitoring of SOLR is CPU intensive due to its repeated use of the SOLR stats page
                         and related CLOUD-760 Cloud monitoring of SOLR is CPU intensive due to its repeated use of the SOLR stats page
         47429: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            42200: Merged DEV/CLOUD1-BUG-FIX into DEV/CLOUD1: Record-only (r41650 and r41674)
         47433: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             CLOUD-808: Fix for timer deploying MT-process when shared is required caused test to fail
         47435: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             Merged BRANCHES/DEV/CLOUD1_CORS to BRANCHES/DEV/CLOUD1:
                 43100: Update the salesforce amp to include the CORS Filter
                 43101: Update web.xml to enable to the CORS Filter with filter-mapping
                 43117: Add updated amp with removed CORS Filter.  CORS Filter is now available in 3rd-party libs
                 43118: [CLOUD-724] Add CORS Filter jar to 3rd-party libs
                 43119: [CLOUD-724] Add missing jar java-property-utils-1.6.jar to 3rd-party libs
         47485: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            44203: (RECORD ONLY) Merged BRANCHES/V4.1 to BRANCHES/DEV/CLOUD1
                  44200: Probable fix for     ALF-16895 SOLR: Cannot find files after restart and reindex solr
            44276: (RECORD ONLY) Merged BRANCHES/V4.1 to BRANCHES/DEV/CLOUD1
                  44275: Part 2 for ALF-16895 SOLR: Cannot find files after restart and reindex solr
                         - fix initial cache state to cope with duplicate leaf/aux doc entries.
            44314: (RECORD ONLY) Merged BRANCHES/V4.1 to BRANCHES/DEV/CLOUD1
                    44312: Part 3 for ALF-16895 SOLR: Cannot find files after restart and reindex solr
                           - fix incremental cache state to cope with duplicate leaf/aux doc entries.
         47523: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
            44573: (RECORD ONLY) Merged BRANCHES/DEV/CLOUD1_SP to BRANCHES/DEV/CLOUD1:
                 44572: Clean up of unused files.
            44576: (RECORD ONLY) Merged BRANCHES/DEV/CLOUD1_CORS to BRANCHES/DEV/CLOUD1:
                 44518: [CLOUD-955] Change CORS filter-mapping to use servelet instead of url
            44691: (RECORD ONLY) Merged BRANCHES/DEV/CLOUD1_CORS to BRANCHES/DEV/CLOUD1:
                 44688: (RECORD ONLY) Rebase CLOUD1_CORS with CLOUD1
                 44689: [CLOUD-1072] Add public api url to CORS filter mapping.  Move CORS filter mapping to live above the publicapi filter mappings.  OPTIONS calls made to the CORS filter should be evaluated before Layer7 authentication.
         47548: Merged DEV/CLOUD2 to DEV/CONV_V413
            46931: Overriding form runtime's submissionUrl using extesnion point in FormUIGet
            46984: Overriding entire sent-invites.js (instead of modifying the core slingshot code) with a copy of the core code modified to work with the cloud invite apis.
            46986: Overriding help pages config in cloud-config.xml (rather than modifying the core files!)
         47553: Merged DEV/CLOUD2 to DEV/CONV_V413
            47421: Overriding entire sent-invites.get ftl & properties (instead of modifying the core slingshot code) with a copy of the core code modified to fit the cloud requirements.
            47442: Add web overlay for share + tune embedded librairies
            47455: Add dependency on jetty-webapp to compile the tests
   48115: CONV: Fix cache defs (propertyUniqueContextCache & siteNodeRefCache)
   48117: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        46959: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35790: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31624: Resolve THOR-302: transformation-client-1.0.0-SNAPSHOT.jar not in alfresco/WEB-INF/lib:
              31632: More reliable test, hopefully
              31644: Fix unreported issue in aws-context.xml.sample (not well-formed XML)
              31645: Customized invite links to use "cloud dialog" instead of "invite page" for the following components:
              31662: New Analytics events and tests
              31663: New Analytics events and tests
              31678: Addition of isExternal data to site membership webscripts.
   48118: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        46960: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35791: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31684: THOR-367 - #1 Within Site 
                   - Remove all page components other than site dashboard, document library and members 
                   - Remove customize site
              31685: New lightweight webscript to retrieve user/network metadata about the currently authenticated user in the current tenant.
              31693: THOR-365: Private site cannot be access (since surf-config is not imported) - causes: Could not resolve view with name ...
              31695: THOR-367 - #2 Document Library 
                    - remove Create Content... menu 
                    - remove actions: manage aspects, change type, publish, manage rules (for folders) 
                    - document-details page: remove publishing history panel
              31697: For reference only: update description of cmis/test webscript 
   48119: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        46972: Fix test fallout (re: THOR-293)
   48120: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (repo pre-merge)§
        47001: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35798: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31805: Adding utility method to our CollectionUtils class that I need as part of pending invitations work (THOR-373).
                31809: Parameterized signup url & email
                31812: THOR-373 Pending invitations.
                31814: Made changes to way aid is captured ready for allowing events to override aid if needed
                31820: Mapping of network admin to system admin part 1:
             35801:Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31829: Fixed THOR-352 "Incorrect validation of emails on "Forgot Password" page"
                31830: (RECORD ONLY) Exclude ExportDbTest; issues with MySQL
                31831: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1:
                     31784: Fix up unit test.
                31833: Email validation now allows 7 character long top level domain (so we can do tests with example)
                31834: New form colors for invalid & mandatory fields
                31837: THOR-327 - remove bootstrapped guest / guest@<tenant>
                31838: THOR-327 - remove bootstrapped guest / guest@<tenant>
                31844: Added missing headers to Java files.
                31845: Mapping of network admin to system admin part 2:
                31846: Addition of very basic test script for the Script API of AnalyticsService.
             35803: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31853: Forms refactor first cut - for review
                31855: THOR-387. Analytics event for user activation is sent.
                31858: THOR-387. Fixing a corner-case bug in SendAnalyticsRequest.
                31863: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1:
                     31841: Build Fix
                31868: THOR-361: Fix /service/index
                31881: THOR-387. Adding analytics event for site invitation.
                31882: THOR-387. Fixing analytics event for site invitation.
                31883: THOR-66: disable some of the /alfresco (web.xml) servlet mappings
                31884: THOR-387. Analytic event callouts for site invitation response.
                31899: Revert solrcore.properties checkin
                31900: THOR-249: override edition interceptor
                31901: Fix for THOR-396. Spelling mistake on signup screen.
                31902: Resolve THOR-251: Update the Help URLs for Cloud
                31904: Resolve THOR-403: -system- tenant not found logged from server
                31918: Create site form tweak (manual form.validate() call required since javascript is changing a another fields value)
                31919: Logout page refactoring
                31925: Create site now resets form before show using forms-runtime's new "reset" method
                31926: Disable flash upload
                31927: THOR-363: increase initial file quota
                31930: Updated SimpleDB service so you can set the SimpleDB domain to record events too
             
        47003: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35804: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                31933: THOR-387. Analytics.
                    Added analytic call for account registration (the initial signup, not the activation, which was added previously).
                    This adds a new mandatory parameter to the signup webscript: "source" as well as various new optional parameters.
                    The same parameter is now mandatory on the RegistrationService.
                    Impacts on test code.
                    Changed the rest-client .rcq file to show new required parameter.
                    Changed AnalyticsProperties to take the Object wrappers for primitives as these are optional and so we need to be able to pass null.
                    Added a new (hidden) field to Erik's signup Share page to send an appropriate value for the signup.
                31939: THOR-404: disable JBPM
                31943: THOR-387. Analytics.
                    I've overridden upload.post.js to add analytics data for file uploads.
                31946: Fixed THOR-385 "Account summary file usage bar does not display for any theme other than the default theme"
                31947: Fixed THOR-308 "Invite user drop-down works incorrectly"
                31948: Resolve THOR-384: It is impossible to create user administrator@'domain':
                31949: Follow-up fix for case sensitive user names
                31953: THOR-311: It is impossible to create workflow when 'Send Email Notifications' flag is checked:
                31959: Removing change-password override since user shall be able to change his password
                31961: Fix tests after recent username/email address changes
                31966: Grey Theme
                31979: Dropping Analytics logging level down to 'warn' from 'debug'.
                31982: Fixed THOR-419 "UI edits required"
                31983: Fixed THOR-419 "UI edits required" part 2
                32003: THOR-422. Spurious error logging during signup/registration (not activation).
                    This was because the analytics event action code assumed the user exists, which they don't do at registration, of course.
                32004: Resolve undefined undefined seen in invite signup dialog
                32006: Restricted tentant component now displays dialog instead of gray page
                32007: THOR-300: fix AWS config
                32013: Fixed THOR-353 "No validation for the fields on the "Reset Password" page"
                32014: Fixed THOR-423 "Removing the yellow "Welcome to your dashboard, firstname, lastname" causes error"
                32018: Made sure new cloud theme (greyTheme) also has new theme border & bgs (making the account quota being displayed)
   48122: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47007: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             35817: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  32250: (RECORD ONLY) Merged /HEAD to BRANCHES/DEV/THOR1: (ok'ed with DC/DG)
                       31750: Solr: Fix owner Id cache
                       31751: Fix for ALF-11104: add authenticated user to authorisations list in PermissionService + fix inconsistency in AuthorityService
                       31760: Correct Fix for SOLR owner ID cache
                       32172: Fixes for: 
                                  ALF-11521 Protect SOLR running against the wrong Alfresco DB      
                                  ALF-11602 Solr Core Tracker - does not need to re-init CMIS dictionary (when there are no model changes)       
                                  ALF-11621 SOLR old versions of tracked models are not getting deleted when models are updated
                       32234: Fix for ALF-11568 SOLR indexing is ignoring properties that are indexed but not tokenised and not stored - was WCMQS navigation is broken
                  32256: THOR-488. Tidy up account types.
                  32258: Login analytics event.
                  32260: Reduce logging on startup for enabled tenants (see also THOR-475 / THOR-81)
                  32262: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1:
                       32139: Fix for ALF-11599 - Section ''Others are Editing'' shows documents that should not be present
   48123: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (repo pre-merge)
        47038: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35811: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                32019: Merged rev 32016 from THORSURF1
                32021: THOR-428: Fix activity feed email notifications (to contain network/tenant ctx)
                32024: Fixed "THOR-424 'Upload File' button is disabled in FF for the second and futher uploads"
                32026: Restricted tenant page now has link back to users home dashboard so he doesn't feel stuck
                32029: Fixed GetRequest test to ignore uid's that aren't emails (like admin)
                32030: THOR-310: Override getCacheKey method from AbstractCachedViewResolver to ensure that each tenant gets their own cached copy of each Share page (this ensures that nested Component config gets processed for all tenants)
                32031: Resolve THOR-417 Workflow notification emails do not take into account tenant in their urls back to Share
        47039: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35812: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                32041: Label changes according to Kathryn's "UI Text_scenario 5.docx"
                32052: THOR-405: Fix 'contentstore.deleted' to be on S3 (albeit co-mingled)
                32058: Removed unnecessary borders from profile pages
                32065: Fix build issue where cloud share war was not being cleaned before build
                32066: Fix those pesky solrcore properties
                32071: THOR-461: fix following email notification (to contain network/tenant ctx)
                32076: Fix to disable error on unit tests
                32077: Added logging to NullPointerException fix
             35814: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                32103: Finally! A fix for THOR-193. :)
                32119: Fix for setting theme as network admin
                32120: Improved text on upgrade account page
                32124: Refactored CloudInvitationService Integration Tests to allow for easier expansion and then I expanded.
                32130: Fix for THOR-457. Already have an account email template needs updating/fixing.
                32135: THOR-464 Fix "ThumbnailRegistry init does not scale with # of tenants"
                32140: Apply Beta logos and adjust about dialog for cloud
             35815: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                32144: THOR-438: Latest Spring Surf libs (fix relative URI login redirect problem caused by un-encoded URI)
                32147: THOR-475 - improvement(s) to trim time to create tenant
                32148: THOR-475 - improvement(s) to trim time to create tenant
                32154: GreyTheme updates
                32157: THOR-430: Forgot password dialog: UI text not what was suggested
                32159: GreyTheme updates
                32174: THOR-454 - User can find content stored in Company Home/Data Dictionary via Advanced Search
                32176: Signup page now cloud.alfresco.com
                32179: THOR-475 - improvement(s) to trim time to create tenant
                32184: Remove jargon from workflow names and descriptions
                32185: Pesky solrcore.properties
             35816: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                32188: THOR-478: Updated Spring Surf libs - fixed relative URL redirect after login including support for @ symbol in URL
                32195: Fix for THOR-379. Pending invitations UI show invitee emails as links to profile pages - even for non-existent users.
                    Added yet more data to the CloudInvitation REST API: inviteeIsMember which tells caller whether the invitee is already a member of the tenant in which the invitation is running.
                    Returning this flag through the Java API & REST API
                    Tweaks to the Share JS so that it renders a <span> for invitees who are not members and an <a> for those who are. 
                32198: Replace workflow text with task related text
                32202: Resolve THOR-481: Moving or copying content always shows error popup but always succeeds
                32204: Build fix
                32238: THOR-290: Configurable google-analytics tracking code script insertion
                32239: Tidying up some UI text. Missing apostrophes, invitation instead of invite.
                32241: THOR-471: Added GetSatisfaction feedback widget
             35818: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                32266: Addition of createSite analytics recording.
                32268: THOR-505: Disable (turnoff autostart) of unused subsystems
                32270: Adding in some theme colors that dissapeared (will make the quota bar get displayed again)
                32272: Resolve THOR-354: (None) displayed for network administrators
                32273: THOR-499: New Relic monitoring updates
                32279: Implemented THOR-508 "Accept terms & conditions checkbox & link on the complete profile pages"
                32280: Fixed THOR-474	  "Password Strength indicator does not conform with other leading website password indicators"
   48125: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: (repo pre-merge)
         47053: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
            32377: (RECORD ONLY) THOR-565: fix unfortunate type that affects activity permissions (for connected users - either via site membership or followers)
            32378: CollectionUtils method for collection intersection. Should be merged to HEAD.
            32383: THOR-572: remove unused JBPM servlets (deployprocess, workflowdefinitionimage)
            32384: Fixed THOR-549 "Google Analytics Installed but not seeing any events raised on GA reports"
            32389: Fix for THOR-567 "userprofile broken"
            32401: THOR-525 - fix MT-specific issue (deleting site does not clear associated activities within tenant)
            32409: THOR-66: disable WebDAVServlet (does not need to load-on-startup) + a few others
            32414: Theme updates from linton
            32423: Fixed THOR-661 "Limit number of simultaneous connections in drag n drop upload"
            32424: THOR-81: support for signup/activate scaling tests
   48126: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47058: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts (not mergeinfo/slingshot/web-framework-commons/3rd-party) 
             35827: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35828: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35829: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35830: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35831: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35832: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
   48129: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47067: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35844: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35845: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35846: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35847: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35848: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35849: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35850: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35853: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35854: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35855: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
        47069: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35860: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  33057: Refactored Slingshot overrides so that they are now in the Thor-Share private module. This has been done to reduce conflict issues when merging back into HEAD.  The overrides are now in the correct locations (the only files that could not be moved to the private module are urlrewrite.xml and surf.xml).
             35870: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1: (part 1 - repository project)
                  33022: THOR-662: Email templates should load/resolve (initially) from classpath
        47071: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35877: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  33090: ALF-10826: hidden aspect
                  33091: THOR-416: fix surf-config folder (appears where it shouldn't)
                  33093: Sweep through email templates.
        47072: Fix merge error (FeedCleaner)
        47073: Fix merge error (WorkflowTestSuite)
        47074: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35881: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  33104: Tweak to invitation email template
                  33112: Refactored impl of THOR-694 so that content limit of 25Mb is on by default in THOR for both local FS and S3-based FS.
                      Changed ContentLimitProvider bean to take String limit, rather than long - to allow empty string value on core Alfresco.
                      Set the limit to the empty string in core Alfresco, which means 'no limit'.
                      Applied the limit always.
                      Set the limit to 25Mb in Thor/alfresco-global.properties
                      Fixed a minor bug in error reporting due to previous exception renaming.
        47076: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35885: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  33134: THOR-874: Updated Surf libs Fixes ArrayIndexOutOfBoundsException caused by multiple threads apply i18n extensions to a WebScript
                  33135: Missing WebScripts sources JAR from r33134
                  33153: Resolve THOR-551: Password Hashes Need Review
                  33154: Update to latest email blacklist
                  33155: Fixed THOR-534 "Login Box shows scroll bars"
                  33156: Build fix for tests failing due to recent password changes
                  33157: Build fix for updated email blacklist
                  33172: THOR-776: Re-implement Share override as guided by Erik
                  33173: THOR-831: Text in Someone
             35886: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                  33174: Latest SpringSurf libs - improved RemoteClient reused of connections per request thread.
                  33176: THOR-833: Search: clicking on All Sites returns no results
   48131: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47098: (RECORD ONLY) Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
             35895: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                34105: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/THOR1:
                   33267: (RECORD ONLY) Created branch THOR1_SPRINTS (from THOR1 r33255)
                   33269: Snapshot of simple redeploy shell script (for AWS mini-dev/test env)
                   33272: JMeter test script
                34106: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/THOR1:
                   33313: THOR-928: Added caching for i18n bundles provided by extensibility modules (latest Surf libs, r980)
   48133: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47097: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35906: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
             35907: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
        47099: Fix merge/compile error.
        47103: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35913: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35914: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35915: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35916: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35917: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
        47111: Fix merge error
        47115: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35930: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35933: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35934: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
        47132: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             36053: 1st pass at upgrading to latest Spring Surf
             36059: Fix CloudInvitationService tests for cloud1
        47133: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
   48135: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        46977: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35792: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31724: Can't compare pages using page.url.uri anymore since that doesn't include the tentant, now skips that part of the url and uses page.id instead.
              31733: Add account info to user network web script
              31736: Refactored RegistrationServiceImpl.promote... so that it uses the presence of cloud:personExternal aspect to prevent promotion of external users rather than account-based data.
           35794: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31744: Account relates to url & various Share features now hidden in cloud
              31746: 1/5 for THOR-341 "F147: Share features are disabled for external network member"
           35796:Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31756: THOR-265: Currently the first user to sign up to a dmain becomes the domain admin, and can view the full admin console. Is this going to change?
              31771: Added stub for SimpleDBAnalytics Service
              31772: Final interfaces and integration with SimpleDB for Analytics
              31774: Modified landing_time key for MixPanel
              31776: Implemented #3 for THOR-341 "F147: Share features are disabled for external network member"
              31777: Resolve test classpath since introduction of new thor libs
              31779: Implemented #3 for THOR-341 "F147: Share features are disabled for external network member" part 2
              31781: Resolve issue getting access to account settings when network admin of paid business account
              31783: Implemented #2 for THOR-341 "F147: Share features are disabled for external network member"
              31794: Minor changes after review with DavidC and NeilM
              31797: Collaboration title improvement: Now hiding the html elements used to build the menu until the menu is created so ui doesn't bump and look ugly.
              31799: Part #6 of THOR-367 "F60: Remove Share features not required for Cloud"
                   - 6) Document Selectors - root is Sites folder
              31801: Removed ugly "extra" borders around some of the input fields in the user profile form
              31802: Fixed part #7 of THOR-367 "F60: Remove Share features not required for Cloud"
                   - 7) Edit Profile - remove edit email from edit profile form
              31804: Fixed part #5 of THOR-367 "F60: Remove Share features not required for Cloud"
                   - 5) Move... / Copy... dialog  - remove repository  - remove my user home
   48136: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        47001: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35798: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31805: Adding utility method to our CollectionUtils class that I need as part of pending invitations work (THOR-373).
              31809: Parameterized signup url & email
              31812: THOR-373 Pending invitations.
              31814: Made changes to way aid is captured ready for allowing events to override aid if needed
              31820: Mapping of network admin to system admin part 1:
           35801:Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31829: Fixed THOR-352 "Incorrect validation of emails on "Forgot Password" page"
              31830: (RECORD ONLY) Exclude ExportDbTest; issues with MySQL
              31831: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1:
                   31784: Fix up unit test.
              31833: Email validation now allows 7 character long top level domain (so we can do tests with example)
              31834: New form colors for invalid & mandatory fields
              31837: THOR-327 - remove bootstrapped guest / guest@<tenant>
              31838: THOR-327 - remove bootstrapped guest / guest@<tenant>
              31844: Added missing headers to Java files.
              31845: Mapping of network admin to system admin part 2:
              31846: Addition of very basic test script for the Script API of AnalyticsService.
           35803: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31853: Forms refactor first cut - for review
              31855: THOR-387. Analytics event for user activation is sent.
              31858: THOR-387. Fixing a corner-case bug in SendAnalyticsRequest.
              31863: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1:
                   31841: Build Fix
              31868: THOR-361: Fix /service/index
              31881: THOR-387. Adding analytics event for site invitation.
              31882: THOR-387. Fixing analytics event for site invitation.
              31883: THOR-66: disable some of the /alfresco (web.xml) servlet mappings
              31884: THOR-387. Analytic event callouts for site invitation response.
              31899: Revert solrcore.properties checkin
              31900: THOR-249: override edition interceptor
              31901: Fix for THOR-396. Spelling mistake on signup screen.
              31902: Resolve THOR-251: Update the Help URLs for Cloud
              31904: Resolve THOR-403: -system- tenant not found logged from server
              31918: Create site form tweak (manual form.validate() call required since javascript is changing a another fields value)
              31919: Logout page refactoring
              31925: Create site now resets form before show using forms-runtime's new "reset" method
              31926: Disable flash upload
              31927: THOR-363: increase initial file quota
              31930: Updated SimpleDB service so you can set the SimpleDB domain to record events too
   48137: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        47003: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35804: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              31933: THOR-387. Analytics.
                  Added analytic call for account registration (the initial signup, not the activation, which was added previously).
                  This adds a new mandatory parameter to the signup webscript: "source" as well as various new optional parameters.
                  The same parameter is now mandatory on the RegistrationService.
                  Impacts on test code.
                  Changed the rest-client .rcq file to show new required parameter.
                  Changed AnalyticsProperties to take the Object wrappers for primitives as these are optional and so we need to be able to pass null.
                  Added a new (hidden) field to Erik's signup Share page to send an appropriate value for the signup.
              31939: THOR-404: disable JBPM
              31943: THOR-387. Analytics.
                  I've overridden upload.post.js to add analytics data for file uploads.
              31946: Fixed THOR-385 "Account summary file usage bar does not display for any theme other than the default theme"
              31947: Fixed THOR-308 "Invite user drop-down works incorrectly"
              31948: Resolve THOR-384: It is impossible to create user administrator@'domain':
              31949: Follow-up fix for case sensitive user names
              31953: THOR-311: It is impossible to create workflow when 'Send Email Notifications' flag is checked:
              31959: Removing change-password override since user shall be able to change his password
              31961: Fix tests after recent username/email address changes
              31966: Grey Theme
              31979: Dropping Analytics logging level down to 'warn' from 'debug'.
              31982: Fixed THOR-419 "UI edits required"
              31983: Fixed THOR-419 "UI edits required" part 2
              32003: THOR-422. Spurious error logging during signup/registration (not activation).
                  This was because the analytics event action code assumed the user exists, which they don't do at registration, of course.
              32004: Resolve undefined undefined seen in invite signup dialog
              32006: Restricted tentant component now displays dialog instead of gray page
              32007: THOR-300: fix AWS config
              32013: Fixed THOR-353 "No validation for the fields on the "Reset Password" page"
              32014: Fixed THOR-423 "Removing the yellow "Welcome to your dashboard, firstname, lastname" causes error"
              32018: Made sure new cloud theme (greyTheme) also has new theme border & bgs (making the account quota being displayed)
   48147: CONV: fix merge issue - remove duplicate prop def (contentLimitProvider)
   48148: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        merge fix for r48072
   48149: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47111: Fix merge error
        47115: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             35930: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35933: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
             35934: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
        47132: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413: - pre-merge of repo parts
             36053: 1st pass at upgrading to latest Spring Surf
             36059: Fix CloudInvitationService tests for cloud1
        47133: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
   48150: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD: (effectively RECORD ONLY - no changes)
        47173: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             36232: MT - fix pop of tenant ctx (to match push)
   48154: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        47038: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35811: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32019: Merged rev 32016 from THORSURF1
              32021: THOR-428: Fix activity feed email notifications (to contain network/tenant ctx)
              32024: Fixed "THOR-424 'Upload File' button is disabled in FF for the second and futher uploads"
              32026: Restricted tenant page now has link back to users home dashboard so he doesn't feel stuck
              32029: Fixed GetRequest test to ignore uid's that aren't emails (like admin)
              32030: THOR-310: Override getCacheKey method from AbstractCachedViewResolver to ensure that each tenant gets their own cached copy of each Share page (this ensures that nested Component config gets processed for all tenants)
              32031: Resolve THOR-417 Workflow notification emails do not take into account tenant in their urls back to Share
        47039: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35812: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32041: Label changes according to Kathryn's "UI Text_scenario 5.docx"
              32052: THOR-405: Fix 'contentstore.deleted' to be on S3 (albeit co-mingled)
              32058: Removed unnecessary borders from profile pages
              32065: Fix build issue where cloud share war was not being cleaned before build
              32066: Fix those pesky solrcore properties
              32071: THOR-461: fix following email notification (to contain network/tenant ctx)
              32076: Fix to disable error on unit tests
              32077: Added logging to NullPointerException fix
           35814: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32103: Finally! A fix for THOR-193. :)
              32119: Fix for setting theme as network admin
              32120: Improved text on upgrade account page
              32124: Refactored CloudInvitationService Integration Tests to allow for easier expansion and then I expanded.
              32130: Fix for THOR-457. Already have an account email template needs updating/fixing.
              32135: THOR-464 Fix "ThumbnailRegistry init does not scale with # of tenants"
              32140: Apply Beta logos and adjust about dialog for cloud
           35815: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32144: THOR-438: Latest Spring Surf libs (fix relative URI login redirect problem caused by un-encoded URI)
              32147: THOR-475 - improvement(s) to trim time to create tenant
              32148: THOR-475 - improvement(s) to trim time to create tenant
              32154: GreyTheme updates
              32157: THOR-430: Forgot password dialog: UI text not what was suggested
              32159: GreyTheme updates
              32174: THOR-454 - User can find content stored in Company Home/Data Dictionary via Advanced Search
              32176: Signup page now cloud.alfresco.com
              32179: THOR-475 - improvement(s) to trim time to create tenant
              32184: Remove jargon from workflow names and descriptions
              32185: Pesky solrcore.properties
           35816: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32188: THOR-478: Updated Spring Surf libs - fixed relative URL redirect after login including support for @ symbol in URL
              32195: Fix for THOR-379. Pending invitations UI show invitee emails as links to profile pages - even for non-existent users.
                  Added yet more data to the CloudInvitation REST API: inviteeIsMember which tells caller whether the invitee is already a member of the tenant in which the invitation is running.
                  Returning this flag through the Java API & REST API
                  Tweaks to the Share JS so that it renders a <span> for invitees who are not members and an <a> for those who are. 
              32198: Replace workflow text with task related text
              32202: Resolve THOR-481: Moving or copying content always shows error popup but always succeeds
              32204: Build fix
              32238: THOR-290: Configurable google-analytics tracking code script insertion
              32239: Tidying up some UI text. Missing apostrophes, invitation instead of invite.
              32241: THOR-471: Added GetSatisfaction feedback widget
           35818: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32266: Addition of createSite analytics recording.
              32268: THOR-505: Disable (turnoff autostart) of unused subsystems
              32270: Adding in some theme colors that dissapeared (will make the quota bar get displayed again)
              32272: Resolve THOR-354: (None) displayed for network administrators
              32273: THOR-499: New Relic monitoring updates
              32279: Implemented THOR-508 "Accept terms & conditions checkbox & link on the complete profile pages"
              32280: Fixed THOR-474	       "Password Strength indicator does not conform with other leading website password indicators"
        47053: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
           Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32377: (RECORD ONLY) THOR-565: fix unfortunate type that affects activity permissions (for connected users - either via site membership or followers)
              32378: CollectionUtils method for collection intersection. Should be merged to HEAD.
              32383: THOR-572: remove unused JBPM servlets (deployprocess, workflowdefinitionimage)
              32384: Fixed THOR-549 "Google Analytics Installed but not seeing any events raised on GA reports"
              32389: Fix for THOR-567 "userprofile broken"
              32401: THOR-525 - fix MT-specific issue (deleting site does not clear associated activities within tenant)
              32409: THOR-66: disable WebDAVServlet (does not need to load-on-startup) + a few others
              32414: Theme updates from linton
              32423: Fixed THOR-661 "Limit number of simultaneous connections in drag n drop upload"
              32424: THOR-81: support for signup/activate scaling tests
   48157: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        Fixing merge issue from r48135
   48158: Merged DEV/CONV_V413 to DEV/CONV_HEAD (RECORD ONLY)
        47046: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
              Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32281: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1 (ok'd with DC):
                   32242: ALF-11664 Moderated sites should use site.public.group (from SysAdminParams) for setting the group with general access, as Public sites already do, rather than hard coding the EVERYONE group
              32283: Added "guest" to the list of blocked usernames, thereby showing failure to register guest@tenant.com, rather than allowing it and failing to activate the account later.
              32285: THOR-505: Disable (turnoff autostart) of unused subsystems
              32286: Fix NPE in AnalyticsProperties when empty json provided
              32287:  THOR-508 "Accept terms & conditions checkbox & link on the complete profile pages"
              32289: Miscellaneous changes to account types & classes.
              32290: Change "recent activities" email notification interval from hourly to daily
              32292: Resolve THOR-516: Check all email template URLs point to cloud.alfresco.com not www.alfresco.me
              32293: THOR-517. Insert Signup Analytics Event into Site Invite process.
              32305: Fixed THOR-306 "Invite user autocomplete not working correctly"
              32308: THOR-529: Red "No items" in doc lib when adding 1st document into a x-network site (WebDAV error in log)
              32309: Fixed THOR-306 "Invite user autocomplete not working correctly"
              32314: THOR-520: Change workflow in tooltip text to task
              32318: THOR-532: Improve auto-generate of home site shortname (in case of clash)
              32339: Updated analytics events to include  parameter
              32342: Additional debug logging as part of THOR-544.
              32376: THOR-574: Accept invite while logged in displays 'you've declined...' message
   48163: Merge CONV_V413 to CONV_HEAD
        46713: Set Maven version in POM files to 4.1.3-CONV-SNAPSHOT
        46741: Deploy SPP jar file (aka VTI) into Maven repository as well
        47440 RECORD ONLY: Declare dependency on Surf 1.2.0-SNAPSHOT in Maven poms
        47450 RECORD ONLY: Bring Chemistry OpenCMIS libs back into the wars
        47579 RECORD ONLY: Switch Chemistry OpenCMIS version to a custom 0.8.0-20120706
        47646: POM dependency: use 4.2-min version of netcdf rather than 4.2, which embeds an old commons-codec
        47683: Create a jar holding the sharepoint config, for use with CLOUD2
        47740 RECORD ONLY: Merge V4.1-BUG-FIX to CONV_V413
           46360: ALF-17697: Create proper source jars, to deploy to Maven repository
        47964: Filter servlet-api from dependencies
   48166: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        47064: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35827: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32446: Fixed THOR-658 "File Upload Limits"
              32455: Tweak logging (S3 exists check -> debug)
              32462: Move tenant enabled check from low level services to web script entry point:
              32467: THOR-666: Improve startTenants - do not need to re-update enable/disable flag on startup
              32474: JMeter test script updates (#3)
              32485: Fix to ensure the HTML upload POSTed response can return html content type.
              32486: JMeter test script updates (#4)
        47084: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35828: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32491: Fix account signup since change to tenant authentication (which is now slightly stricter:
              32518: Fix for mixed cased usernames login problems
              32523: Add db pool validate query
              32546: Minor - remove unecessary call to getObjectDetails (to avoid calling twice for non-existent object)
              32556: Fixed tenant url edge cases and followed up a fix started by DavidC for signup logins
              32560: Fixed tenant url edge cases and followed up a fix started by DavidC for signup logins - part 2
           35829: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32571: Resolve THOR-653: Uploads consume disk space in /var/cache/tomcat6/
              32572: Fixed THOR-563 "UI: CSS / layout issue on profile page"
           35830:Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32577: THOR-682: refactor Tenant/S3 routing content store (it is now self-routing based on S3 content url)
              32580: Added missing init-method attributes to key CachingContentStore components.
              32583: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1:
                   32321: ALF-11700: Possible to generate feed entries with malformed NodeRefs
              32593: THOR-688 Analytics to support various URLs not just "website".
                  Addition of optional sourceUrl paramater to account-signup analytics.
              32603: Added file size limitation and hooked in html upload to the form validations w backgrounds and tooltips.
              32629: THOR-199: Fix create user (activate) sometimes has to retry - due to: "Deadlock ... alfresco.permissions.insert_AclMember-Inline"
              32654: THOR-692: Disable (auto) home folder creation
           35831: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32661: Latest SpringSurf libs: 
           35832: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32666: Build: add cloud/cloud-share to ant clean-modules/clean
              32672: Ensure that application context is available for TenantAlfrescoAuthenticator in TenantUserFactory
              32675: THOR-536: Added TenantPageTypeViewResolver
              32686: JMeter test script updates (#5)
              32700: THOR-689: DevTest: 2 uploads failed (out of 10000) - missing retry ?
           35844:Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32702: JMeter test script update
              32718: THOR-691: Feed Notifier sends emails on startup of Server
              32756: Fixed THOR-556 "Can't view members in a public Site"
           35845: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1: (+ resolved conflicts w/ 4.0.1)
              32032: THOR-370: Add tenant-switching to /cmisatom (OpenCMIS-based v4.x impl => AlfrescoCmisService)
           35846: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32759: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1
                      32757: Fix for ALF-9365
              32761: Changed restricted tenant to appear as page not found
              32763: THOR-792: Ensure that failed login returns to login page
              32769: Updated networks icon
              32770: Authentication updates: Unauthenticated requests to inaccessible tenants (either that don't exist or not authorized to access) will be prompted for authentication and if credentials are valid the "Page Not Found" page will be shown, but authentication will have completed and user can return to their home dashboard via link provided
              32785: Fix for THOR-798
              32789: THOR-796: reduce startup time (1000s of tenants)
           35847: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32790: THOR-480: Spring Surf lib updates - ensure that i18n properties extensions degrade the specificity of the locale to ensure that no message keys are shown (unless the message genuinely doesn't exist)
              32798: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1: (fix for THOR-721)
                   32245: Unit tests for ALF-10343, with the problematic parts commented out pending a fix
                   32251: ALF-11664 site.public.group (via SysAdminParams.SitePublicGroup) should be used when updating site visibilities, as it is for creating sites
           35848: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32805: Latest SpringSurf libs:
        47085: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35849: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32807: Fixed invalid network switching URLs
              32808: Updated Spring Surf libs to that revert invalid changes to relativeUri determining method
              32837: Set Alfresco connector reconnect timeout to zero
              32856: Fix for THOR-801. Trying to access the archive as 'admin' gives error.
           35850: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              32858: (RECORD ONLY) Merged HEAD to BRANCHES/DEV/THOR1: 
                 (pull in some pre-reqs for cleaner merge of ALF-10826)
                 31864: ALF-10686 - Original modification date is lost when files are copied into Alfresco via CIFS
                 31934: Update stale File State Cache.
                 32068: ALF-10941 - CIFS Open file from excel
                 32097: build fix.
                 32131: ALF-10902 - No friendly notification occurs when Editor or Collaborator tries to delete content
                 32132: Open read-only for attributes only.
                 32182: ALF-10963      Cannot overwrite files on CIFS share with Notepad++
              32876: THOR-784: Fix 'Accounts API loading is very slow' (get page of accounts)
              32939: THOR-480: Latest Spring Surf libs - fix i18n extensibility problems.
              32948: THOR-859: Performance: Disable rules service
              32953: THOR-863: Performance: loadUserByUsername -> isAdminAuthority
              32959: (RECORD ONLY) Merged HEAD to DEV/THOR1
                 32958: (record-only) Merged Dev/THOR1 to HEAD
                    32945: Fix for ALF-12122 Some CMIS queries with SOLR are not returning correct results
           35853: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33024: Fixed THOR-670 "Incorrect window title for 'Task History' page"
              33027: Missing merge info for r32694
           35854: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
               33033: Latest SpringSurf libs:
           35855: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33038: Minor: do not bootstrap web script readme x2 into Data Dictionary (when creating tenant)
              33039: Resolve THOR-839: Following webscripts doesn't set Content-Type response header
              33040:  Fixed THOR-817 "Issues with "invite user" email autocomplete field"
              33041: Fixed THOR-789 "Mix of languages"
              33042: Resolved THOR-849: Upload issue ? - Failed to get content ... (No such file or directory) ... x22
   48169: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47176: (RECORD ONLY) Fix Eclipse .classpath to match Spring Surf libs
   48170: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        48168: CONV: Fix NPE in get people CQ
   48183: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47184: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
                35989: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/THOR1:
                     34153: Minor: THOR-5: MT-aware immutable singletons (spp/vti)
                     34161: Prevent session timeout redirect problem resulting from clicking user link in activities feed
                     34183: Part one of THOR-1129.
                     34185: Part two of THOR-1129. The Thor-specific parts.
                     34199: Fix for THOR-106 a failing test case that was switched off.
                     34202: THOR-106 addendum. Editing build.xml to put the test class back in to the build.
                     34211: BM: sync ThorTest (additional coverage)
                     34308: Merged HEAD to THOR1_SPRINTS
                          34250: Fixed THOR-1137 "Make Spring Surf enable-auto-deploy-modules by default"
                     34540: Share UI - copyright should be 2012 (related to THOR-1015)
                     35286: Resolve THOR-1242: Update Beta Logo
   48187: Merged DEV/CONV_V413 to DEV/CONV_HEAD
        47086: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35860: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33057: Refactored Slingshot overrides so that they are now in the Thor-Share private module. This has been done to reduce conflict issues when merging back into HEAD.  The overrides are now in the correct locations (the only files that could not be moved to the private module are urlrewrite.xml and surf.xml).
           35870: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1: (part 1 - repository project)
              33022: THOR-662: Email templates should load/resolve (initially) from classpath
           35877: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33090: ALF-10826: hidden aspect
              33091: THOR-416: fix surf-config folder (appears where it shouldn't)
              33093: Sweep through email templates.
           35881: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33104: Tweak to invitation email template
              33112: Refactored impl of THOR-694 so that content limit of 25Mb is on by default in THOR for both local FS and S3-based FS.
                 Changed ContentLimitProvider bean to take String limit, rather than long - to allow empty string value on core Alfresco.
                 Set the limit to the empty string in core Alfresco, which means 'no limit'.
                 Applied the limit always.
                 Set the limit to 25Mb in Thor/alfresco-global.properties
                 Fixed a minor bug in error reporting due to previous exception renaming.
           35885: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33134: THOR-874: Updated Surf libs Fixes ArrayIndexOutOfBoundsException caused by multiple threads apply i18n extensions to a WebScript
              33135: Missing WebScripts sources JAR from r33134
              33153: Resolve THOR-551: Password Hashes Need Review
              33154: Update to latest email blacklist
              33155: Fixed THOR-534 "Login Box shows scroll bars"
              33156: Build fix for tests failing due to recent password changes
              33157: Build fix for updated email blacklist
              33172: THOR-776: Re-implement Share override as guided by Erik
              33173: THOR-831: Text in Someone
        47096: Fix merge compile issue
        47100: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35906: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33054: THOR-796: slow startup time (on QA env with ~ 10k tenants)
              33055: Implementation of THOR-694. File size upload limit within ContentStore.
           35907: Merged BRANCHES/DEV/THOR1 to BRANCHES/DEV/CLOUD1:
              33213: THOR-833: wip
              33214: Allow for workflows which may have a reference to a repo based email template
              33228: Added extension points for links in user profile toolbar
              33230: Added extension points for links in user profile toolbar part 2
              33232: Fixed THOR-907 "Remove Share functionality which allows access to people profiles outside of your site memberships"
              33233: Fixed THOR-907 "Remove Share functionality which allows access to people profiles outside of your site memberships" part 2
              33234: Extension points in members bar now ft the pattern of user profile toolbar.
              33236: Fixed THOR-907 "Remove Share functionality which allows access to people profiles outside of your site memberships" part 3
              33241: THOR-908 - wip
              33243: THOR-908 / THOR-64 - wip
              33253: Fixed THOR-907 "Remove Share functionality which allows access to people profiles outside of your site memberships" part 4
              33255: Fixed THOR-907 Remove Share functionality which allows access to people profiles outside of your site memberships part 5
        47169: Merged from BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413
           35913: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33410: Merged form THOR1_SHARE_PERFORMANCE to THOR1_SPRINTS
                   33111 Branch for testing out new Spring Surf client side resource improvements
                   33291 Share client side resource handling to avoid stale client side cache part 1
                      - New spring surf libs with <@script> & <@link> directives that adds the checksum of the file to avoid client cache beoming stale
                      - Refactored most old <script> to become <@script>
                      - Refactored most old <link> to become <@link>
                      - Removed old <@link> macro from alfresco-temaplte.ftl, resources.get.html.ftl & corm-console.ftl (now using the directive instead)
                      - i18n messages now imported by <@generateMessages> directive to avoid stale cache
                      - Added calendar, cookie, resize & uploader yui modues to yui common to decrease the number of .js files requested
                      - Added new YUI module filter that adds "-min.js?v=<YAHOO.VERSION>" to stop a yui resources being stale after a yui upgrade
                   33307 Share client side resource handling to avoid stale client side cache part 2
                      - Made TinyMCE avoid becoming stale after a new release
                   33334 Share client side resource handling to avoid stale client side cache part 2
                      - New surf libs with <@checksumResource> directive used by ie6.css, ie7.css, ipad.css & tiny_mce.js to avoid manual change of version number in script import
                   33368 Share client side resource handling to avoid stale client side cache part 3
                      - Avoiding re-load of .js, .css & images (referenced from a .css) when switching tenants (note images that have been referenced using <img src=""> will get reloaded)
                   33405 CSS import duplication fix
           35914: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33417: Thor JMeter test script tweaks
              33420: THOR-1000: Solr tracking: NodeContentGet should not create (empty) temp file if there is no transformer (eg. for image node)
              33434: The <#if> statement & <script> element for google analytics wasn't in sync, causing a closing </script> element always being printed.
              33440: Latest SpringSurf libs - performance and thread safety improvements.
              33458: ThorTest-preReg (JMeter) test update
              33460: Latest SpringSurf libs:
              33466: THOR-1002: Updated enterprise overlay
              33480: Latest SpringSurf libs - Surf performance improvements from Thor high load profiling in Jmeter/Jprofiler
           35915: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33493: THOR-979: HTML5 upload support
              33505: THOR-983: Preload images, JS and CSS for basic dashboards, document library and document details (from login page)
              33518: THOR-979: HTML5 upload tweaks (upload doesn't start automatically when updating to give opportunity to set version type and add comment
              33520: THOR-900: Modified header.get.html.ftl to ensure that user name is URL encoded (so that the "@" symbol in the user name becomes "%40" to ensure that timeout redirects work)
              33527: THOR-1027: Header Alfresco image now links back to application context and about dialog is now linked from footer Alfresco image
              33551: THOR-1007: Fixed upload hang on FireFox when uploading folders
           35916: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33556: Merged BRANCHES/DEV/THOR1_INVITATION to BRANCHES/DEV/THOR1_SPRINTS:
                   33386: Branch for Invitation enhancements
                   33474: THOR-1006. Part 1. Services-level changes to support invitation enhancements.
                   33475: THOR-1006. Documentation on the desc.xml.
                   33476: THOR-1006. Commenting out some unfinished code to avoid any unwanted side-effects.
                             Still to do: get the authentication check working and ensure no unexpected side-effects.
                   33483: THOR-1006. Completion of basic services changes to support 'accept invitation on alternate email'.
                       Note! The authentication of the alternative email's password is NOT YET IMPLEMENTED due to a repo
                             dependency. This MUST be implemented before merge to THOR1_SPRINTS. I'll create a new JIRA.
                   33511:  Fix for THOR-1017.
                   33525: THOR-1017. Slight improvement to desc.xml doc. HTTP status codes in response.
                   33529: Fixed THOR-980 & THOR-1024 & THOR-1025
                   33553: Fixed THOR-980 "F14: Allow users to login using existing email address if invite is sent to wrong email address and they already have an account"
              33571: Fixed HTML5 uploader to work with profile avatar image upload
              33585: Thor JMeter test script tweaks
              33596: THOR-1035: Enabled HTML5 uploader for application logo upload
              33598: THOR-1031: Reduced HTML5 checks for uploader to ensure that it works for Safari on Mac
              33603: THOR-1039: Updated UX for HTML5 upload when 0kb files are selected
              33606: THOR-1037: Updated variable titles for HTML5/DND upload dialog to support update
           35917: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33615: Latest SpringSurf libs - performance and concurrency improvements
              33690: Resolve THOR-1003: Forgotten Password email is case sensitive
              33692: Merged BRANCHES/DEV/THOR1_PRIVACY to BRANCHES/DEV/THOR1_SPRINTS:
                   33488: Reversed merge revisions related to THOR-907 - 33232, 33233, 33236 - hand tweaks related to 33253, 33255.
                   33492: Removed unused import of com.sun... class
                   33497: Fixes and improvements to user profile page loading - reducing remote calls required and refactoring link build code. Fixed a issue with displaying the Following link on other users profile page.
                   33506: THOR-1020: people visibility
                   33509: Reduced remote calls required to build user profile page.
                   33519: THOR-985, THOR-986
                   33542: THOR-989 - Added extensibility hooks to People Finder component
                   33558: THOR-1014: Profile visibility -1st cut for THOR-993 (/api/people)
                   33564: THOR-1014: Profile visibility - THOR-992 (/webframework/content/metadata?user=)
                   33569: Implemented THOR-985, THOR-986, THOR-989
                   33572: Performance improvement to remove the need for a share->repo call for each page or ajax request to resolve account class name.
                   33579: THOR-1020: cloud people API (re: visibility)
                   33599: Share Thor performance improvements - removed the need to call /internal/cloud/current-user inside various common components - now using cached data in user object.
                   33608: THOR-1014: Profile visibility - fix PeopleRestApiTest
                   33625: THOR-1020: people visibility
                   33632: THOR-984 - Hide Account Settings screen from External Users.
                   33636: THOR-1014: profile visibility
                   33670: THOR-1020/THOR-1014: people/profile visibility
                   33674: THOR-1047: Privacy REST - subscriptions (follower) API
                   33688: THOR-1047: Privacy REST - subscriptions (follower) API
              33696: Fix for THOR-785 "F272: API call to get the number of accounts"
              33698: THOR-1033: Fixed free accounts showing console settings (updated Spring Surf libs)
              33700: Committed other Surf updates missing from r33698 (WebScript JARs) to ensure that manifest meta-data isn't misleading
              33705: THOR-1052: VersionService: ensureVersioningEnabled
              33706: Merged BRANCHES/DEV/THOR1_UPLOADLIMITS to BRANCHES/DEV/THOR1_SPRINTS:
                   33510: (RECORD ONLY) File Upload Limit enhancements
                   33656: Account Quotas / File Upload limit pt1
                   33686: Modified dnd-upload and html-upload WebScripts to retrieve maximum upload size from internal service (and refactored core WebScripts to support override)
              33710: THOR-1020: Privacy (People REST API)
              33713: THOR-1020: Privacy (People REST API)
              33718: THOR-1020: Privacy (People REST API)
              33722: Thor JMeter test script
              33742: Latest SpringSurf libs - performance improvements and concurrency fixes
           35930: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33764: THOR-1021: F287: Account Types can define file size upload limits for the Account which are set when the account is upgraded/downgraded between Account types
              33767: Tweaked HTML5 upload dialog so that error messages are handled gracefully
              33785: Resolve THOR-457: Already have an account email template needs updating/fixing
              33786: Fix to issue spotted by DaveC where switching networks would not correctly refresh user metadata. Also fixed minor encoding issues in related Networks WebScripts.
              33792: Merged BRANCHES/DEV/THOR1_PUBLIC_EMAIL to BRANCHES/DEV/THOR1_SPRINTS:
                   33490: Initial feature branch
                   33535: Fix to unreported issue whereby DirectoryService.getDefaultAccount returns the home account.
                   33547: THOR-176. Invite new user (public domain email address) into site. Part 1.
                   33592: Further work for THOR-176. user metadata REST API now does not return homeTenant if the user is from a public email domain. This conditional removal of the 'homeTenant' JSON property is needed by Share.
                   33593: THOR-176. Refactor of UserTenant to use AccountClass to check isPublicEmailDomain.
                   33620: Fix for NPE in UserTenant.isPublicDomainUser(). The admin user has no account-type.
                   33627: Share updates for public e-mail
              33797: THOR-176: consolidate public domain check
              33802: Remove temporary option to use double @ login (as per THOR-156) - no longer required
              33804: Removed locale from the cachekey used for tenant page view cache.
              33810: Merged BRANCHES/DEV/THOR1_BLACKLIST to BRANCHES/DEV/THOR1_SPRINTS:
                   33709: Blacklist CRUD: THOR-974, THOR-975, THOR-976, THOR-977, THOR-978 (Part 1 - DAO layer)
                   33711: Blacklist CRUD: THOR-974, THOR-975, THOR-976, THOR-977, THOR-978 (Part 2 - Foundation Service layer)
                   33747: THOR-974, THOR-975, THOR-976, THOR-977 and THOR-978. REST API for CRUD of blacklisted email domains.
                   33809: THOR-974, THOR-975, THOR-976, THOR-977, THOR-978 Adding REST-client rcq files for blacklist CRUD.
           35933: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33814: Merged BRANCHES/DEV/THOR1_ACCOUNT_SETTINGS to BRANCHES/DEV/THOR1_SPRINTS:
                   33411: (RECORD ONLY) Thor account settings branch from Thor1_Sprints.
                   33607: Initial checkin for THOR-972, THOR-971, THOR-410
                   33621: THOR-972, THOR-971, THOR-410 - added missing files
                   33639: THOR-971, THOR-972, THOR-410:
                        - add paging properties to the list people web script
                        - default network admin to true and internal to null
                   33641: Second cut of THOR-964 "F173: Network admin can list users of network (with paging support)"
                   33642: THOR-972, THOR-971, THOR-410 - changed paging properties in list users
                   33652: Implemented THOR-964,THOR-965,THOR-965,THOR-966,THOR-967,THOR-968,THOR-969
                   33653: User action click event now stopped so it doesn't modify the url
                   33671: THOR-971: webscript implementation
                   33687: Making premote/demote available for network-admins and not only for admins. check for network admin role already exists in the service code.
                   33694: THOR-971:
                       - Added analytics handling
                       - Fixed invite share url to include tenant
                   33699: THOR-963    "F17: Network admin can add a one or more internal users to their network"
                   33702: THOR-971:
                        - changed the bulk create url
                        - changed the activate email template
                   33703: Make sure Java-based network admin scripts set the response status to 401 if the authenticated user is not a network admin
                   33737: THOR-410:
                       - more unit tests
                       - tidy up
                   33744: (RECORD ONLY) Merged BRANCHES/DEV/THOR1_USER_MANAGEMENT to BRANCHES/DEV/THOR1_ACCOUNT_SETTINGS:
                        33417: Thor JMeter test script tweaks
                        33420: THOR-1000: Solr tracking: NodeContentGet should not create (empty) temp file if there is no transformer (eg. for image node)
                        33434: The <#if> statement & <script> element for google analytics wasn't in sync, causing a closing </script> element always being printed.
                        33440: Latest SpringSurf libs - performance and thread safety improvements.
                        33458: ThorTest-preReg (JMeter) test update
                        33460: Latest SpringSurf libs:
                        33466: THOR-1002: Updated enterprise overlay
                        33480: Latest SpringSurf libs - Surf performance improvements from Thor high load profiling in Jmeter/Jprofiler
                        33493: THOR-979: HTML5 upload support
                        33505: THOR-983: Preload images, JS and CSS for basic dashboards, document library and document details (from login page)
                        33518: THOR-979: HTML5 upload tweaks (upload doesn't start automatically when updating to give opportunity to set version type and add comment
                        33520: THOR-900: Modified header.get.html.ftl to ensure that user name is URL encoded (so that the "@" symbol in the user name becomes "%40" to ensure that timeout redirects work)
                        33527: THOR-1027: Header Alfresco image now links back to application context and about dialog is now linked from footer Alfresco image
                        33551: THOR-1007: Fixed upload hang on FireFox when uploading folders
                        33556: Merged BRANCHES/DEV/THOR1_INVITATION to BRANCHES/DEV/THOR1_SPRINTS:
                             33386: Branch for Invitation enhancements
                             33474: THOR-1006. Part 1. Services-level changes to support invitation enhancements.
                             33475: THOR-1006. Documentation on the desc.xml.
                             33476: THOR-1006. Commenting out some unfinished code to avoid any unwanted side-effects.
                                          Still to do: get the authentication check working and ensure no unexpected side-effects.
                             33483: THOR-1006. Completion of basic services changes to support 'accept invitation on alternate email'.
                                 Note! The authentication of the alternative email's password is NOT YET IMPLEMENTED due to a repo
                                       dependency. This MUST be implemented before merge to THOR1_SPRINTS. I'll create a new JIRA.
                             33511:  Fix for THOR-1017.
                             33525: THOR-1017. Slight improvement to desc.xml doc. HTTP status codes in response.
                             33529: Fixed THOR-980 & THOR-1024 & THOR-1025
                             33553: Fixed THOR-980 "F14: Allow users to login using existing email address if invite is sent to wrong email address and they already have an account"
                        33559: Initial feature branch
                        33669: First cut of THOR-994 and THOR-995 - remove internal and external user from network.
                        33685: Making remove-external-user.delete.desc.xml accept a domainName templateArg as well as the existing accountId.
                        33716: THOR-994 and THOR-995. Remove user from network.
                            Addressing some review comments from DaveC. Refactoring mostly.
                            Also added protection on RegistrationService.deleteUser() to prevent deletion of last NetworkAdmin in network.
                   33745: Adding NetworkdAdmin protection to the remove-external-user.delete webscript.
                   33752: Additional fixes for THOR-966 & THOR-969
                       * Improved messages/dialogs: demoting yourself, demoting last admin, removing last admin
                       * New User Button align layout fix as requested by Imran
                   33754: Documentation for the remove-external-user.delete webscript.
                   33756: THOR-410:
                       - unit test tidy
                   33766: Fix for signup link when already logged in as another user
                   33769: THOR-963 "F17: Network admin can add a one or more internal users to their network"
                   33770: Ensure a 403 is returned (rather than 500) when attempt is made to remove last NetworkAdmin in a tenant.
                   33774: Added padding on top of name for the Manage Users screen as requested by ux
                   33790: Promote/demote icons from Imran
              33815: Fix issue with removal of public email user from last invited network
              33817: THOR-1060: Activities Feed - perf tweak to halve the number of generated feed entries
              33819: THOR-1060: fix ActivitiesFeed subsystem (re-)name
              33820: Merged BRANCHES/DEV/THOR1_ACCOUNT_SETTINGS to BRANCHES/DEV/THOR1_SPRINTS:
                   33756: THOR-410:
                       - unit test tidy
                   33766: Fix for signup link when already logged in as another user
                   33769: THOR-963 "F17: Network admin can add a one or more internal users to their network"
                   33770: Ensure a 403 is returned (rather than 500) when attempt is made to remove last NetworkAdmin in a tenant.
                   33774: Added padding on top of name for the Manage Users screen as requested by ux
                   33790: Promote/demote icons from Imran
              33825: People REST API
           35934: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              33850: (RECORD ONLY) Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/THOR1_SPRINTS
                   33843: Fix for ALF-12775
              33866: Fix for THOR-1071
              33878: Fix the build
              33881: THOR-1069: Ensure that invitations can be accepted when a user is already logged in
              33882: Resolve THOR-1082: Possible to register email address with invalid domain (according to our tenant id rules)
              33883: Resolve THOR-1070: External user's avatar not displayed on the People Finder page.
              33884: Fix solrcore.properties
              33899: Resolve THOR-1077: Incorrect free space displayed when uploading files which exceeds quota
              33922: Resolve THOR-1079: Incorrect behavior of the button "Save and close" to "Send Document (s) For Review" tasks.
              33933: Resolve THOR-1088: Hide Account Id from Account Summary Screen
              33934: Resolve THOR-1089: Review Account Quota text on Account Summary Screen
              33942: Fix for THOR-1094. InvalidDomains FTL couldn't handle NULL notes field.
                  This shouldn't arise in the field as we don't put NULL-valued notes in the DB, but it might matter in some test envs.
              33949: Resolve THOR-1093: Incorrect notification title displayed when trying to invite user from another network from Manage Users page
              33953: Fix for THOR issue where public users should not be able to see Following and Following Me tabs in their own profile.
           35954: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              34140: THOR-1098: Prevent resources being requested twice (latest Surf libs)
              34153: Minor: THOR-5: MT-aware immutable singletons (spp/vti)
              34161: Prevent session timeout redirect problem resulting from clicking user link in activities feed
           35960: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              34224: Fix for THOR-789 - Mix of languages. The original bug was not never actually completely fixed, added some additional handling in SpringSurf WebScripts View to not override the locale from the original request parameters if it has already been set elsewhere.
              34301: (RECORD ONLY) Merged BRANCHES/DEV/V4.0-BUG-FIX to BRANCHES/DEV/THOR1_SPRINTS:
                   34279: NodeDAO: re-parent "lost & found" orphan child nodes (see ALF-12358 & ALF-13066 / SYS-301)
              34343: (RECORD ONLY) Merged BRANCHES/DEV/V4.0-BUG-FIX to BRANCHES/DEV/THOR1_SPRINTS:
                   34338: NodeDAO: re-parent "lost & found" orphan child nodes (see ALF-12358 & ALF-13066 / SYS-301) - test fix
                   34341: NodeDAO: re-parent "lost & found" orphan child nodes (see ALF-12358 & ALF-13066 / SYS-301) - test fix
              34388: THOR-953/SYS-294: add db.pool.evict.num.tests option (=> numTestsPerEvictionRun)
              34729: (RECORD ONLY) Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/THOR1_SPRINTS:
                   31867: Merged DEV/TEMPORARY to V3.4-BUG-FIX
                        31400: ALF-10764: PDF vs 1.5 cause crash jvm
                           - PDFRenderer library has been updated from 2009-09-27 to 0.9.1 version to support PDF documents of 1.5 version
                   32061: ALF-11376 Requesting PDFBox 1.6 be included in future service pack release.
                        Upgrading pdfbox,fontbox,jempbox from 1.5.0 to 1.6.0
              34731: THOR-1261: repo cluster fix (propertyUniqueContextCache)
              34734: THOR-1261: repo cluster fix (propertyUniqueContextCache)
              34435: Merged BRANCHES/DEV/V4.0-BUG-FIX to BRANCHES/DEV/THOR1_SPRINTS:
                   34434: ALF-13066: Fix for intermittent failure (testConcurrentLinkToDeletedNode)
           35961: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              34558: THOR-1216: tenant context mismatch (Solr tracking)
              34606: THOR-1216: tenant context mismatch
              34441: (RECORD ONLY) Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/THOR1_SPRINTS
                   33285: Fix for ALF-12336 - Share loses performance if noncachableObjectTypes are defined (page & component)
              34489: Fix to remove hazelcast subdir from build.xml for -exploded build - Thor specific merge issue.
              34722: Added hazelcast-cloud jar to allow AWS Hazelcast config options for Share clustering on Thor
              34848: THOR - specific version of ClusterAwarePathStoreObjectPersister.
              34931: Thor specific lookup of Share custom app context files to include the custom-slingshot-cloud-context and custom-slingshot-application-context only and in the order we want. Also updated Hazelcast example config to include AWS by default
           35962: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              34940: THOR-1288: Extra diagnostics for tracking leaked tenant context on thread:
              34187: Updated Surf libs (down grades duplicate dependency warnings to debug info)
              34410: THOR-1169: Latest Spring Surf libs to fix missing template CSS probs
              34418: (RECORD ONLY) Merged BRANCHES/DEV/BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/BRANCHES/DEV/THOR1_SPRINTS
                   34316: Method signature change to ConfigService fixes for RepoXMLConfigService
              34471: (RECORD ONLY) Merged BRANCHES/V4.0 to BRANCHES/DEV/THOR1_SPRINTS
                   34468: Fix for ALF-13172
                      Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/V4.0
                         34467: Fix for ALF-13237 - Change dashboard Layout is not working correctly, original layout is still used after saving changes.
              34891: Added missing jug-asl-2.0.0.jar to slingshot deps for Thor
           35963: Merged BRANCHES/DEV/THOR1_SPRINTS to BRANCHES/DEV/CLOUD1:
              35087: Minor: remove NOOP (introduced in r30776)
              35123: THOR-1288: update leak logger
              35124: THOR-1288: prod login failure when using cloud console for (bulk) signups
              35132: THOR-1288: build/test fix
              35133: THOR-1288: build/test fix
              35395: Resolve THOR-1340: Alberto.Vazquez@w.illi.am cannot sign up
           35964: Spring Surf library refresh
           35995: Fix merge issue
           35999: Fix merge issue
           36053: 1st pass at upgrading to latest Spring Surf
           36059: Fix CloudInvitationService tests for cloud1
   48191: Merged BRANCHES/DEV/CONV_V413 to BRANCHES/DEV/CONV_HEAD:
        47185: Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             Merged BRANCHES/DEV/CLOUD2 to BRANCHES/DEV/CONV_V413:
             MT - enable ability to get call context if overriding of beginCall/afterCall
             - eg. for cloud use-case (x-network switching)
   48192: Temporarily disable generation of installers, to speed up build


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@48255 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2013-03-18 09:52:08 +00:00

261 lines
8.7 KiB
Java

/*
* Copyright (C) 2005-2013 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.repo.module;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.admin.registry.RegistryKey;
import org.alfresco.repo.admin.registry.RegistryService;
import org.alfresco.repo.tenant.TenantAdminService;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.module.ModuleDetails;
import org.alfresco.service.cmr.module.ModuleService;
import org.alfresco.service.descriptor.DescriptorService;
import org.alfresco.util.VersionNumber;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.extensions.surf.util.I18NUtil;
/**
* This component controls the execution of
* {@link org.alfresco.repo.module.runtime.ModuleComponent module startup components}.
* <p/>
* All required startup executions are performed in a single transaction, so this
* component guarantees that the module initialization is consistent. Module components are
* executed in dependency order <i>only</i>. The version numbering is not to be used
* for ordering purposes.
* <p/>
* Afterwards, execution details are persisted in the
* {@link org.alfresco.repo.admin.registry.RegistryService service registry} to be used when the
* server starts up again.
*
* @author Roy Wetherall
* @author Derek Hulley
* @since 2.0
*/
public class ModuleServiceImpl implements ApplicationContextAware, ModuleService
{
/** Error messages **/
private static final String ERR_UNABLE_TO_OPEN_MODULE_PROPETIES = "module.err.unable_to_open_module_properties";
/** The classpath search path for module properties */
private static final String MODULE_CONFIG_SEARCH_ALL = "classpath*:alfresco/module/*/module.properties";
private static Log logger = LogFactory.getLog(ModuleServiceImpl.class);
private ServiceRegistry serviceRegistry;
private ModuleComponentHelper moduleComponentHelper;
/** A cache of module details by module ID */
private Map<String, ModuleDetails> moduleDetailsById;
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
/** Default constructor */
public ModuleServiceImpl()
{
moduleComponentHelper = new ModuleComponentHelper();
moduleComponentHelper.setModuleService(this);
}
public void setServiceRegistry(ServiceRegistry serviceRegistry)
{
this.serviceRegistry = serviceRegistry;
this.moduleComponentHelper.setServiceRegistry(this.serviceRegistry);
}
public void setDescriptorService(DescriptorService descriptorService)
{
this.moduleComponentHelper.setDescriptorService(descriptorService);
}
/**
* @param registryService the service used to persist component execution details.
*/
public void setRegistryService(RegistryService registryService)
{
this.moduleComponentHelper.setRegistryService(registryService);
}
public void setTenantAdminService(TenantAdminService tenantAdminService)
{
this.moduleComponentHelper.setTenantAdminService(tenantAdminService);
}
public void setApplyToTenants(boolean applyToTenants)
{
this.moduleComponentHelper.setApplyToTenants(applyToTenants);
}
/* (non-Javadoc)
* @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
*/
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
{
this.resolver = applicationContext;
}
/**
* @see ModuleComponentHelper#registerComponent(ModuleComponent)
*/
public void registerComponent(ModuleComponent component)
{
this.moduleComponentHelper.registerComponent(component);
}
/**
* {@inheritDoc}
*
* @see ModuleComponentHelper#startModules()
*/
public void startModules()
{
moduleComponentHelper.startModules();
}
/**
* {@inheritDoc}
*
* @see ModuleComponentHelper#shutdownModules()
*/
public void shutdownModules()
{
moduleComponentHelper.shutdownModules();
}
/**
* {@inheritDoc}
*/
public ModuleDetails getModule(String moduleId)
{
cacheModuleDetails();
// Get the details of the specific module
ModuleDetails details = moduleDetailsById.get(moduleId);
// Done
return details;
}
/**
* {@inheritDoc}
*/
public List<ModuleDetails> getAllModules()
{
cacheModuleDetails();
Collection<ModuleDetails> moduleDetails = moduleDetailsById.values();
// Make a copy to avoid modification of cached data by clients (and to satisfy API)
List<ModuleDetails> result = new ArrayList<ModuleDetails>(moduleDetails);
// Done
return result;
}
/**
* {@inheritDoc}
*/
public List<ModuleDetails> getMissingModules()
{
cacheModuleDetails();
// Get the IDs of all modules from the registry
Collection<String> moduleIds = moduleComponentHelper.getRegistryModuleIDs();
List<ModuleDetails> result = new ArrayList<ModuleDetails>();
//Check for missing modules
for (String moduleId : moduleIds)
{
ModuleDetails moduleDetails = getModule(moduleId);
if (moduleDetails == null)
{
// Get the specifics of the missing module and add them to the list.
VersionNumber currentVersion = moduleComponentHelper.getVersion(moduleId);
ModuleDetails newModuleDetails = new ModuleDetailsImpl(moduleId, currentVersion, "", "");
result.add(newModuleDetails);
}
}
return result;
}
/**
* Ensure that the {@link #moduleDetailsById module details} are populated.
* <p/>
* TODO: We will have to avoid caching or add context listening if we support reloading
* of beans one day.
*/
private synchronized void cacheModuleDetails()
{
if (moduleDetailsById != null)
{
// There is nothing to do
return;
}
try
{
moduleDetailsById = new HashMap<String, ModuleDetails>(13);
Resource[] resources = resolver.getResources(MODULE_CONFIG_SEARCH_ALL);
// Read each resource
for (Resource resource : resources)
{
try
{
InputStream is = new BufferedInputStream(resource.getInputStream());
Properties properties = new Properties();
properties.load(is);
ModuleDetails details = new ModuleDetailsImpl(properties);
moduleDetailsById.put(details.getId(), details);
}
catch (Throwable e)
{
throw AlfrescoRuntimeException.create(e, ERR_UNABLE_TO_OPEN_MODULE_PROPETIES, resource);
}
}
}
catch (IOException e)
{
throw new AlfrescoRuntimeException("Failed to retrieve module information", e);
}
// Done
if (logger.isDebugEnabled())
{
logger.debug(
"Found " + moduleDetailsById.size() + " modules: \n" +
" Modules: " + moduleDetailsById);
}
}
}