You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2022/09/12 16:28:13 UTC
[maven-shade-plugin] 02/02: WIP: Improved.
This is an automated email from the ASF dual-hosted git repository.
khmarbaise pushed a commit to branch JDK8_IMPROVEMENTS
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git
commit f399c71037e6f8a72de609d63d0a2874a52f4986
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Mon Sep 12 18:27:37 2022 +0200
WIP: Improved.
---
.../plugins/shade/relocation/SimpleRelocator.java | 54 ++++++++--------------
1 file changed, 18 insertions(+), 36 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java b/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java
index 3acfafb..5d50d11 100644
--- a/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java
+++ b/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java
@@ -19,14 +19,15 @@ package org.apache.maven.plugins.shade.relocation;
* under the License.
*/
-import org.codehaus.plexus.util.SelectorUtils;
-
import java.util.Collection;
-import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.codehaus.plexus.util.SelectorUtils;
/**
* @author Jason van Zyl
@@ -149,30 +150,23 @@ public class SimpleRelocator
private static Set<String> normalizePatterns( Collection<String> patterns )
{
- if ( patterns.isEmpty() )
+ return patterns.stream()
+ .map( s -> s.replace( '.', '/' ) )
+ .flatMap( s -> Stream.concat( Stream.of( s ), convert( s ) ) )
+ .collect( Collectors.toSet() );
+
+ }
+
+ private static Stream<String> convert( String s )
+ {
+ if ( s.endsWith( "/*" ) || s.endsWith( "/**" ) )
{
- return Collections.emptySet();
+ return Stream.of( s.substring( 0, s.lastIndexOf( '/' ) ) );
}
-
- Set<String> normalized = new LinkedHashSet<>();
- for ( String pattern : patterns )
+ else
{
- String classPattern = pattern.replace( '.', '/' );
- normalized.add( classPattern );
- // Actually, class patterns should just use 'foo.bar.*' ending with a single asterisk, but some users
- // mistake them for path patterns like 'my/path/**', so let us be a bit more lenient here.
- if ( classPattern.endsWith( "/*" ) || classPattern.endsWith( "/**" ) )
- {
- String packagePattern = classPattern.substring( 0, classPattern.lastIndexOf( '/' ) );
- normalized.add( packagePattern );
- }
+ return Stream.empty();
}
- return normalized;
-
-// return patterns.stream()
-// .map(s -> s.replace( '.', '/' ))
-// .collect( Collectors.toSet());
-
}
private boolean isIncluded( String path )
@@ -188,19 +182,7 @@ public class SimpleRelocator
private boolean isExcluded( String path )
{
- if ( excludes.isEmpty() )
- {
- return false;
- }
-
- for ( String exclude : excludes )
- {
- if ( SelectorUtils.matchPath( exclude, path, true ) )
- {
- return true;
- }
- }
- return false;
+ return excludes.stream().anyMatch( s -> SelectorUtils.matchPath( s, path, true ));
}
public boolean canRelocatePath( String path )