Merge branch 'develop' of https://github.com/mifosio/lang into develop
diff --git a/src/main/java/io/mifos/core/lang/ApplicationName.java b/src/main/java/io/mifos/core/lang/ApplicationName.java
index d984eb6..c3da900 100644
--- a/src/main/java/io/mifos/core/lang/ApplicationName.java
+++ b/src/main/java/io/mifos/core/lang/ApplicationName.java
@@ -41,6 +41,10 @@
}
static ApplicationName parse(final String springApplicationNameString) {
+ if (springApplicationNameString.length() > 64) {
+ throw new IllegalArgumentException("Spring application name strings for mifos io applications should be 64 characters or less.");
+ }
+
final Pattern applicationNamePattern = Pattern.compile(
"^(/??(?<name>\\p{Lower}[\\p{Lower}_]+)(?:-v(?<version>\\d[\\d\\._]*))?)$");
diff --git a/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java b/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java
index 31613d2..50481d7 100644
--- a/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java
+++ b/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java
@@ -44,6 +44,19 @@
}
@Test
+ public void tooLongAppplicationName()
+ {
+ final StringBuilder stringBuilder = new StringBuilder();
+ for (int i = 0; i < 65 -3; i++) {
+ stringBuilder.append("b");
+ }
+ stringBuilder.append("-v1");
+
+ final AnnotatedClass annotatedInstance = new AnnotatedClass(stringBuilder.toString());
+ Assert.assertFalse(isValid(annotatedInstance));
+ }
+
+ @Test
public void nullAppplicationName()
{
final AnnotatedClass annotatedInstance = new AnnotatedClass(null);