diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/reasons.get.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/reasons.get.json.ftl
index 6c8aed741b..5752e66166 100644
--- a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/reasons.get.json.ftl
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/reasons.get.json.ftl
@@ -1,4 +1,3 @@
-<#escape x as jsonUtils.encodeJSONString(x)>
{
"data":
{
@@ -6,11 +5,10 @@
[
<#list reasons as reason>
{
- "id": "<#noescape>${reason.id}#noescape>",
- "displayLabel": "<#noescape>${reason.displayLabel}#noescape>"
+ "id": "${reason.id?json_string}",
+ "displayLabel": "${reason.displayLabel?json_string}"
}<#if reason_has_next>,#if>
#list>
]
}
}
-#escape>
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationLevel.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationLevel.java
index dc72ea88fc..5dee2944e3 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationLevel.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationLevel.java
@@ -18,10 +18,11 @@
*/
package org.alfresco.module.org_alfresco_module_rm.classification;
-import org.springframework.extensions.surf.util.I18NUtil;
-
import java.io.Serializable;
+import org.alfresco.module.org_alfresco_module_rm.util.RMParameterCheck;
+import org.springframework.extensions.surf.util.I18NUtil;
+
/**
* This class is a POJO data type for a Classification Level.
*
@@ -35,10 +36,8 @@ public final class ClassificationLevel implements Serializable
public ClassificationLevel(final String id, final String displayLabelKey)
{
- if (id == null || id.trim().equals(""))
- {
- throw new IllegalArgumentException("Illegal id: '" + id + "'");
- }
+ RMParameterCheck.checkNotBlank("id", id);
+ RMParameterCheck.checkNotBlank("displayLabelKey", displayLabelKey);
this.id = id;
this.displayLabelKey = displayLabelKey;
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationReason.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationReason.java
index 48af4f45ea..aff361679f 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationReason.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ClassificationReason.java
@@ -21,8 +21,10 @@ package org.alfresco.module.org_alfresco_module_rm.classification;
import java.io.Serializable;
+import org.alfresco.module.org_alfresco_module_rm.util.RMParameterCheck;
import org.springframework.extensions.surf.util.I18NUtil;
+
/**
* This class is a POJO data type for a classification reason.
*
@@ -43,8 +45,8 @@ public final class ClassificationReason implements Serializable
*/
public ClassificationReason(final String id, final String displayLabelKey)
{
- if (id == null || id.trim().equals("")) { throw new IllegalArgumentException("Illegal id: '" + id + "'"); }
- if (displayLabelKey == null || displayLabelKey.trim().equals("")) { throw new IllegalArgumentException("Illegal displayLabelKey: '" + displayLabelKey + "'"); }
+ RMParameterCheck.checkNotBlank("id", id);
+ RMParameterCheck.checkNotBlank("displayLabelKey", displayLabelKey);
this.id = id;
this.displayLabelKey = displayLabelKey;
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/util/RMParameterCheck.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/util/RMParameterCheck.java
new file mode 100644
index 0000000000..b75fd53cb0
--- /dev/null
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/util/RMParameterCheck.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2005-2015 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * 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.module.org_alfresco_module_rm.util;
+
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * Utility class that contains validation not present in {@link org.alfresco.util.ParameterCheck}.
+ *
+ * @author tpage
+ */
+public class RMParameterCheck
+{
+ /**
+ * Checks that the string parameter with the given name is not blank i.e. it is not null, zero length or entirely
+ * composed of whitespace.
+ *
+ * @param strParamName Name of parameter to check
+ * @param strParamValue Value of the parameter to check
+ */
+ public static void checkNotBlank(final String strParamName, final String strParamValue)
+ throws IllegalArgumentException
+ {
+ if (StringUtils.isBlank(strParamValue)) { throw new IllegalArgumentException(strParamName
+ + " is a mandatory parameter"); }
+ }
+}
diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/test/util/ExceptionUtils.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/test/util/ExceptionUtils.java
index e0ec3548be..7a0ea4041a 100644
--- a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/test/util/ExceptionUtils.java
+++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/test/util/ExceptionUtils.java
@@ -46,7 +46,7 @@ public class ExceptionUtils
@Override public String toString()
{
- return String.join("Expected ", expected.getSimpleName(), " but ",
+ return String.join("", "Expected ", expected.getSimpleName(), " but ",
actual.getClass().getSimpleName(), " was thrown.");
}
}
@@ -64,7 +64,7 @@ public class ExceptionUtils
public Class extends Throwable> getExpected() { return this.expected; }
@Override public String toString()
{
- return String.join("Expected ", expected.getSimpleName(), " but nothing was thrown.");
+ return String.join("", "Expected ", expected.getSimpleName(), " but nothing was thrown.");
}
}
diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/util/RMParameterCheckTest.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/util/RMParameterCheckTest.java
new file mode 100644
index 0000000000..3db859b19c
--- /dev/null
+++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/util/RMParameterCheckTest.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2005-2015 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * 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.module.org_alfresco_module_rm.util;
+
+import org.alfresco.module.org_alfresco_module_rm.test.util.ExceptionUtils;
+import org.junit.Test;
+
+/**
+ * Unit tests for the {@link RMParameter} utility class.
+ *
+ * @author tpage
+ */
+public class RMParameterCheckTest
+{
+ @Test
+ public void checkNotBlank()
+ {
+ // Check that supplying null causes an exception.
+ ExceptionUtils.intercept(IllegalArgumentException.class, () -> {
+ RMParameterCheck.checkNotBlank("name", null);
+ return null;
+ });
+
+ // Check that supplying an empty string causes an exception.
+ ExceptionUtils.intercept(IllegalArgumentException.class, () -> {
+ RMParameterCheck.checkNotBlank("name", "");
+ return null;
+ });
+
+ // Check that supplying a whitespace only string causes an exception.
+ ExceptionUtils.intercept(IllegalArgumentException.class, () -> {
+ RMParameterCheck.checkNotBlank("name", "\n\r \t");
+ return null;
+ });
+
+ // Check that supplying a mainly whitespace string throws no exceptions.
+ RMParameterCheck.checkNotBlank("name", "\n\r *\t");
+ }
+}