Also created a OneToManyMap and a OneToManyBiMap to help mock up the NamespaceService.
*** IMPORTANT!!! ***
The test requires a new database schema. The schema has the same name as the original schema but has _test after it, i.e. ${db.name}_test
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15746 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
13853: Merged V3.0 to V3.1
13008: Merged V2.2 to V3.0
12824: (record only) Change admin access to the web project staging store to be read-only in the virtualization view - ETWOTWO-933
13031: (Record only) AMP fix for ETWOTWO-968: Space rules are not run when saving from MS Word
13040: Merged V2.2 to V3.0
12824: (record-only) - already done via r13005 (ETWOTWO-933)
13145: Merged V2.2 to V3.0:
13089: (record-only) Fix "Read-Write transaction started within read-only transaction" exception. ETWOTWO-1055.
13091: (record-only) Fix for NFS server "Read-Write transaction started within read-only transaction" exception. ETWOTWO-1054.
13508: ETHREEOH-1548 - allow config to reset (even if null/cache)
13514: ETHREEOH-1548 (follow-on fix) - to allow config to reset (even if null/cache) and also reduce 5 caches to 1
13848: Merged V2.2 to V3.0
13188: *RECORD ONLY* Using correct ooo startup context - does not work for *nix. Fixed in 3.0sp1
13212: *RECORD ONLY* AMP for ETWOTWO-984
13342: *RECORD ONLY* Merge info stuff
13435: Merged V2.1 to V2.2
12307: Merged DEV/V2.1SP7 to 2.1
11927: ETWOONE-396
12112: ETWOONE-396
13442: *RECORD ONLY* Updated version to 2.2.4dev
13468: *RECORD ONLY* Removed svn:mergeinfo crud
13470: I18NUtil doesn't cause NPE if message key doesn't exist
13471: Fixed ETWOTWO-1133: Incorrect CRC32 Values for non-ASCII names
13475: Test fix: I18NUtil.getMessage() no longer returns null, leading to NPEs if message bundle is missing
13476: Reverted back to null return values. Will save for fixing on HEAD.
13749: Fixed ALFCOM-2655: MLTranslationInterceptor doesn't handle getType method
13803: ETWOTWO-710
13819: *RECORD ONLY* ACT-6420 - Office 2003 "Install for all users" - DO NOT MERGE
13827: ETWOTWO-1172 - authority exists now checks nodeRef result
___________________________________________________________________
Modified: svn:mergeinfo
Merged /alfresco/BRANCHES/V3.0:r12824,13008,13031,13040,13089,13091,13145,13848
Merged /alfresco/BRANCHES/V2.2:r12824,13188,13212,13342,13442,13468,13470-13471,13475-13476,13749,13803,13827
Merged /alfresco/BRANCHES/V3.1:r13853
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14763 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
14587: Added new node service method getNodesWithoutParentAssocsOfType to public-services-security-context.xml (or at least my best guess at it!)
14586: Use US spelling of synchronization in filenames for consistency
14585: Lower the default user registry sync frequency to daily instead of hourly. Now users and groups are pulled over incrementally on login of missing users.
14583: Unit test for ChainingUserRegistrySynchronizer
14571: Migration patch for existing authorities previously held in users store
- Uses AuthorityService to recreate authorities in spaces store with new structure
14555: Authority service changes for LDAP sync improvements
- Moved sys:authorities container to spaces store
- All authorities now stored directly under sys:authorities
- Authorities can now be looked up directly by node service
- Secondary child associations used to model group relationships
- 'Root' groups for UI navigation determined dynamically by node service query
- cm:member association used to relate both authority containers and persons to other authorities
- New cm:inZone association relates persons and authority containers to synchronization 'zones' stored under sys:zones
- Look up of authority zone and all authorities in a zone to enable multi-zone LDAP sync
14524: Dev branch for finishing LDAP zones and upgrade impact
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14588 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Some collapsing of common code in Constraint hierarchy.
- Added aspect 'cm:storeSelector' with property 'cm:storeName'.
- Defined a new, unused content store 'storeSelectorContentStore' (see content-services-context.xml).
If this store is used, then setting the 'cm:storeName' property will force content to be stored in one
of the named stores. A LIST constraint is indirectly enforced for the 'cm:storeName' property.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14329 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Additional root scope java objects can now be configured in for use by plain web-tier WebScripts, SURF components and SURF templates.
- Initial config files provided for SURF web-framework - script/template services context
- Also the first steps towards pluggable script/template processing engines for WebScripts
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14076 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- An authentication chain of size 1 configured by default
- DefaultChildApplicationContextManager supports dynamic configuration of the authentication chain via Spring or JMX. Any number of instances of any type allowed in chain.
- SubsystemChainingAuthenticationComponent and SubsystemChainingAuthenticationService iterate across configured chain for Authentication
- SSO (NTLM / Kerberos) and CIFS authentication independently activatable for any component in chain (where supported).
- SubsystemChainingProxyFactory used to proxy directly to first active CIFS authenticator or SSO filter in the chain
- CIFS server knows not to bother starting if authentication chain doesn't have an active CIFS authenticator (e.g. LDAP only)
- Rationalization of subsystem configuration folder structure and JMX object naming
- Classpath based extension mechanism for community edition - alfresco/extension/subsystems/<category>/<typeName>/<id>/*.properties in classpath can be used to configure specific subsystem instances
- Simplification of JMX infrastructure. No longer Spring bean definition based, thus allowing dynamic creation/registration of new instances at runtime.
- New AuthenticationChainTest unit test
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14030 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Provides transaction-aware locking
- Post-transaction cleanup is automatically done
- Retrying for lock acquisition is handled internally as well
- Downgraded the lock concurrency tests for the build machine (maybe 50 threads was too much)
- Deadlock tests added for the high-level locking
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13968 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Fallout:
1. Policy handling for 'onCopy' has been changed to 'getCopyCallback'
2. All existing policy usage was refactored to control behaviour more closely
3. The default child association behaviour has changed:
3.1 Types and aspects control their own child association behaviour
3.2 cm:folder recurses into primary children, but merely copies the secondary association
3.3 cm:rule recurses into primary children
3.4 unless behaviour is defined for a child association, there is no recursion or copying
4. Node association behavior has changed
4.1 There is no copying of node associations. Each type and aspect must handle this by
recording nodes and fixing up the required associations in the onCopyComplete.
4.2 If there is a requirement, this can be added to the callback later
See 'org.alfresco.repo.copy.AbstractCopyBehaviourCallback' and derived classes for examples.
Areas to test with particular attention:
1. Normal copy behaviour
2. Copy of documents with discussions
3. Check-in check-out
4. Check-in, check-out of documents where a discussion was added to working copy
5. Copies of documents with thumbnails
6. Copies of documents with rules
7. Copying of hierarchies that contain rules to copy to another location within the hierarchy
8. Copying into folders where named children already exist
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13915 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
13625: Fix ETHREEOH-1644
13634: Merged V2.2 to V3.1
13632: Preparation for fix of ETHREEOH-1663: ML Document Editions Broken by Upgrade to 3.1
13636: Fixed ETHREEOH-1663: ML Document Editions Broken by Upgrade to 3.1
13638: Fixed ETHREEOH-1665: Copy/pasting a Specialised Folder changes the assoc qname
13639: Fixed ETHREEOH-1663: ML Document Editions Broken by Upgrade to 3.1
13640: Fixed ETHREEOH-1672: Manage Multilingual Content JSP breaks when viewing all Related Content
13641: Fixed ETHREEOH-1657: Manage Multilingual Content fails with NPE when document was previously versionable
13774: Fix for ETHREEOH-1629
13775: Fix for ETHREEOH-1645
13784: SchemaBootstrap now auto-generates a mostly-canonical schema description on new DB and on upgrades
13804: Added option to finish schema bootstrap, dump schema structure and exit
13807: Further pretty formatting of schema dump
___________________________________________________________________
Modified: svn:mergeinfo
Merged /alfresco/BRANCHES/V2.2:r13632
Merged /alfresco/BRANCHES/V3.1:r13625,13634,13636,13638-13641,13774-13775,13784,13804,13807
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13912 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- add CMIS enum for Allowable Actions
- introduce Action Evaluator, with Permission based and fixed boolean implementations
- registry of available action evaluators based on CMIS type
- CMIS Type Definition has getter for applicable action evaluators
- couple of CMIS actions registered
TODO:
- register all actions as defined in spec
- serialize in AtomPub binding
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13816 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- remove notion of generic property accessor; consolidated on named property accessor
- build property accessors at time of CMIS Dictionary creation (cached, removes continuous creation of small objects); hooked into CMIS Property Definition
- remove property service
- lookup of property accessor quicker and constrained to properties in CMIS Dictionary
- fixup fallout in CMIS AtomPub, Web Services and Query
CMIS AtomPub, Web Services and Query tests pass.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13806 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- further simplification of CMISDictionaryService and fixup fallout
- added logging
- consolidate & fix property definition handling (only one definition per property)
- include support for aspect properties
- fix property.isInherited
- open up the door for types outside of CMIS doc, folder, rel & policy
Dictionary Service
- add isOverride() to PropertyDefinition
Invite Workflows
- ensure they create their own namespace for new types/props
- NOTE: the previous way uses a hole in the DictinaryService which has been there
unnoticed for over 4 years, till now. At some point, the hole will be filled in.
Tests pass for CMIS REST / Web Services and Query.
Tests pass for Invitation Service.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13786 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- follows pattern of Alfresco Dictionary
- simplified and much reduced DictionaryService interface
- model now compiled and cached (no more lots of small continuous object creations)
- walk model via simple getters
- validated (no dangling references)
- fix up property inheritance
- fix up sub-types for all types
- implements strict mode only for now (i.e. doesn't go outside of CMIS doc, folder, rel and policy)
- abstract helper for building other CMIS dictionaries (e.g. mapping all types in Alfresco)
Alfresco Dictionary:
- add event for initialized or re-initialized
Fix up usage in CMIS REST, Web Services and query. Tests pass.
REST support for custom sub-types and properties now reliable as constrained by validated CMIS model.
TODO:
- hook property value accessors into CMIS Dictionary
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13768 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
13659: Fix NTLMAuthenticationFilter to call super.afterPropertiesSet()
13658: MOB-424: Utility to Dump JMX Data
- new enterprise distributable jmx-dumper.jar
- command line invocation via "java -jar jmx-dumper.jar"
- admin web access via http://localhost:8080/alfresco/faces/jsp/admin/jmx-dumper.jsp
13575: Preconfigured authentication stacks for alfresco, LDAP, Kerberos and NTLM. TODO: file server config.
13493: Initial work to enable selection, configuration, testing and hot-swapping of different authentication subsystems via JMX or admin UI.
13309: Changes to allow datasource and property configuration via JNDI
- Move AVM catalina .jars into 3rd-party/lib/virtual-tomcat so that they don't get automatically included in the .war file and hence stop JNDI lookups from working
- Allow JNDI lookup of datasource – use standard app server mechanisms for managing it but still fall back to 'normal' one
- Allow properties to be overridden by JNDI env-entries as well as system properties. Including hibernate dialect ones. Web.xml can then declare required env-entries and these can be defined on deployment.
- Rewire iBatis so that no config file edits are necessary when dialect is changed
- Use proxy around datasource so that auto-commit is always activated for iBatis
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13668 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261