diff --git a/core/src/main/java/net/byteflux/libby/relocation/Relocation.java b/core/src/main/java/net/byteflux/libby/relocation/Relocation.java index 5c3f8df..5f83202 100644 --- a/core/src/main/java/net/byteflux/libby/relocation/Relocation.java +++ b/core/src/main/java/net/byteflux/libby/relocation/Relocation.java @@ -41,10 +41,10 @@ public class Relocation { * @param excludes classes and resources to exclude */ public Relocation(String pattern, String relocatedPattern, Collection includes, Collection excludes) { - this.pattern = requireNonNull(pattern, "pattern").replace("{}", "."); - this.relocatedPattern = requireNonNull(relocatedPattern, "relocatedPattern").replace("{}", "."); - this.includes = includes != null ? Collections.unmodifiableList(new LinkedList<>(includes)) : Collections.emptyList(); - this.excludes = excludes != null ? Collections.unmodifiableList(new LinkedList<>(excludes)) : Collections.emptyList(); + this.pattern = normalizePattern(requireNonNull(pattern, "pattern")); + this.relocatedPattern = normalizePattern(requireNonNull(relocatedPattern, "relocatedPattern")); + this.includes = normalizePatternCollection(includes); + this.excludes = normalizePatternCollection(excludes); } /** @@ -93,6 +93,17 @@ public Collection getExcludes() { return excludes; } + private String normalizePattern(String pattern) { + return pattern.replace("{}", "."); + } + + private Collection normalizePatternCollection(Collection patterns) { + if (patterns == null) { + return Collections.emptyList(); + } + return patterns.stream().map(this::normalizePattern).toList(); + } + /** * Creates a new relocation builder. *