diff --git a/resolver/BUILD.bazel b/resolver/BUILD.bazel index 7809efd..ab6e5e6 100644 --- a/resolver/BUILD.bazel +++ b/resolver/BUILD.bazel @@ -553,6 +553,17 @@ java_test( ], ) +java_test( + name = "rule_test", + size = "small", + srcs = ["src/test/java/com/google/devtools/bazel/workspace/maven/RuleTest.java"], + test_class = "com.google.devtools.bazel.workspace.maven.RuleTest", + deps = [ + ":graph_resolver_lib", + "@mvn//junit/junit", + ], +) + java_test( name = "sources_locator_test", size = "small", diff --git a/resolver/src/main/java/com/google/devtools/bazel/workspace/maven/Rule.java b/resolver/src/main/java/com/google/devtools/bazel/workspace/maven/Rule.java index 07bd3d0..9006b49 100644 --- a/resolver/src/main/java/com/google/devtools/bazel/workspace/maven/Rule.java +++ b/resolver/src/main/java/com/google/devtools/bazel/workspace/maven/Rule.java @@ -14,6 +14,7 @@ package com.google.devtools.bazel.workspace.maven; +import com.google.common.base.CharMatcher; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import com.google.common.collect.Sets; @@ -35,6 +36,9 @@ public class Rule implements Comparable { private static final String DEFAULT_PACKAGING = "jar"; + // Pre-compiled matcher for performance optimization over String.replaceAll + private static final CharMatcher DOT_OR_DASH_MATCHER = CharMatcher.anyOf(".-"); + private final Artifact artifact; private final Set parents; private final Map> dependencies; @@ -66,7 +70,7 @@ static String generateFullName(String groupId, String artifactId, String version } private static String normalizedWorkspaceName(final String name) { - return name.replaceAll("[.-]", "_"); + return DOT_OR_DASH_MATCHER.replaceFrom(name, '_'); } private static String normalizeMavenName(final String name) {