diff --git a/source/java/org/alfresco/repo/domain/tenant/TenantAdminDAO.java b/source/java/org/alfresco/repo/domain/tenant/TenantAdminDAO.java index ee65d6bc7f..3358aea6cc 100644 --- a/source/java/org/alfresco/repo/domain/tenant/TenantAdminDAO.java +++ b/source/java/org/alfresco/repo/domain/tenant/TenantAdminDAO.java @@ -31,51 +31,33 @@ public interface TenantAdminDAO { /** * Create tenant - note: tenant domain must be unique - * - * @param tenantEntity - * @return */ TenantEntity createTenant(TenantEntity tenantEntity); /** * Get tenant - * - * @param tenantEntity - * @return */ TenantEntity getTenant(String tenantDomain); /** * List tenants - * - * TODO add filter(s) - * - * @param tenantEntity - * @return */ List listTenants(); /** * Get tenant for update - * - * @param tenantEntity - * @return */ TenantUpdateEntity getTenantForUpdate(String tenantDomain); /** * Update tenant - * + *

* Note: tenant domain cannot be changed - * - * @param tenantUpdateEntity */ void updateTenant(TenantUpdateEntity tenantUpdateEntity); /** * Delete tenant - * - * @param tenantEntity */ void deleteTenant(String tenantDomain); } diff --git a/source/java/org/alfresco/repo/tenant/MultiTAdminServiceImpl.java b/source/java/org/alfresco/repo/tenant/MultiTAdminServiceImpl.java index fd9af833a4..61ff1e66a8 100644 --- a/source/java/org/alfresco/repo/tenant/MultiTAdminServiceImpl.java +++ b/source/java/org/alfresco/repo/tenant/MultiTAdminServiceImpl.java @@ -243,6 +243,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo private static final String WARN_MSG = "system.mt.warn.upgrade_mt_admin_context"; + @Override public void afterPropertiesSet() throws Exception { // for upgrade/backwards compatibility with 3.0.x (mt-admin-context.xml) @@ -264,11 +265,13 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo PropertyCheck.mandatory(this, "moduleService", moduleService); } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.ctx = applicationContext; } + @Override public void startTenants() { AuthenticationUtil.setMtEnabled(true); @@ -361,6 +364,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void stopTenants() { tenantDeployers.clear(); @@ -368,25 +372,19 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo AuthenticationUtil.setMtEnabled(false); } - /** - * @see TenantAdminService.createTenant() - */ + @Override public void createTenant(final String tenantDomain, final char[] tenantAdminRawPassword) { createTenant(tenantDomain, tenantAdminRawPassword, null); } - /** - * @see TenantAdminService.createTenant() - */ + @Override public void createTenant(final String tenantDomain, final char[] tenantAdminRawPassword, String contentRoot) { createTenant(tenantDomain, tenantAdminRawPassword, contentRoot, null); } - /** - * @see TenantAdminService.createTenant() - */ + @Override public void createTenant(final String tenantDomainIn, final char[] tenantAdminRawPassword, String contentRootPath, final String dbUrl) { ParameterCheck.mandatory("tenantAdminRawPassword", tenantAdminRawPassword); @@ -520,6 +518,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo /** * Export tenant - equivalent to the tenant admin running a 'complete repo' export from the Web Client Admin */ + @Override public void exportTenant(String tenantDomainIn, final File directoryDestination) { final String tenantDomain = getTenantDomain(tenantDomainIn); @@ -542,6 +541,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo /** * Create tenant by restoring from a complete repository export. This is equivalent to a bootstrap import using restore-context.xml. */ + @Override public void importTenant(final String tenantDomainIn, final File directorySource, String contentRoot) { final String tenantDomain = getTenantDomain(tenantDomainIn); @@ -602,6 +602,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public boolean existsTenant(String tenantDomain) { // Check that all the passed values are not null @@ -626,6 +627,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void enableTenant(String tenantDomain) { tenantDomain = getTenantDomain(tenantDomain); @@ -647,7 +649,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo notifyAfterEnableTenant(tenantDomain); } - protected void notifyAfterEnableTenant(String tenantDomain) + private void notifyAfterEnableTenant(String tenantDomain) { // Check that all the passed values are not null ParameterCheck.mandatory("tenantDomain", tenantDomain); @@ -671,6 +673,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void disableTenant(String tenantDomain) { tenantDomain = getTenantDomain(tenantDomain); @@ -693,7 +696,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo tenantAdminDAO.updateTenant(tenantUpdateEntity); } - protected void notifyBeforeDisableTenant(String tenantDomain) + private void notifyBeforeDisableTenant(String tenantDomain) { tenantDomain = getTenantDomain(tenantDomain); @@ -716,6 +719,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public boolean isEnabledTenant(String tenantDomain) { // Check that all the passed values are not null @@ -732,20 +736,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo return false; } - protected String getRootContentStoreDir(String tenantDomain) - { - // Check that all the passed values are not null - ParameterCheck.mandatory("tenantDomain", tenantDomain); - - Tenant tenant = getTenantAttributes(tenantDomain); - if (tenant != null) - { - return tenant.getRootContentStoreDir(); - } - - return null; - } - + @Override public Tenant getTenant(String tenantDomain) { tenantDomain = getTenantDomain(tenantDomain); @@ -757,9 +748,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo return getTenantAttributes(tenantDomain); } - /** - * @see TenantAdminService.deleteTenant() - */ + @Override public void deleteTenant(String tenantDomain) { tenantDomain = getTenantDomain(tenantDomain); @@ -850,10 +839,16 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } - /** - * @see TenantAdminService.getAllTenants() - */ + @Override + @Deprecated public List getAllTenants() + { + return getTenants(false); + } + + @Override + @Deprecated + public List getTenants(boolean enabledOnly) { List tenantEntities = tenantAdminDAO.listTenants(); List tenants = new ArrayList(tenantEntities.size()); @@ -880,7 +875,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo bootstrapSystemTenantStore(systemImporterBootstrap, tenantDomain); } - protected void bootstrapSystemTenantStore(ImporterBootstrap systemImporterBootstrap, String tenantDomain) + private void bootstrapSystemTenantStore(ImporterBootstrap systemImporterBootstrap, String tenantDomain) { // Bootstrap Tenant-Specific System Store StoreRef bootstrapStoreRef = systemImporterBootstrap.getStoreRef(); @@ -919,7 +914,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo bootstrapUserTenantStore(userImporterBootstrap, tenantDomain, null); } - protected void bootstrapUserTenantStore(ImporterBootstrap userImporterBootstrap, String tenantDomain, char[] tenantAdminRawPassword) + private void bootstrapUserTenantStore(ImporterBootstrap userImporterBootstrap, String tenantDomain, char[] tenantAdminRawPassword) { // Bootstrap Tenant-Specific User Store StoreRef bootstrapStoreRef = userImporterBootstrap.getStoreRef(); @@ -960,7 +955,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo bootstrapVersionTenantStore(versionImporterBootstrap, tenantDomain); } - protected void bootstrapVersionTenantStore(ImporterBootstrap versionImporterBootstrap, String tenantDomain) + private void bootstrapVersionTenantStore(ImporterBootstrap versionImporterBootstrap, String tenantDomain) { // Bootstrap Tenant-Specific Version Store StoreRef bootstrapStoreRef = versionImporterBootstrap.getStoreRef(); @@ -991,7 +986,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo bootstrapSpacesArchiveTenantStore(spacesArchiveImporterBootstrap, tenantDomain); } - protected void bootstrapSpacesArchiveTenantStore(ImporterBootstrap spacesArchiveImporterBootstrap, String tenantDomain) + private void bootstrapSpacesArchiveTenantStore(ImporterBootstrap spacesArchiveImporterBootstrap, String tenantDomain) { // Bootstrap Tenant-Specific Spaces Archive Store StoreRef bootstrapStoreRef = spacesArchiveImporterBootstrap.getStoreRef(); @@ -1046,7 +1041,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo bootstrapSpacesTenantStore(spacesImporterBootstrap, tenantDomain); } - protected void bootstrapSpacesTenantStore(ImporterBootstrap spacesImporterBootstrap, String tenantDomain) + private void bootstrapSpacesTenantStore(ImporterBootstrap spacesImporterBootstrap, String tenantDomain) { // Bootstrap Tenant-Specific Spaces Store StoreRef bootstrapStoreRef = spacesImporterBootstrap.getStoreRef(); @@ -1072,6 +1067,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void deployTenants(final TenantDeployer deployer, Log logger) { if (deployer == null) @@ -1139,6 +1135,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void undeployTenants(final TenantDeployer deployer, Log logger) { if (deployer == null) @@ -1210,12 +1207,13 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void register(TenantDeployer deployer) { register(deployer, -1); } - protected void register(TenantDeployer deployer, int position) + private void register(TenantDeployer deployer, int position) { if (deployer == null) { @@ -1235,6 +1233,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void unregister(TenantDeployer deployer) { if (deployer == null) @@ -1248,6 +1247,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } + @Override public void register(WorkflowDeployer workflowDeployer) { if (workflowDeployer == null) @@ -1261,7 +1261,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo } } - protected void initTenant(String tenantDomain, String contentRoot, String dbUrl) + private void initTenant(String tenantDomain, String contentRoot, String dbUrl) { validateTenantName(tenantDomain); @@ -1298,7 +1298,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo tenantAdminDAO.createTenant(tenantEntity); } - protected void validateTenantName(String tenantDomain) + private void validateTenantName(String tenantDomain) { ParameterCheck.mandatory("tenantDomain", tenantDomain); @@ -1334,41 +1334,40 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo // tenant deployer/user services delegated to tenant service + @Override public boolean isEnabled() { return tenantService.isEnabled(); } + @Override public String getCurrentUserDomain() { return tenantService.getCurrentUserDomain(); } + @Override public String getUserDomain(String username) { return tenantService.getUserDomain(username); } + @Override public String getBaseNameUser(String username) { return tenantService.getBaseNameUser(username); } + @Override public String getDomainUser(String baseUsername, String tenantDomain) { tenantDomain = getTenantDomain(tenantDomain); return tenantService.getDomainUser(baseUsername, tenantDomain); } - public String getDomain(String name) - { - name = getTenantDomain(name); - return tenantService.getDomain(name); - } - // local helpers - public String getBaseAdminUser() + private String getBaseAdminUser() { // default for backwards compatibility only - eg. upgrade of existing MT instance (mt-admin-context.xml.sample) if (baseAdminUsername != null) @@ -1378,7 +1377,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo return getBaseNameUser(AuthenticationUtil.getAdminUserName()); } - protected String getSystemUser(String tenantDomain) + private String getSystemUser(String tenantDomain) { return tenantService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantDomain); } @@ -1394,7 +1393,7 @@ public class MultiTAdminServiceImpl implements TenantAdminService, ApplicationCo return authenticationContext.getGuestUserName(tenantDomain); } - protected String getTenantDomain(String tenantDomain) + private String getTenantDomain(String tenantDomain) { ParameterCheck.mandatory("tenantDomain", tenantDomain); return tenantDomain.toLowerCase(I18NUtil.getLocale()); diff --git a/source/java/org/alfresco/repo/tenant/SingleTAdminServiceImpl.java b/source/java/org/alfresco/repo/tenant/SingleTAdminServiceImpl.java index 20c9ee22ae..9ef5ca2365 100644 --- a/source/java/org/alfresco/repo/tenant/SingleTAdminServiceImpl.java +++ b/source/java/org/alfresco/repo/tenant/SingleTAdminServiceImpl.java @@ -1,5 +1,5 @@ -/* - * Copyright (C) 2005-2013 Alfresco Software Limited. +/* + * Copyright (C) 2005-2013 Alfresco Software Limited. * * This file is part of Alfresco * @@ -14,217 +14,240 @@ * 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 . - */ -package org.alfresco.repo.tenant; - -import java.io.File; -import java.util.Collections; -import java.util.List; - -import org.alfresco.repo.workflow.WorkflowDeployer; -import org.apache.commons.logging.Log; - -/** - * Empty Tenant Deployer Service implementation (for Single-Tenant / Single-Instance) - */ - -public class SingleTAdminServiceImpl implements TenantAdminService -{ - /** - * NO-OP - */ - public void startTenants() - { - } - - /** - * NO-OP - */ - public void stopTenants() - { - } - - /** - * @return Returns false always - */ - public boolean isEnabled() - { - return false; - } - - /** - * NO-OP - */ - public void initialiseTenants() - { - } - - /** - * NO-OP - */ - public void deployTenants(final TenantDeployer deployer, Log logger) - { - } - - /** - * NO-OP - */ - public void undeployTenants(final TenantDeployer deployer, Log logger) - { - } - - /** - * NO-OP - */ - public void register(TenantDeployer tenantDeployer) - { - } - - /** - * NO-OP - */ - public void unregister(TenantDeployer tenantDeployer) - { - } - - /** - * NO-OP - */ - public void register(WorkflowDeployer workflowDeployer) - { - } - - /** - * @return Returns an empty list always - */ - public List getAllTenants() - { - return Collections.emptyList(); - } - - /** - * @return Returns {@link TenantService#DEFAULT_DOMAIN} always - */ - public String getCurrentUserDomain() - { - return TenantService.DEFAULT_DOMAIN; - } - - /** - * @return Returns {@link TenantService#DEFAULT_DOMAIN} always - */ - public String getUserDomain(String username) - { - return TenantService.DEFAULT_DOMAIN; - } - - /** - * @return Returns the given username always - */ - public String getBaseNameUser(String username) - { - return username; - } - - /** - * @return Returns the given baseUserName always - */ - public String getDomainUser(String baseUsername, String tenantDomain) - { - return baseUsername; - } - - /** - * @return Returns {@link TenantService#DEFAULT_DOMAIN} always - */ - public String getDomain(String name) - { - return TenantService.DEFAULT_DOMAIN; - } - - /** - * @throws UnsupportedOperationException always - */ - public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot, String dbUrl) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public void createTenant(String tenantDomain, char[] adminRawPassword) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public void deleteTenant(String tenantDomain) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public void disableTenant(String tenantDomain) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public void enableTenant(String tenantDomain) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public boolean existsTenant(String tenantDomain) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public void exportTenant(String tenantDomain, File directoryDestination) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public Tenant getTenant(String tenantDomain) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public void importTenant(String tenantDomain, File directorySource, String rootContentStoreDir) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } - - /** - * @throws UnsupportedOperationException always - */ - public boolean isEnabledTenant(String tenantDomain) - { - throw new UnsupportedOperationException("Single tenant mode is active."); - } + * along with Alfresco. If not, see . + */ +package org.alfresco.repo.tenant; + +import java.io.File; +import java.util.Collections; +import java.util.List; + +import org.alfresco.repo.workflow.WorkflowDeployer; +import org.apache.commons.logging.Log; + +/** + * Empty Tenant Deployer Service implementation (for Single-Tenant / Single-Instance) + */ + +public class SingleTAdminServiceImpl implements TenantAdminService +{ + /** + * NO-OP + */ + @Override + public void startTenants() + { + } + + /** + * NO-OP + */ + @Override + public void stopTenants() + { + } + + /** + * @return Returns false always + */ + @Override + public boolean isEnabled() + { + return false; + } + + /** + * NO-OP + */ + @Override + public void deployTenants(final TenantDeployer deployer, Log logger) + { + } + + /** + * NO-OP + */ + @Override + public void undeployTenants(final TenantDeployer deployer, Log logger) + { + } + + /** + * NO-OP + */ + @Override + public void register(TenantDeployer tenantDeployer) + { + } + + /** + * NO-OP + */ + @Override + public void unregister(TenantDeployer tenantDeployer) + { + } + + /** + * NO-OP + */ + @Override + public void register(WorkflowDeployer workflowDeployer) + { + } + + /** + * NO-OP + */ + @Override + @Deprecated + public List getAllTenants() + { + return getTenants(false); + } + + /** + * NO-OP + */ + @Override + @Deprecated + public List getTenants(boolean enabledOnly) + { + return Collections.emptyList(); + } + + /** + * @return Returns {@link TenantService#DEFAULT_DOMAIN} always + */ + @Override + public String getCurrentUserDomain() + { + return TenantService.DEFAULT_DOMAIN; + } + + /** + * @return Returns {@link TenantService#DEFAULT_DOMAIN} always + */ + @Override + public String getUserDomain(String username) + { + return TenantService.DEFAULT_DOMAIN; + } + + /** + * @return Returns the given username always + */ + @Override + public String getBaseNameUser(String username) + { + return username; + } + + /** + * @return Returns the given baseUserName always + */ + @Override + public String getDomainUser(String baseUsername, String tenantDomain) + { + return baseUsername; + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot, String dbUrl) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void createTenant(String tenantDomain, char[] adminRawPassword) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void deleteTenant(String tenantDomain) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void disableTenant(String tenantDomain) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void enableTenant(String tenantDomain) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public boolean existsTenant(String tenantDomain) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void exportTenant(String tenantDomain, File directoryDestination) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public Tenant getTenant(String tenantDomain) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public void importTenant(String tenantDomain, File directorySource, String rootContentStoreDir) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } + + /** + * @throws UnsupportedOperationException always + */ + @Override + public boolean isEnabledTenant(String tenantDomain) + { + throw new UnsupportedOperationException("Single tenant mode is active."); + } } \ No newline at end of file diff --git a/source/java/org/alfresco/repo/tenant/TenantAdminService.java b/source/java/org/alfresco/repo/tenant/TenantAdminService.java index f4f6d5df6d..16bc345ce5 100644 --- a/source/java/org/alfresco/repo/tenant/TenantAdminService.java +++ b/source/java/org/alfresco/repo/tenant/TenantAdminService.java @@ -1,5 +1,5 @@ -/* - * Copyright (C) 2005-2013 Alfresco Software Limited. +/* + * Copyright (C) 2005-2013 Alfresco Software Limited. * * This file is part of Alfresco * @@ -14,74 +14,92 @@ * 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 . - */ -package org.alfresco.repo.tenant; - -import java.io.File; -import java.util.List; - -import org.alfresco.repo.workflow.WorkflowDeployer; -import org.apache.commons.logging.Log; - - -/** - * Tenant Admin Service interface. - *

- * This interface provides administrative methods to provision and administer tenants. - * - */ - -public interface TenantAdminService extends TenantUserService -{ - public void startTenants(); - - public void stopTenants(); - - /* - * Tenant Deployer methods - */ - - public void deployTenants(final TenantDeployer deployer, Log logger); - - public void undeployTenants(final TenantDeployer deployer, Log logger); - - public void register(TenantDeployer tenantDeployer); - - public void unregister(TenantDeployer tenantDeployer); - - public List getAllTenants(); - - /* - * Workflow Deployer methods - */ - - public void register(WorkflowDeployer workflowDeployer); - - /* - * Admin methods - */ - - public void createTenant(String tenantDomain, char[] adminRawPassword); - - public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot); - - // experimental (unsupported) - public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot, String dbUrl); - - public void exportTenant(String tenantDomain, File directoryDestination); - - public void importTenant(String tenantDomain, File directorySource, String contentRoot); - - public boolean existsTenant(String tenantDomain); - - public void deleteTenant(String tenantDomain); - - public void enableTenant(String tenantDomain); - - public void disableTenant(String tenantDomain); - - public Tenant getTenant(String tenantDomain); - - public boolean isEnabledTenant(String tenantDomain); -} + * along with Alfresco. If not, see . + */ +package org.alfresco.repo.tenant; + +import java.io.File; +import java.util.List; + +import org.alfresco.repo.workflow.WorkflowDeployer; +import org.apache.commons.logging.Log; + + +/** + * Tenant Admin Service interface. + *

+ * This interface provides administrative methods to provision and administer tenants. + * + */ + +public interface TenantAdminService extends TenantUserService +{ + public void startTenants(); + + public void stopTenants(); + + /* + * Tenant Deployer methods + */ + + public void deployTenants(final TenantDeployer deployer, Log logger); + + public void undeployTenants(final TenantDeployer deployer, Log logger); + + public void register(TenantDeployer tenantDeployer); + + public void unregister(TenantDeployer tenantDeployer); + + /** + * @return a list of all tenants regardless of state + * + * @deprecated Deprecated in 4.2. This method does not scale. + */ + @Deprecated + public List getAllTenants(); + + /** + * Retrieve all tenants + * + * @param enabledOnly true to retrieve only active tenants + * @return tenants, either active or all + * + * @since 4.2 + * @deprecated method does not scale. + */ + @Deprecated + public List getTenants(boolean enabledOnly); + + /* + * Workflow Deployer methods + */ + + public void register(WorkflowDeployer workflowDeployer); + + /* + * Admin methods + */ + + public void createTenant(String tenantDomain, char[] adminRawPassword); + + public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot); + + // experimental (unsupported) + public void createTenant(String tenantDomain, char[] adminRawPassword, String contentRoot, String dbUrl); + + public void exportTenant(String tenantDomain, File directoryDestination); + + public void importTenant(String tenantDomain, File directorySource, String contentRoot); + + public boolean existsTenant(String tenantDomain); + + public void deleteTenant(String tenantDomain); + + public void enableTenant(String tenantDomain); + + public void disableTenant(String tenantDomain); + + public Tenant getTenant(String tenantDomain); + + public boolean isEnabledTenant(String tenantDomain); +}