[MDEP-568] Moves similar methods to parent class (#145)
* [MDEP-568] Move common methods to parent class.
* [MDEP-568] Fix spacing
* [MDEP-568] Fix spacing
* [MDEP-568] Fix formatting
Co-authored-by: Antonio <antonio.lucas@trt4.jus.br>
diff --git a/src/main/java/org/apache/maven/plugins/dependency/filters/AbstractDependencyFilter.java b/src/main/java/org/apache/maven/plugins/dependency/filters/AbstractDependencyFilter.java
index b5e4393..0535309 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/filters/AbstractDependencyFilter.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/filters/AbstractDependencyFilter.java
@@ -19,6 +19,8 @@
* under the License.
*/
+import org.apache.maven.model.Dependency;
+
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;
@@ -26,6 +28,82 @@
abstract class AbstractDependencyFilter implements DependencyFilter
{
+
+ protected final String includeIds;
+ protected final String excludeIds;
+
+ AbstractDependencyFilter( String includeIds, String excludeIds )
+ {
+ this.includeIds = includeIds == null ? "" : includeIds;
+ this.excludeIds = excludeIds == null ? "" : excludeIds;
+ }
+
+
+ @Override
+ public Set<Dependency> filter( Set<Dependency> dependencies )
+ {
+ Set<Dependency> filtered = new HashSet<>( dependencies );
+
+ filtered = filterincludeIds( filtered );
+ filtered = filterexcludeIds( filtered );
+
+ return filtered;
+ }
+
+ private Set<Dependency> filterexcludeIds( Set<Dependency> dependencies )
+ {
+ if ( excludeIds.trim().isEmpty() )
+ {
+ return dependencies;
+ }
+
+ final Set<String> excludedIds = splitExcludeIds( excludeIds );
+
+ Set<Dependency> filtered = new HashSet<>( dependencies.size() );
+ for ( Dependency dependency : dependencies )
+ {
+ if ( excludedIds.contains( getContainsProperty( dependency ) ) )
+ {
+ continue;
+ }
+
+ filtered.add( dependency );
+ }
+
+ return filtered;
+ }
+
+ private Set<Dependency> filterincludeIds( Set<Dependency> dependencies )
+ {
+ if ( includeIds.trim().isEmpty() )
+ {
+ return dependencies;
+ }
+
+ Set<String> includedIds = splitIncludeIds( includeIds );
+
+ Set<Dependency> filtered = new HashSet<>( dependencies.size() );
+ for ( Dependency dependency : dependencies )
+ {
+ if ( includedIds.contains( getContainsProperty( dependency ) ) )
+ {
+ filtered.add( dependency );
+ }
+ }
+
+ return filtered;
+ }
+
+ protected Set<String> splitExcludeIds( String excludeIds )
+ {
+ return splitValues( excludeIds );
+ }
+
+ protected Set<String> splitIncludeIds( String includeIds )
+ {
+ return splitValues( includeIds );
+ }
+
protected Set<String> splitValues( String csvValueList )
{
final String[] values = csvValueList.split( "," );
@@ -47,4 +125,6 @@
return excludeScope;
}
+
+ protected abstract String getContainsProperty( Dependency dependency );
}
diff --git a/src/main/java/org/apache/maven/plugins/dependency/filters/ArtifactIdFilter.java b/src/main/java/org/apache/maven/plugins/dependency/filters/ArtifactIdFilter.java
index c06c7c6..59423d4 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/filters/ArtifactIdFilter.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/filters/ArtifactIdFilter.java
@@ -19,9 +19,6 @@
* under the License.
*/
-import java.util.HashSet;
-import java.util.Set;
-
import org.apache.maven.model.Dependency;
/**
@@ -29,70 +26,14 @@
*/
public class ArtifactIdFilter extends AbstractDependencyFilter
{
- private final String includeArtifactIds;
-
- private final String excludeArtifactIds;
-
public ArtifactIdFilter( String includeArtifactIds, String excludeArtifactIds )
{
- this.includeArtifactIds = includeArtifactIds == null ? "" : includeArtifactIds;
- this.excludeArtifactIds = excludeArtifactIds == null ? "" : excludeArtifactIds;
+ super( includeArtifactIds, excludeArtifactIds );
}
@Override
- public Set<Dependency> filter( Set<Dependency> dependencies )
+ protected String getContainsProperty( Dependency dependency )
{
- Set<Dependency> filtered = new HashSet<>( dependencies );
-
- filtered = filterIncludeArtifactIds( filtered );
- filtered = filterExcludeArtifactIds( filtered );
-
- return filtered;
+ return dependency.getArtifactId();
}
-
- private Set<Dependency> filterExcludeArtifactIds( Set<Dependency> dependencies )
- {
- if ( excludeArtifactIds.trim().isEmpty() )
- {
- return dependencies;
- }
-
- final Set<String> excludedArtifactIds = splitValues( excludeArtifactIds );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( excludedArtifactIds.contains( dependency.getArtifactId() ) )
- {
- continue;
- }
-
- filtered.add( dependency );
- }
-
- return filtered;
- }
-
- private Set<Dependency> filterIncludeArtifactIds( Set<Dependency> dependencies )
- {
- if ( includeArtifactIds.trim().isEmpty() )
- {
- return dependencies;
- }
-
- Set<String> includedArtifactIds = splitValues( includeArtifactIds );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( includedArtifactIds.contains( dependency.getArtifactId() ) )
- {
- filtered.add( dependency );
- }
- }
-
- return filtered;
- }
-
-
}
diff --git a/src/main/java/org/apache/maven/plugins/dependency/filters/ClassifierFilter.java b/src/main/java/org/apache/maven/plugins/dependency/filters/ClassifierFilter.java
index 7e1defa..4859be0 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/filters/ClassifierFilter.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/filters/ClassifierFilter.java
@@ -19,9 +19,6 @@
* under the License.
*/
-import java.util.HashSet;
-import java.util.Set;
-
import org.apache.maven.model.Dependency;
/**
@@ -29,70 +26,16 @@
*/
public class ClassifierFilter extends AbstractDependencyFilter
{
- private final String includeClassifiers;
-
- private final String excludeClassifiers;
public ClassifierFilter( String includeClassifiers, String excludeClassifiers )
{
- this.includeClassifiers = includeClassifiers == null ? "" : includeClassifiers;
- this.excludeClassifiers = excludeClassifiers == null ? "" : excludeClassifiers;
+ super( includeClassifiers, excludeClassifiers );
}
@Override
- public Set<Dependency> filter( Set<Dependency> dependencies )
+ protected String getContainsProperty( Dependency dependency )
{
- Set<Dependency> filtered = new HashSet<>( dependencies );
-
- filtered = filterIncludeClassifier( filtered );
- filtered = filterExcludeClassifier( filtered );
-
- return filtered;
+ return dependency.getClassifier();
}
- private Set<Dependency> filterExcludeClassifier( Set<Dependency> dependencies )
- {
- if ( excludeClassifiers.trim().isEmpty() )
- {
- return dependencies;
- }
-
- final Set<String> excludedClassifiers = splitValues( excludeClassifiers );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( excludedClassifiers.contains( dependency.getClassifier() ) )
- {
- continue;
- }
-
- filtered.add( dependency );
- }
-
- return filtered;
- }
-
- private Set<Dependency> filterIncludeClassifier( Set<Dependency> dependencies )
- {
- if ( includeClassifiers.trim().isEmpty() )
- {
- return dependencies;
- }
-
- Set<String> includedClassifiers = splitValues( includeClassifiers );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( includedClassifiers.contains( dependency.getClassifier() ) )
- {
- filtered.add( dependency );
- }
- }
-
- return filtered;
- }
-
-
}
diff --git a/src/main/java/org/apache/maven/plugins/dependency/filters/GroupIdFilter.java b/src/main/java/org/apache/maven/plugins/dependency/filters/GroupIdFilter.java
index 5ca5e5b..395fd97 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/filters/GroupIdFilter.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/filters/GroupIdFilter.java
@@ -19,9 +19,6 @@
* under the License.
*/
-import java.util.HashSet;
-import java.util.Set;
-
import org.apache.maven.model.Dependency;
/**
@@ -29,70 +26,14 @@
*/
public class GroupIdFilter extends AbstractDependencyFilter
{
- private final String includeGroupIds;
-
- private final String excludeGroupIds;
-
public GroupIdFilter( String includeGroupIds, String excludeGroupIds )
{
- this.includeGroupIds = includeGroupIds == null ? "" : includeGroupIds;
- this.excludeGroupIds = excludeGroupIds == null ? "" : excludeGroupIds;
+ super( includeGroupIds, excludeGroupIds );
}
@Override
- public Set<Dependency> filter( Set<Dependency> dependencies )
+ protected String getContainsProperty( Dependency dependency )
{
- Set<Dependency> filtered = new HashSet<>( dependencies );
-
- filtered = filterIncludeGroupIds( filtered );
- filtered = filterExcludeGroupIds( filtered );
-
- return filtered;
+ return dependency.getGroupId();
}
-
- private Set<Dependency> filterExcludeGroupIds( Set<Dependency> dependencies )
- {
- if ( excludeGroupIds.trim().isEmpty() )
- {
- return dependencies;
- }
-
- final Set<String> excludedGroupIds = splitValues( excludeGroupIds );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( excludedGroupIds.contains( dependency.getGroupId() ) )
- {
- continue;
- }
-
- filtered.add( dependency );
- }
-
- return filtered;
- }
-
- private Set<Dependency> filterIncludeGroupIds( Set<Dependency> dependencies )
- {
- if ( includeGroupIds.trim().isEmpty() )
- {
- return dependencies;
- }
-
- Set<String> includedGroupIds = splitValues( includeGroupIds );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( includedGroupIds.contains( dependency.getGroupId() ) )
- {
- filtered.add( dependency );
- }
- }
-
- return filtered;
- }
-
-
}
diff --git a/src/main/java/org/apache/maven/plugins/dependency/filters/ScopeFilter.java b/src/main/java/org/apache/maven/plugins/dependency/filters/ScopeFilter.java
index 8a47a1d..47f1f1a 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/filters/ScopeFilter.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/filters/ScopeFilter.java
@@ -19,153 +19,104 @@
* under the License.
*/
-import static java.util.Arrays.asList;
-import static java.util.Collections.singletonList;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Dependency;
import java.util.HashSet;
import java.util.Set;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Dependency;
+import static java.util.Arrays.asList;
+import static java.util.Collections.singletonList;
/**
* Filters dependencies by scope.
*/
public class ScopeFilter extends AbstractDependencyFilter
{
- private final String includeScope;
-
- private final String excludeScope;
-
public ScopeFilter( String includeScope, String excludeScope )
{
- this.includeScope = includeScope == null ? "" : includeScope;
- this.excludeScope = excludeScope == null ? "" : excludeScope;
+ super( includeScope, excludeScope );
}
@Override
- public Set<Dependency> filter( Set<Dependency> dependencies )
+ protected String getContainsProperty( Dependency dependency )
{
- Set<Dependency> filtered = new HashSet<>( dependencies );
-
- filtered = filterIncludeScope( filtered );
- filtered = filterExcludeScope( filtered );
-
- return filtered;
+ return dependency.getScope();
}
- private Set<Dependency> filterExcludeScope( Set<Dependency> dependencies )
+ /*
+ * runtime exclude scope excludes runtime and compile dependencies,
+ * compile exclude scope excludes compile, provided, and system dependencies,
+ * test exclude scope excludes all dependencies, then not really a legitimate option: it will
+ * fail, you probably meant to configure includeScope = compile
+ * provided exclude scope just excludes provided dependencies,
+ * system exclude scope just excludes system dependencies.
+ * @param scope to be excluded
+ * @return Set with excluded scopes
+ */
+ @Override
+ protected Set<String> splitExcludeIds( String scope )
{
- if ( excludeScope.trim().isEmpty() )
+ switch ( scope )
{
- return dependencies;
- }
-
- final Set<String> excludedScopes = toResolvedScopes( excludeScope, true );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( excludedScopes.contains( dependency.getScope() ) )
- {
- continue;
- }
-
- filtered.add( dependency );
- }
-
- return filtered;
- }
-
- private Set<Dependency> filterIncludeScope( Set<Dependency> dependencies )
- {
- if ( includeScope.trim().isEmpty() )
- {
- return dependencies;
- }
-
- Set<String> includedScopes = toResolvedScopes( includeScope, false );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( includedScopes.contains( dependency.getScope() ) )
- {
- filtered.add( dependency );
- }
- }
-
- return filtered;
- }
-
- private Set<String> toResolvedScopes( String scope, boolean isExcludeScope )
- {
- if ( isExcludeScope )
- {
- /*
- * runtime exclude scope excludes runtime and compile dependencies,
- * compile exclude scope excludes compile, provided, and system dependencies,
- * test exclude scope excludes all dependencies, then not really a legitimate option: it will
- * fail, you probably meant to configure includeScope = compile
- * provided exclude scope just excludes provided dependencies,
- * system exclude scope just excludes system dependencies.
- */
- switch ( scope )
- {
- case Artifact.SCOPE_RUNTIME:
- return new HashSet<>( asList(
- Artifact.SCOPE_RUNTIME,
- Artifact.SCOPE_COMPILE ) );
- case Artifact.SCOPE_COMPILE:
- return new HashSet<>( asList(
- Artifact.SCOPE_COMPILE,
- Artifact.SCOPE_PROVIDED,
- Artifact.SCOPE_SYSTEM ) );
- case Artifact.SCOPE_TEST:
- throw new IllegalArgumentException( "invalid exclude scope: test. Did you mean compile?" );
- case Artifact.SCOPE_PROVIDED:
- return new HashSet<>( singletonList( Artifact.SCOPE_PROVIDED ) );
- case Artifact.SCOPE_SYSTEM:
- return new HashSet<>( singletonList( Artifact.SCOPE_SYSTEM ) );
- default:
- throw new IllegalArgumentException( "Invalid Scope: " + scope );
- }
- }
- else
- {
- /*
- * runtime include scope gives runtime and compile dependencies,
- * compile include scope gives compile, provided, and system dependencies,
- * test include scope gives all dependencies (equivalent to default),
- * provided include scope just gives provided dependencies,
- * system include scope just gives system dependencies.
- */
- switch ( scope )
- {
- case Artifact.SCOPE_RUNTIME:
- return new HashSet<>( asList(
- Artifact.SCOPE_RUNTIME,
- Artifact.SCOPE_COMPILE ) );
- case Artifact.SCOPE_COMPILE:
- return new HashSet<>( asList(
- Artifact.SCOPE_COMPILE,
- Artifact.SCOPE_PROVIDED,
- Artifact.SCOPE_SYSTEM ) );
- case Artifact.SCOPE_TEST:
- return new HashSet<>( asList(
- Artifact.SCOPE_COMPILE,
- Artifact.SCOPE_PROVIDED,
- Artifact.SCOPE_SYSTEM,
- Artifact.SCOPE_TEST,
- Artifact.SCOPE_RUNTIME ) );
- case Artifact.SCOPE_PROVIDED:
- return new HashSet<>( singletonList( Artifact.SCOPE_PROVIDED ) );
- case Artifact.SCOPE_SYSTEM:
- return new HashSet<>( singletonList( Artifact.SCOPE_SYSTEM ) );
- default:
- throw new IllegalArgumentException( "Invalid Scope: " + scope );
- }
+ case Artifact.SCOPE_RUNTIME:
+ return new HashSet<>( asList(
+ Artifact.SCOPE_RUNTIME,
+ Artifact.SCOPE_COMPILE ) );
+ case Artifact.SCOPE_COMPILE:
+ return new HashSet<>( asList(
+ Artifact.SCOPE_COMPILE,
+ Artifact.SCOPE_PROVIDED,
+ Artifact.SCOPE_SYSTEM ) );
+ case Artifact.SCOPE_TEST:
+ throw new IllegalArgumentException( "invalid exclude scope: test. Did you mean compile?" );
+ case Artifact.SCOPE_PROVIDED:
+ return new HashSet<>( singletonList( Artifact.SCOPE_PROVIDED ) );
+ case Artifact.SCOPE_SYSTEM:
+ return new HashSet<>( singletonList( Artifact.SCOPE_SYSTEM ) );
+ default:
+ throw new IllegalArgumentException( "Invalid Scope: " + scope );
}
}
+ /**
+ * runtime include scope gives runtime and compile dependencies,
+ * compile include scope gives compile, provided, and system dependencies,
+ * test include scope gives all dependencies (equivalent to default),
+ * provided include scope just gives provided dependencies,
+ * system include scope just gives system dependencies.
+ *
+ * @param scope to be included
+ * @return set with included scopes
+ */
+ @Override
+ protected Set<String> splitIncludeIds( String scope )
+ {
+ switch ( scope )
+ {
+ case Artifact.SCOPE_RUNTIME:
+ return new HashSet<>( asList(
+ Artifact.SCOPE_RUNTIME,
+ Artifact.SCOPE_COMPILE ) );
+ case Artifact.SCOPE_COMPILE:
+ return new HashSet<>( asList(
+ Artifact.SCOPE_COMPILE,
+ Artifact.SCOPE_PROVIDED,
+ Artifact.SCOPE_SYSTEM ) );
+ case Artifact.SCOPE_TEST:
+ return new HashSet<>( asList(
+ Artifact.SCOPE_COMPILE,
+ Artifact.SCOPE_PROVIDED,
+ Artifact.SCOPE_SYSTEM,
+ Artifact.SCOPE_TEST,
+ Artifact.SCOPE_RUNTIME ) );
+ case Artifact.SCOPE_PROVIDED:
+ return new HashSet<>( singletonList( Artifact.SCOPE_PROVIDED ) );
+ case Artifact.SCOPE_SYSTEM:
+ return new HashSet<>( singletonList( Artifact.SCOPE_SYSTEM ) );
+ default:
+ throw new IllegalArgumentException( "Invalid Scope: " + scope );
+ }
+
+ }
}
diff --git a/src/main/java/org/apache/maven/plugins/dependency/filters/TypeFilter.java b/src/main/java/org/apache/maven/plugins/dependency/filters/TypeFilter.java
index 72d38b9..72079e9 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/filters/TypeFilter.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/filters/TypeFilter.java
@@ -19,9 +19,6 @@
* under the License.
*/
-import java.util.HashSet;
-import java.util.Set;
-
import org.apache.maven.model.Dependency;
/**
@@ -29,70 +26,14 @@
*/
public class TypeFilter extends AbstractDependencyFilter
{
- private final String includeTypes;
-
- private final String excludeTypes;
-
public TypeFilter( String includeTypes, String excludeTypes )
{
- this.includeTypes = includeTypes == null ? "" : includeTypes;
- this.excludeTypes = excludeTypes == null ? "" : excludeTypes;
+ super( includeTypes, excludeTypes );
}
@Override
- public Set<Dependency> filter( Set<Dependency> dependencies )
+ protected String getContainsProperty( Dependency dependency )
{
- Set<Dependency> filtered = new HashSet<>( dependencies );
-
- filtered = filterIncludeType( filtered );
- filtered = filterExcludeType( filtered );
-
- return filtered;
+ return dependency.getType();
}
-
- private Set<Dependency> filterExcludeType( Set<Dependency> dependencies )
- {
- if ( excludeTypes.trim().isEmpty() )
- {
- return dependencies;
- }
-
- final Set<String> excludedTypes = splitValues( excludeTypes );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( excludedTypes.contains( dependency.getType() ) )
- {
- continue;
- }
-
- filtered.add( dependency );
- }
-
- return filtered;
- }
-
- private Set<Dependency> filterIncludeType( Set<Dependency> dependencies )
- {
- if ( includeTypes.trim().isEmpty() )
- {
- return dependencies;
- }
-
- Set<String> includedTypes = splitValues( includeTypes );
-
- Set<Dependency> filtered = new HashSet<>( dependencies.size() );
- for ( Dependency dependency : dependencies )
- {
- if ( includedTypes.contains( dependency.getType() ) )
- {
- filtered.add( dependency );
- }
- }
-
- return filtered;
- }
-
-
}