)]}'
{"java/src/main/java/monasca/api/app/validation/MetricNameValidation.java":[{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"421b2c3ed3263ba6e09ce07210973f78098e79ce","unresolved":false,"context_lines":[{"line_number":28,"context_line":" * Utilities for validating metric names."},{"line_number":29,"context_line":" */"},{"line_number":30,"context_line":"public class MetricNameValidation {"},{"line_number":31,"context_line":"  private static final Pattern VALID_METRIC_NAME \u003d Pattern.compile(\"[^\u003e\u003c\u003d{}(), \u0027\\\";\u0026]+$\");"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  private MetricNameValidation() {}"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-java","patch_set":2,"id":"dac4157f_c1e7113f","line":31,"updated":"2015-04-20 17:08:20.000000000","message":"should these patterns be in only one place? DNYR?","commit_id":"2f4588856e7a3f9a67ddb61c7266c8e8a84eb500"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"c929dc3a3a59ae73cdbe05bde76c369152e56cc5","unresolved":false,"context_lines":[{"line_number":28,"context_line":" * Utilities for validating metric names."},{"line_number":29,"context_line":" */"},{"line_number":30,"context_line":"public class MetricNameValidation {"},{"line_number":31,"context_line":"  private static final Pattern VALID_METRIC_NAME \u003d Pattern.compile(\"[^\u003e\u003c\u003d{}(), \u0027\\\";\u0026]+$\");"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  private MetricNameValidation() {}"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-java","patch_set":2,"id":"dac4157f_d7ad9332","line":31,"in_reply_to":"dac4157f_c1e7113f","updated":"2015-04-20 18:01:17.000000000","message":"I was thinking most of the validation could be moved to monasca-common","commit_id":"2f4588856e7a3f9a67ddb61c7266c8e8a84eb500"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"421b2c3ed3263ba6e09ce07210973f78098e79ce","unresolved":false,"context_lines":[{"line_number":60,"context_line":"      throw Exceptions.unprocessableEntity(\"Metric name %s must be %d characters or less\","},{"line_number":61,"context_line":"          metricName, CreateMetricCommand.MAX_NAME_LENGTH);"},{"line_number":62,"context_line":"    if (!Services.isReserved(metricName) \u0026\u0026 !VALID_METRIC_NAME.matcher(metricName).matches())"},{"line_number":63,"context_line":"      throw Exceptions.unprocessableEntity(\"Metric name %s may not contain: \u003e \u003c \u003d { } ( ) \u0027 \\\" , ; \u0026\","},{"line_number":64,"context_line":"          metricName);"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    // Service specific validations"}],"source_content_type":"text/x-java","patch_set":2,"id":"dac4157f_01c5098d","line":63,"updated":"2015-04-20 17:08:20.000000000","message":"DNRY?","commit_id":"2f4588856e7a3f9a67ddb61c7266c8e8a84eb500"}]}
