diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/PrefixesRemoteRepositoryFilterSource.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/PrefixesRemoteRepositoryFilterSource.java index 34698d310..bd7786acf 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/PrefixesRemoteRepositoryFilterSource.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/PrefixesRemoteRepositoryFilterSource.java @@ -83,7 +83,7 @@ public final class PrefixesRemoteRepositoryFilterSource extends RemoteRepository private static final String CONFIG_PROPS_PREFIX = RemoteRepositoryFilterSourceSupport.CONFIG_PROPS_PREFIX + NAME + "."; - private static final String PREFIX_FILE_PATH = ".meta/prefixes.txt"; + private static final String PREFIX_FILE_TYPE = ".meta/prefixes.txt"; /** * Configuration to enable the Prefixes filter (enabled by default). Can be fine-tuned per repository using @@ -289,7 +289,7 @@ private Path resolvePrefixesFromRemoteRepository( // supplier for path Supplier supplier = () -> { MetadataRequest request = - new MetadataRequest(new DefaultMetadata(PREFIX_FILE_PATH, Metadata.Nature.RELEASE_OR_SNAPSHOT)); + new MetadataRequest(new DefaultMetadata(PREFIX_FILE_TYPE, Metadata.Nature.RELEASE_OR_SNAPSHOT)); // use unique repository; this will result in prefix (repository metadata) cached under unique id request.setRepository(unique); request.setDeleteLocalCopyIfMissing(true); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/GAVNameMapper.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/GAVNameMapper.java index dc21b4438..4f26137e4 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/GAVNameMapper.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/GAVNameMapper.java @@ -87,8 +87,8 @@ public Collection nameLocks( if (metadatas != null) { for (Metadata metadata : metadatas) { keys.add(NamedLockKey.of( - getMetadataName(metadata, metadataPrefix, fieldSeparator, metadataSuffix), - getMetadataName(metadata, "", ":", ""))); + getMetadataName(metadata, fileSystemFriendly, metadataPrefix, fieldSeparator, metadataSuffix), + getMetadataName(metadata, false, "", ":", ""))); } } return keys; @@ -106,7 +106,8 @@ private static String getArtifactName(Artifact artifact, String prefix, String s private static final String MAVEN_METADATA = "maven-metadata.xml"; - private static String getMetadataName(Metadata metadata, String prefix, String separator, String suffix) { + private static String getMetadataName( + Metadata metadata, boolean fileSystemFriendly, String prefix, String separator, String suffix) { String name = prefix; if (!metadata.getGroupId().isEmpty()) { name += metadata.getGroupId(); @@ -117,11 +118,12 @@ private static String getMetadataName(Metadata metadata, String prefix, String s } } if (!MAVEN_METADATA.equals(metadata.getType())) { - name += separator + PathUtils.stringToPathSegment(metadata.getType()); + name += separator + + (fileSystemFriendly ? PathUtils.stringToPathSegment(metadata.getType()) : metadata.getType()); } } else { if (!MAVEN_METADATA.equals(metadata.getType())) { - name += PathUtils.stringToPathSegment(metadata.getType()); + name += (fileSystemFriendly ? PathUtils.stringToPathSegment(metadata.getType()) : metadata.getType()); } } return name + suffix; diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/synccontext/named/BasedirHashingNameMapperTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/synccontext/named/BasedirHashingNameMapperTest.java index feea3b1ea..226cc0f36 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/synccontext/named/BasedirHashingNameMapperTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/synccontext/named/BasedirHashingNameMapperTest.java @@ -129,7 +129,7 @@ void prefixMetadata() { assertEquals(1, names.size()); assertEquals( names.iterator().next().name(), - basedir.toUri() + PS + ".locks" + PS + "520e2ba3a365db8cd804bcc40df38e1a52987e0f"); + basedir.toUri() + PS + ".locks" + PS + "d7e4ca43a23278042698fe526287af16b18f8791"); } @Test