From a8b0f378346cb5650fd4e0e05bc4bff6b0ee1de9 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Sat, 16 Nov 2013 01:08:27 +0100 Subject: [PATCH] [Minor] Changed exceptions to contain cause and code clean up --- .../handler/XmlPersistenceHandler.java | 62 ++++++++++--------- .../helper/PrivilegeInitializationHelper.java | 33 +++++----- .../privilege/model/PrivilegeContext.java | 2 +- 3 files changed, 51 insertions(+), 46 deletions(-) diff --git a/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java b/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java index 84ddf5435..f3db54aba 100644 --- a/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java +++ b/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java @@ -20,6 +20,7 @@ package ch.eitchnet.privilege.handler; import java.io.File; +import java.text.MessageFormat; import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; @@ -56,7 +57,7 @@ public class XmlPersistenceHandler implements PersistenceHandler { private Map parameterMap; - private String modelPath; + private File modelPath; @Override public List getAllUsers() { @@ -125,22 +126,35 @@ public class XmlPersistenceHandler implements PersistenceHandler { String basePath = this.parameterMap.get(XmlConstants.XML_PARAM_BASE_PATH); File basePathF = new File(basePath); if (!basePathF.exists() && !basePathF.isDirectory()) { - throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter " - + XmlConstants.XML_PARAM_BASE_PATH + " is invalid"); + String msg = "[{0}] Defined parameter {1} does not point to a valid path at {2}"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, PersistenceHandler.class.getName(), XmlConstants.XML_PARAM_BASE_PATH, + basePathF.getAbsolutePath()); + throw new PrivilegeException(msg); } // get model file name String modelFileName = this.parameterMap.get(XmlConstants.XML_PARAM_MODEL_FILE); if (modelFileName == null || modelFileName.isEmpty()) { - throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter " - + XmlConstants.XML_PARAM_MODEL_FILE + " is invalid"); + String msg = "[{0}] Defined parameter {1} is not valid as it is empty!"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, PersistenceHandler.class.getName(), XmlConstants.XML_PARAM_MODEL_FILE); + throw new PrivilegeException(msg); + } + + // validate file exists + String modelPathS = basePath + "/" + modelFileName; //$NON-NLS-1$ + File modelPath = new File(modelPathS); + if (!modelPath.exists()) { + String msg = "[{0}] Defined parameter {1} is invalid as model file does not exist at path {2}"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, PersistenceHandler.class.getName(), XmlConstants.XML_PARAM_MODEL_FILE, + modelPath.getAbsolutePath()); + throw new PrivilegeException(msg); } // save path to model - this.modelPath = basePath + "/" + modelFileName; + this.modelPath = modelPath; if (reload()) - XmlPersistenceHandler.logger.info("Privilege Data loaded."); + logger.info("Privilege Data loaded."); //$NON-NLS-1$ } /** @@ -152,22 +166,14 @@ public class XmlPersistenceHandler implements PersistenceHandler { @Override public boolean reload() { - // validate file exists - File modelsFile = new File(this.modelPath); - if (!modelsFile.exists()) { - throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter " - + XmlConstants.XML_PARAM_MODEL_FILE + " is invalid as models file does not exist at path " - + modelsFile.getAbsolutePath()); - } - this.roleMap = Collections.synchronizedMap(new HashMap()); this.userMap = Collections.synchronizedMap(new HashMap()); // parse models xml file to XML document PrivilegeModelSaxReader xmlHandler = new PrivilegeModelSaxReader(); - XmlHelper.parseDocument(modelsFile, xmlHandler); + XmlHelper.parseDocument(this.modelPath, xmlHandler); - this.modelsFileDate = modelsFile.lastModified(); + this.modelsFileDate = this.modelPath.lastModified(); // ROLES List roles = xmlHandler.getRoles(); @@ -184,8 +190,8 @@ public class XmlPersistenceHandler implements PersistenceHandler { this.userMapDirty = false; this.roleMapDirty = false; - XmlPersistenceHandler.logger.info("Read " + this.userMap.size() + " Users"); - XmlPersistenceHandler.logger.info("Read " + this.roleMap.size() + " Roles"); + logger.info(MessageFormat.format("Read {0} Users", this.userMap.size())); //$NON-NLS-1$ + logger.info(MessageFormat.format("Read {0} Roles", this.roleMap.size())); //$NON-NLS-1$ // validate we have a user with PrivilegeAdmin access boolean privilegeAdminExists = false; @@ -198,8 +204,9 @@ public class XmlPersistenceHandler implements PersistenceHandler { } if (!privilegeAdminExists) { - XmlPersistenceHandler.logger.warn("No User with role '" + PrivilegeHandler.PRIVILEGE_ADMIN_ROLE - + "' exists. Privilege modifications will not be possible!"); + String msg = "No User with role ''{0}'' exists. Privilege modifications will not be possible!"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, PrivilegeHandler.PRIVILEGE_ADMIN_ROLE); + logger.warn(msg); } return true; @@ -214,21 +221,20 @@ public class XmlPersistenceHandler implements PersistenceHandler { // get models file name String modelFileName = this.parameterMap.get(XmlConstants.XML_PARAM_MODEL_FILE); if (modelFileName == null || modelFileName.isEmpty()) { - throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter " - + XmlConstants.XML_PARAM_MODEL_FILE + " is invalid"); + String msg = "[{0}] Defined parameter {1} is invalid"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, PersistenceHandler.class.getName(), XmlConstants.XML_PARAM_MODEL_FILE); + throw new PrivilegeException(msg); } // get model file - File modelFile = new File(this.modelPath); - boolean modelFileUnchanged = modelFile.exists() && modelFile.lastModified() == this.modelsFileDate; + boolean modelFileUnchanged = this.modelPath.exists() && this.modelPath.lastModified() == this.modelsFileDate; if (modelFileUnchanged && !this.roleMapDirty && !this.userMapDirty) { - XmlPersistenceHandler.logger - .warn("Not persisting as current file is unchanged and model data is not dirty"); + logger.warn("Not persisting as current file is unchanged and model data is not dirty"); //$NON-NLS-1$ return false; } // delegate writing - PrivilegeModelDomWriter modelWriter = new PrivilegeModelDomWriter(getAllUsers(), getAllRoles(), modelFile); + PrivilegeModelDomWriter modelWriter = new PrivilegeModelDomWriter(getAllUsers(), getAllRoles(), this.modelPath); modelWriter.write(); // reset dirty states diff --git a/src/main/java/ch/eitchnet/privilege/helper/PrivilegeInitializationHelper.java b/src/main/java/ch/eitchnet/privilege/helper/PrivilegeInitializationHelper.java index 35529dde9..0dde63e8c 100644 --- a/src/main/java/ch/eitchnet/privilege/helper/PrivilegeInitializationHelper.java +++ b/src/main/java/ch/eitchnet/privilege/helper/PrivilegeInitializationHelper.java @@ -22,11 +22,9 @@ package ch.eitchnet.privilege.helper; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; +import java.text.MessageFormat; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import ch.eitchnet.privilege.base.PrivilegeException; import ch.eitchnet.privilege.handler.DefaultPrivilegeHandler; import ch.eitchnet.privilege.handler.EncryptionHandler; @@ -45,8 +43,6 @@ import ch.eitchnet.utils.helper.XmlHelper; */ public class PrivilegeInitializationHelper { - private static final Logger logger = LoggerFactory.getLogger(PrivilegeInitializationHelper.class); - /** * Initializes the {@link DefaultPrivilegeHandler} from the configuration file * @@ -60,15 +56,18 @@ public class PrivilegeInitializationHelper { // make sure file exists if (!privilegeXmlFile.exists()) { - throw new PrivilegeException("Privilege file does not exist at path " + privilegeXmlFile.getAbsolutePath()); + String msg = "Privilege file does not exist at path {0}"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, privilegeXmlFile.getAbsolutePath()); + throw new PrivilegeException(msg); } // delegate using input stream try { return initializeFromXml(new FileInputStream(privilegeXmlFile)); } catch (Exception e) { - PrivilegeInitializationHelper.logger.error(e.getMessage(), e); - throw new PrivilegeException("Failed to load configuration from " + privilegeXmlFile.getAbsolutePath()); + String msg = "Failed to load configuration from {0}"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, privilegeXmlFile.getAbsolutePath()); + throw new PrivilegeException(msg, e); } } @@ -96,9 +95,9 @@ public class PrivilegeInitializationHelper { try { encryptionHandler.initialize(parameterMap); } catch (Exception e) { - PrivilegeInitializationHelper.logger.error(e.getMessage(), e); - throw new PrivilegeException("EncryptionHandler " + encryptionHandlerClassName - + " could not be initialized"); + String msg = "EncryptionHandler {0} could not be initialized"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, encryptionHandlerClassName); + throw new PrivilegeException(msg, e); } // initialize persistence handler @@ -108,9 +107,9 @@ public class PrivilegeInitializationHelper { try { persistenceHandler.initialize(parameterMap); } catch (Exception e) { - PrivilegeInitializationHelper.logger.error(e.getMessage(), e); - throw new PrivilegeException("PersistenceHandler " + persistenceHandlerClassName - + " could not be initialized"); + String msg = "PersistenceHandler {0} could not be initialized"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, persistenceHandlerClassName); + throw new PrivilegeException(msg, e); } // initialize privilege handler @@ -120,9 +119,9 @@ public class PrivilegeInitializationHelper { try { privilegeHandler.initialize(parameterMap, encryptionHandler, persistenceHandler, policyMap); } catch (Exception e) { - PrivilegeInitializationHelper.logger.error(e.getMessage(), e); - throw new PrivilegeException("PrivilegeHandler " + privilegeHandler.getClass().getName() - + " could not be initialized"); + String msg = "PrivilegeHandler {0} could not be initialized"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, privilegeHandler.getClass().getName()); + throw new PrivilegeException(msg, e); } return privilegeHandler; diff --git a/src/main/java/ch/eitchnet/privilege/model/PrivilegeContext.java b/src/main/java/ch/eitchnet/privilege/model/PrivilegeContext.java index 661434a18..00a27d189 100644 --- a/src/main/java/ch/eitchnet/privilege/model/PrivilegeContext.java +++ b/src/main/java/ch/eitchnet/privilege/model/PrivilegeContext.java @@ -96,7 +96,7 @@ public class PrivilegeContext { */ public void validateAction(Restrictable restrictable) throws AccessDeniedException, PrivilegeException { - // the the privilege for the restrictable + // the privilege for the restrictable String privilegeName = restrictable.getPrivilegeName(); IPrivilege privilege = this.privileges.get(privilegeName); if (privilege == null) {