From f95eabd0523d284c8f04def2431a07c6739a796b Mon Sep 17 00:00:00 2001 From: Tom Page Date: Mon, 30 Mar 2015 14:49:10 +0000 Subject: [PATCH] Wire the ClassificationServiceDAO using Spring injection. Also small change to lower visibility of ClassificationServiceDAO member variables from public to private. +review RM @nmcerlean @rwetherall git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@100721 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rm-classified-records-context.xml | 6 +++++ .../ClassificationServiceDAO.java | 14 +++++------ .../ClassificationServiceImpl.java | 25 +++---------------- .../ClassificationServiceDAOUnitTest.java | 23 +++++++++-------- .../ClassificationServiceImplUnitTest.java | 3 ++- 5 files changed, 31 insertions(+), 40 deletions(-) diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-classified-records-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-classified-records-context.xml index 72f95bb85b..0bde07f3cd 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-classified-records-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-classified-records-context.xml @@ -3,12 +3,18 @@ + + + + + + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAO.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAO.java index 13be2a8f4b..46e0e54222 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAO.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAO.java @@ -40,14 +40,14 @@ import org.json.JSONTokener; */ class ClassificationServiceDAO { - public final String levelConfigLocation; - public final String reasonConfigLocation; + private String levelConfigLocation; + private String reasonConfigLocation; - public ClassificationServiceDAO(String levelConfigLocation, String reasonConfigLocation) - { - this.levelConfigLocation = levelConfigLocation; - this.reasonConfigLocation = reasonConfigLocation; - } + /** Set the location of the level configuration file relative to the classpath. */ + public void setLevelConfigLocation(String levelConfigLocation) { this.levelConfigLocation = levelConfigLocation; } + + /** Set the location of the reasons configuration file relative to the classpath. */ + public void setReasonConfigLocation(String reasonConfigLocation) { this.reasonConfigLocation = reasonConfigLocation; } /** * Gets the list (in descending order) of classification levels - as defined in the classpath. diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImpl.java index 4c8a40492f..c123a90e05 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImpl.java @@ -44,36 +44,19 @@ public class ClassificationServiceImpl extends ServiceBaseImpl "classification.reasons" }; private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationServiceImpl.class); - static final String DEFAULT_CONFIG_DIRECTORY = "/alfresco/module/org_alfresco_module_rm/classification/"; - static final String DEFAULT_LEVELS_FILE = DEFAULT_CONFIG_DIRECTORY + "rm-classification-levels.json"; - static final String DEFAULT_REASONS_FILE = DEFAULT_CONFIG_DIRECTORY + "rm-classification-reasons.json"; - private AttributeService attributeService; // TODO What about other code (e.g. REST API) accessing the AttrService? + private ClassificationServiceDAO classificationServiceDao; /** The classification levels currently configured in this server. */ private List configuredLevels; /** The classification reasons currently configured in this server. */ private List configuredReasons; - private final ClassificationServiceDAO classificationServiceDao; - - public ClassificationServiceImpl() - { - this.classificationServiceDao = new ClassificationServiceDAO(DEFAULT_LEVELS_FILE, DEFAULT_REASONS_FILE); - } - - /** - * Package protected constructor, primarily for unit testing purposes. - * - * @param classificationServiceDao The object from which configuration options will be read. - */ - ClassificationServiceImpl(ClassificationServiceDAO classificationServiceDao) - { - this.classificationServiceDao = classificationServiceDao; - } - public void setAttributeService(AttributeService service) { this.attributeService = service; } + /** Set the object from which configuration options will be read. */ + public void setClassificationServiceDAO(ClassificationServiceDAO classificationServiceDao) { this.classificationServiceDao = classificationServiceDao; } + void initConfiguredClassificationLevels() { final List allPersistedLevels = getPersistedLevels(); diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAOUnitTest.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAOUnitTest.java index 1fea5ba56a..9c66f1a629 100644 --- a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAOUnitTest.java +++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceDAOUnitTest.java @@ -43,46 +43,47 @@ public class ClassificationServiceDAOUnitTest @Test public void getConfiguredLevels_readingDefaultConfigurationShouldWork() { - ClassificationServiceDAO c = new ClassificationServiceDAO(ClassificationServiceImpl.DEFAULT_LEVELS_FILE, ClassificationServiceImpl.DEFAULT_REASONS_FILE); + ClassificationServiceDAO c = new ClassificationServiceDAO(); + c.setLevelConfigLocation("/alfresco/module/org_alfresco_module_rm/classification/rm-classification-levels.json"); List config = c.getConfiguredLevels(); assertEquals(DEFAULT_CLASSIFICATION_LEVELS, config); } @Test public void getConfiguredLevels_readingMissingConfigurationShouldProduceEmptyConfig() throws Exception { - ClassificationServiceDAO c = new ClassificationServiceDAO("/no/such/resource", "/no/such/resource"); + ClassificationServiceDAO c = new ClassificationServiceDAO(); + c.setLevelConfigLocation("/no/such/resource"); assertTrue(c.getConfiguredLevels().isEmpty()); } @Test (expected = MalformedConfiguration.class) public void getConfiguredLevels_readingMalformedConfigurationShouldFail() { - ClassificationServiceDAO c = new ClassificationServiceDAO( - "/alfresco/classification/rm-classification-levels-malformed.json", - "/alfresco/classification/rm-classification-levels-malformed.json"); + ClassificationServiceDAO c = new ClassificationServiceDAO(); + c.setLevelConfigLocation("/alfresco/classification/rm-classification-levels-malformed.json"); c.getConfiguredLevels(); } @Test public void getConfiguredReasons_readingDefaultConfigurationShouldWork() { - ClassificationServiceDAO c = new ClassificationServiceDAO(ClassificationServiceImpl.DEFAULT_LEVELS_FILE, - ClassificationServiceImpl.DEFAULT_REASONS_FILE); + ClassificationServiceDAO c = new ClassificationServiceDAO(); + c.setReasonConfigLocation("/alfresco/module/org_alfresco_module_rm/classification/rm-classification-reasons.json"); List config = c.getConfiguredReasons(); assertFalse(config.isEmpty()); } @Test public void getConfiguredReasons_readingMissingConfigurationShouldProduceEmptyConfig() throws Exception { - ClassificationServiceDAO c = new ClassificationServiceDAO("/no/such/resource", "/no/such/resource"); + ClassificationServiceDAO c = new ClassificationServiceDAO(); + c.setReasonConfigLocation("/no/such/resource"); assertTrue(c.getConfiguredReasons().isEmpty()); } @Test (expected = MalformedConfiguration.class) public void getConfiguredReasons_readingMalformedConfigurationShouldFail() { - ClassificationServiceDAO c = new ClassificationServiceDAO( - "/alfresco/classification/rm-classification-levels-malformed.json", - "/alfresco/classification/rm-classification-levels-malformed.json"); + ClassificationServiceDAO c = new ClassificationServiceDAO(); + c.setReasonConfigLocation("/alfresco/classification/rm-classification-levels-malformed.json"); c.getConfiguredReasons(); } } diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImplUnitTest.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImplUnitTest.java index 28b2c8b9bc..5ce8e9da44 100644 --- a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImplUnitTest.java +++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationServiceImplUnitTest.java @@ -103,8 +103,9 @@ public class ClassificationServiceImplUnitTest reset(mockClassificationServiceDAO, mockedAttributeService, mockAppender); mockedAuthenticationUtil = MockAuthenticationUtilHelper.create(); - classificationServiceImpl = new ClassificationServiceImpl(mockClassificationServiceDAO); + classificationServiceImpl = new ClassificationServiceImpl(); classificationServiceImpl.setAttributeService(mockedAttributeService); + classificationServiceImpl.setClassificationServiceDAO(mockClassificationServiceDAO); classificationServiceImpl.setAuthenticationUtil(mockedAuthenticationUtil); }