diff --git a/config/alfresco/authentication-services-context.xml b/config/alfresco/authentication-services-context.xml
index b6e104e713..9a2dd30f0b 100644
--- a/config/alfresco/authentication-services-context.xml
+++ b/config/alfresco/authentication-services-context.xml
@@ -278,6 +278,7 @@
+
@@ -314,7 +315,7 @@
- ${server.transaction.allow-writes}
+ ${create.missing.people}
diff --git a/config/alfresco/authority-services-context.xml b/config/alfresco/authority-services-context.xml
index 23ccb5d757..bc0c6e4a60 100644
--- a/config/alfresco/authority-services-context.xml
+++ b/config/alfresco/authority-services-context.xml
@@ -88,6 +88,9 @@
+
+
+
diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml
index daf493795f..a58806787c 100644
--- a/config/alfresco/bootstrap-context.xml
+++ b/config/alfresco/bootstrap-context.xml
@@ -793,10 +793,10 @@
-
${spaces.store}
/${spaces.company_home.childname}
+
diff --git a/config/alfresco/bootstrap/categoriesEmptyRoot.xml b/config/alfresco/bootstrap/categoriesEmptyRoot.xml
new file mode 100644
index 0000000000..b7bbabcf28
--- /dev/null
+++ b/config/alfresco/bootstrap/categoriesEmptyRoot.xml
@@ -0,0 +1,15 @@
+
+
+
+ categories
+
+
+ General
+
+
+
+
+
+
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webScriptsNoSamples.xml b/config/alfresco/bootstrap/webScriptsNoSamples.xml
new file mode 100644
index 0000000000..f9550b2d75
--- /dev/null
+++ b/config/alfresco/bootstrap/webScriptsNoSamples.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ ${webscripts.url_addressable_web_services}
+ space-icon-default
+ ${webscripts.url_addressable_web_services}
+ ${webscripts.web_scripts}
+
+
+
+
+
+
+
+
+
+
+ true
+ ${webscripts.what_are_web_scripts}
+ contentUrl=classpath:alfresco/bootstrap/webscripts/readme.html|mimetype=text/html|size=|encoding=UTF-8|locale=en_US_
+
+
+ readme.html
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/config/alfresco/cache-context.xml b/config/alfresco/cache-context.xml
index d53fb654b4..25d03b122a 100644
--- a/config/alfresco/cache-context.xml
+++ b/config/alfresco/cache-context.xml
@@ -432,7 +432,7 @@
-
+
@@ -457,8 +457,19 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config/alfresco/core-services-context.xml b/config/alfresco/core-services-context.xml
index de23c78b72..9c0da6bbcb 100644
--- a/config/alfresco/core-services-context.xml
+++ b/config/alfresco/core-services-context.xml
@@ -238,10 +238,12 @@
-
-
+
+
+
+
-
+
${db.driver}
diff --git a/config/alfresco/import-export-context.xml b/config/alfresco/import-export-context.xml
index ca88cd2fdd..9aa2f29eb8 100644
--- a/config/alfresco/import-export-context.xml
+++ b/config/alfresco/import-export-context.xml
@@ -40,9 +40,6 @@
-
-
-
@@ -93,9 +90,6 @@
-
-
-
diff --git a/config/alfresco/mt/mt-base-context.xml b/config/alfresco/mt/mt-base-context.xml
index 217a420718..562a9fb310 100644
--- a/config/alfresco/mt/mt-base-context.xml
+++ b/config/alfresco/mt/mt-base-context.xml
@@ -33,6 +33,14 @@
+
+
+
+
diff --git a/config/alfresco/repository.properties b/config/alfresco/repository.properties
index f721a960d3..5d1be6df72 100644
--- a/config/alfresco/repository.properties
+++ b/config/alfresco/repository.properties
@@ -513,6 +513,13 @@ system.usages.updateBatchSize=50
# Repository endpoint - used by Activity Service
repo.remote.endpoint=/service
+# Some authentication mechanisms may need to create people
+# in the repository on demand. This enables that feature.
+# If disabled an error will be generated for missing
+# people. If enabled then a person will be created and
+# persisted.
+create.missing.people=${server.transaction.allow-writes}
+
# Create home folders as people are created (true) or create them lazily (false)
home.folder.creation.eager=true
@@ -979,6 +986,7 @@ cache.immutableSingletonSharedCache.maxItems=12000
cache.remoteAlfrescoTicketService.ticketsCache.maxItems=1000
cache.contentDiskDriver.fileInfoCache.maxItems=1000
cache.globalConfigSharedCache.maxItems=1000
+cache.siteNodeRefSharedCache.maxItems=5000
#
# Download Service Limits, in bytes
diff --git a/config/alfresco/site-services-context.xml b/config/alfresco/site-services-context.xml
index 5409b4f5f1..c5d0751f00 100644
--- a/config/alfresco/site-services-context.xml
+++ b/config/alfresco/site-services-context.xml
@@ -137,18 +137,16 @@
-
+
-
./${spaces.company_home.childname}/st:sites
-
@@ -156,6 +154,9 @@
+
+
+
diff --git a/config/alfresco/tx-cache-context.xml b/config/alfresco/tx-cache-context.xml
index 0a75fedd9c..1b3e3bedf9 100644
--- a/config/alfresco/tx-cache-context.xml
+++ b/config/alfresco/tx-cache-context.xml
@@ -563,7 +563,7 @@
org.alfresco.tenantsTransactionalCache
-
+
@@ -583,4 +583,19 @@
+
+
+
+
+
+
+
+
+ org.alfresco.cache.siteNodeRefTransactionalCache
+
+
+
+
+
+
diff --git a/source/java/org/alfresco/cmis/dictionary/CMISAbstractDictionaryService.java b/source/java/org/alfresco/cmis/dictionary/CMISAbstractDictionaryService.java
index a17eeb7455..24bd8be62d 100644
--- a/source/java/org/alfresco/cmis/dictionary/CMISAbstractDictionaryService.java
+++ b/source/java/org/alfresco/cmis/dictionary/CMISAbstractDictionaryService.java
@@ -536,7 +536,16 @@ public abstract class CMISAbstractDictionaryService extends AbstractLifecycleBea
protected void onBootstrap(ApplicationEvent event)
{
afterDictionaryInit();
- dictionaryDAO.register(this);
+
+ // TODO revisit (for KS and/or 1.1)
+ if (dictionaryDAO != null)
+ {
+ dictionaryDAO.register(this);
+ }
+ else
+ {
+ logger.error("DictionaryDAO is null - hence CMIS Dictionary not registered for updates");
+ }
}
/*
diff --git a/source/java/org/alfresco/cmis/dictionary/CMISStrictDictionaryService.java b/source/java/org/alfresco/cmis/dictionary/CMISStrictDictionaryService.java
index 5f3daa08b9..d59a39c60b 100644
--- a/source/java/org/alfresco/cmis/dictionary/CMISStrictDictionaryService.java
+++ b/source/java/org/alfresco/cmis/dictionary/CMISStrictDictionaryService.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
+ * Copyright (C) 2005-2013 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -106,6 +106,17 @@ public class CMISStrictDictionaryService extends CMISAbstractDictionaryService
{
CMISTypeId typeId = cmisMapping.getCmisTypeId(CMISScope.RELATIONSHIP, CMISMapping.RELATIONSHIP_QNAME);
ClassDefinition classDef = dictionaryService.getClass(cmisMapping.getCmisType(typeId.getQName()));
+
+ // from Thor
+ if (classDef == null)
+ {
+ if (classQNames.size() != 0)
+ {
+ logger.warn("Unexpected - no class for "+cmisMapping.getCmisType(typeId.getQName())+" - cannot create assocDefs for: "+classQNames);
+ }
+ return;
+ }
+
CMISAbstractTypeDefinition objectTypeDef = new CMISRelationshipTypeDefinition(cmisMapping, typeId, dictionaryService, classDef, null);
registry.registerTypeDefinition(objectTypeDef);
diff --git a/source/java/org/alfresco/repo/activities/feed/FeedNotifierJob.java b/source/java/org/alfresco/repo/activities/feed/FeedNotifierJob.java
index af79b56791..c3e2018c61 100644
--- a/source/java/org/alfresco/repo/activities/feed/FeedNotifierJob.java
+++ b/source/java/org/alfresco/repo/activities/feed/FeedNotifierJob.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
+ * Copyright (C) 2005-2013 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -24,6 +24,8 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.repo.tenant.Tenant;
import org.alfresco.repo.tenant.TenantAdminService;
+import org.alfresco.repo.tenant.TenantUtil;
+import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
@@ -74,15 +76,14 @@ public class FeedNotifierJob implements Job
List tenants = tenantAdminService.getAllTenants();
for (Tenant tenant : tenants)
{
- String tenantDomain = tenant.getTenantDomain();
- AuthenticationUtil.runAs(new RunAsWork