static ApplicationName parse()

in src/main/java/org/apache/fineract/cn/lang/ApplicationName.java [46:67]


  static ApplicationName parse(final String springApplicationNameString) {
    if (springApplicationNameString.length() > 64) {
      throw new IllegalArgumentException("Spring application name strings for Apache Fineract CN applications should be 64 characters or less.");
    }

    final Pattern applicationNamePattern = Pattern.compile(
        "^(/??(?<name>\\p{Lower}[\\p{Lower}_]+)(?:-v(?<version>\\d[\\d\\._]*))?)$");

    final Matcher applicationNameMatcher = applicationNamePattern.matcher(springApplicationNameString);
    if (!applicationNameMatcher.matches()) {
      throw new IllegalArgumentException(
          "This is not a spring application name string for an Apache Fineract CN application: "
              + springApplicationNameString);
    }
    String versionString = applicationNameMatcher.group("version");
    if (versionString == null) {
      throw new IllegalArgumentException("Application name: '" + springApplicationNameString + "' requires a version.  For example 'amit/v1'.");
    }

    final String serviceName = applicationNameMatcher.group("name");
    return new ApplicationName(serviceName, versionString);
  }