mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Merged 5.0.N (5.0.3) to HEAD (5.1) (PARTIAL MERGE)
110088: Merged 5.0.2 (5.0.2) to 5.0.N (5.0.3) 110052: MNT-14579: TS starting in read-only mode after applying 5.0.2 build 64 - This intermittent issue was probably caused by the SysAdminParams.afterPropertiesSet checking for a valid dictionary. If this call took place too early, then it would never allow the system to be in read-write mode unless rebooted. - Removed the dictionary check from SysAdminParamsImpl; it is now only responsible for the 'server.allowWrite' property - Call the TransactionServiceImpl's read-write veto code if the 'server.allowWrite' property changes - Better logging when vetoes are placed but also when vetoes are removed git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@110214 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -23,12 +23,13 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.alfresco.repo.transaction.TransactionServiceImpl;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.license.LicenseService;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
|
||||
@@ -41,6 +42,7 @@ public class SysAdminParamsImpl implements SysAdminParams, ApplicationContextAwa
|
||||
|
||||
/** Token name to substitute current servers DNS name or TCP/IP address into a host name **/
|
||||
private static final String TOKEN_LOCAL_NAME = "${localname}";
|
||||
private static final QName VETO = QName.createQName(NamespaceService.APP_MODEL_1_0_URI, "SysAdminParams");
|
||||
|
||||
/** The local server name to which the above token will expand. */
|
||||
private final String localName;
|
||||
@@ -108,23 +110,12 @@ public class SysAdminParamsImpl implements SysAdminParams, ApplicationContextAwa
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception
|
||||
{
|
||||
if (this.allowWrite)
|
||||
{
|
||||
LicenseService licenseService = null;
|
||||
try
|
||||
{
|
||||
licenseService = (LicenseService) this.ctx.getBean("licenseService");
|
||||
this.allowWrite = licenseService.isLicenseValid();
|
||||
if (logger.isInfoEnabled())
|
||||
{
|
||||
logger.info("'allowWrite' being set to false: licenseService.isLicenseValid() returned false.");
|
||||
}
|
||||
}
|
||||
catch (NoSuchBeanDefinitionException e)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
// Set the transaction read-write state by veto
|
||||
// There is no need to attempt to check the dictionary or any other component as they will handle
|
||||
// their own vetoes (MNT-14579)
|
||||
// No logging is required here: it is done in the TransactionService code, already
|
||||
TransactionServiceImpl transactionService = (TransactionServiceImpl) ctx.getBean("transactionService");
|
||||
transactionService.setAllowWrite(allowWrite, VETO);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user