aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2014-03-27 17:50:10 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2014-03-27 17:50:10 +0100
commit4df3ea0df00466c4de90fd1ecba3bf24fa14a871 (patch)
tree881c5a5a9abd598a09445a5872c11b76c62b9e8f /sonar-core
parent5bdefeb0c7ec0227473e259219c4682d052e9998 (diff)
downloadsonarqube-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.java23
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