diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2014-03-27 17:50:10 +0100 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2014-03-27 17:50:10 +0100 |
commit | 4df3ea0df00466c4de90fd1ecba3bf24fa14a871 (patch) | |
tree | 881c5a5a9abd598a09445a5872c11b76c62b9e8f /sonar-core | |
parent | 5bdefeb0c7ec0227473e259219c4682d052e9998 (diff) | |
download | sonarqube-4df3ea0df00466c4de90fd1ecba3bf24fa14a871.tar.gz sonarqube-4df3ea0df00466c4de90fd1ecba3bf24fa14a871.zip |
SONAR-5178 "sonar.branch" should not be validated against the same pattern as project key
Diffstat (limited to 'sonar-core')
-rw-r--r-- | sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java b/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java index 57dd45eff49..25d1a66d4b5 100644 --- a/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java +++ b/sonar-core/src/main/java/org/sonar/core/component/ComponentKeys.java @@ -33,6 +33,10 @@ public final class ComponentKeys { * Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit */ private static final String VALID_MODULE_KEY_REGEXP = "[\\p{Alnum}\\-_.:]*[\\p{Alpha}\\-_.:]+[\\p{Alnum}\\-_.:]*"; + /* + * Allowed characters are alphanumeric, '-', '_' and '.' + */ + private static final String VALID_BRANCH_REGEXP = "[\\p{Alnum}\\-_.]*"; private static final String KEY_WITH_BRANCH_FORMAT = "%s:%s"; @@ -80,6 +84,25 @@ public final class ComponentKeys { } /** + * <p>Test if given parameter is valid for a branch. Valid format is:</p> + * <ul> + * <li>Allowed characters: + * <ul> + * <li>Uppercase ASCII letters A-Z</li> + * <li>Lowercase ASCII letters a-z</li> + * <li>ASCII digits 0-9</li> + * <li>Punctuation signs dash '-', underscore '_', and period '.'</li> + * </ul> + * </li> + * </ul> + * @param keyCandidate + * @return <code>true</code> if <code>keyCandidate</code> can be used for a project/module + */ + public static boolean isValidBranch(String branchCandidate) { + return branchCandidate.matches(VALID_BRANCH_REGEXP); + } + + /** * Return the project/module key with potential branch * @param keyWithoutBranch * @param branch |