You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2021/01/18 21:02:31 UTC

[maven-common-artifact-filters] 02/02: [MSHARED-950] Remove obsolete code and references to Sonatype Aether

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch MSHARED-950
in repository https://gitbox.apache.org/repos/asf/maven-common-artifact-filters.git

commit 9c3d88702830e259e7364b186995d0a0fcefc7c1
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sun Sep 27 22:41:24 2020 +0200

    [MSHARED-950] Remove obsolete code and references to Sonatype Aether
---
 pom.xml                                            |  14 +-
 .../collection/ArtifactTransitivityFilter.java     |  75 +--------
 .../shared/artifact/filter/collection/Invoker.java |  52 ------
 .../shared/artifact/filter/resolve/AndFilter.java  |   1 -
 .../artifact/filter/resolve/ExclusionsFilter.java  |   1 -
 .../shared/artifact/filter/resolve/OrFilter.java   |   1 -
 .../filter/resolve/PatternExclusionsFilter.java    |   2 -
 .../filter/resolve/PatternInclusionsFilter.java    |   2 -
 .../artifact/filter/resolve/ScopeFilter.java       |   1 -
 .../transform/SonatypeAetherFilterTransformer.java | 176 --------------------
 .../resolve/transform/SonatypeAetherNode.java      |  88 ----------
 .../SonatypeAetherFilterTransformerTest.java       | 184 ---------------------
 .../resolve/transform/SonatypeAetherNodeTest.java  | 135 ---------------
 13 files changed, 7 insertions(+), 725 deletions(-)

diff --git a/pom.xml b/pom.xml
index 841b297..06d45fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,7 @@
   </distributionManagement>
 
   <properties>
-    <maven.version>3.1.0</maven.version>
+    <maven.version>3.1.1</maven.version>
     <javaVersion>7</javaVersion>
     <project.build.outputTimestamp>2020-04-04T09:03:59Z</project.build.outputTimestamp>
   </properties>
@@ -106,18 +106,6 @@
     </dependency>
 
     <dependency>
-      <groupId>org.sonatype.aether</groupId>
-      <artifactId>aether-api</artifactId>
-      <version>1.7</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.sonatype.aether</groupId>
-      <artifactId>aether-util</artifactId>
-      <version>1.7</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.maven.resolver</groupId>
       <artifactId>maven-resolver-api</artifactId>
       <version>1.4.2</version>
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
index e238f57..7c08cca 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
@@ -27,8 +27,8 @@ import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.project.ProjectBuildingResult;
+import org.eclipse.aether.graph.Dependency;
 
-import java.lang.reflect.InvocationTargetException;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
@@ -79,85 +79,22 @@ public class ArtifactTransitivityFilter
         DependencyResolutionResult resolutionResult = buildingResult.getDependencyResolutionResult();
         if ( resolutionResult != null )
         {
-            if ( isMaven31() )
-            {
-                try
-                {
-                    @SuppressWarnings( "unchecked" ) List<org.eclipse.aether.graph.Dependency> dependencies =
-                        (List<org.eclipse.aether.graph.Dependency>) Invoker.invoke( resolutionResult,
-                                                                                    "getDependencies" );
-
-                    for ( org.eclipse.aether.graph.Dependency dependency : dependencies )
-                    {
-                        Artifact mavenArtifact = 
-                                        (Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact",
-                                                                    org.eclipse.aether.artifact.Artifact.class,
-                                                                    dependency.getArtifact() );
+            resolutionResult.getDependencies();
+            List<Dependency> dependencies = resolutionResult.getDependencies();
 
-                        transitiveArtifacts.add( mavenArtifact.getDependencyConflictId() );
-                    }
-                }
-                catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
-                {
-                    // don't want to pollute method signature with ReflectionExceptions
-                    throw new RuntimeException( e.getMessage(), e );
-                }
-            }
-            else
+            for ( Dependency dependency : dependencies )
             {
-                try
-                {
-                    @SuppressWarnings( "unchecked" ) List<org.sonatype.aether.graph.Dependency> dependencies =
-                        (List<org.sonatype.aether.graph.Dependency>) Invoker.invoke( resolutionResult,
-                                                                                     "getDependencies" );
-
-                    for ( org.sonatype.aether.graph.Dependency dependency : dependencies )
-                    {
-                        Artifact mavenArtifact = 
-                                        (Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact",
-                                                                    org.sonatype.aether.artifact.Artifact.class,
-                                                                    dependency.getArtifact() );
-
-                        transitiveArtifacts.add( mavenArtifact.getDependencyConflictId() );
-                    }
-                }
-                catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
-                {
-                    // don't want to pollute method signature with ReflectionExceptions
-                    throw new RuntimeException( e.getMessage(), e );
-                }
+                Artifact mavenArtifact = RepositoryUtils.toArtifact( dependency.getArtifact() );
+                transitiveArtifacts.add( mavenArtifact.getDependencyConflictId() );
             }
         }
     }
 
     /**
-     * @return true if the current Maven version is Maven 3.1.
-     */
-    protected static boolean isMaven31()
-    {
-        return canFindCoreClass( "org.eclipse.aether.artifact.Artifact" ); // Maven 3.1 specific
-    }
-
-    private static boolean canFindCoreClass( String className )
-    {
-        try
-        {
-            Thread.currentThread().getContextClassLoader().loadClass( className );
-
-            return true;
-        }
-        catch ( ClassNotFoundException e )
-        {
-            return false;
-        }
-    }
-
-    /**
      * {@inheritDoc}
      */
     public Set<Artifact> filter( Set<Artifact> artifacts )
     {
-
         Set<Artifact> result = new LinkedHashSet<>();
         for ( Artifact artifact : artifacts )
         {
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/collection/Invoker.java b/src/main/java/org/apache/maven/shared/artifact/filter/collection/Invoker.java
deleted file mode 100644
index 8f49ef7..0000000
--- a/src/main/java/org/apache/maven/shared/artifact/filter/collection/Invoker.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.apache.maven.shared.artifact.filter.collection;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * Invokes method on objects using reflection.
- */
-final class Invoker
-{
-    private Invoker()
-    {
-        // do not instantiate
-    }
-
-    public static Object invoke( Object object, String method )
-        throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
-    {
-        return invoke( object.getClass(), object, method );
-    }
-
-    public static Object invoke( Class<?> objectClazz, Object object, String method )
-        throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
-    {
-        return objectClazz.getMethod( method ).invoke( object );
-    }
-
-    public static Object invoke( Object object, String method, Class<?> clazz, Object arg )
-        throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
-    {
-        final Class<?> objectClazz = object.getClass();
-        return objectClazz.getMethod( method, clazz ).invoke( object, arg );
-    }
-}
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/AndFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/AndFilter.java
index 0d8d416..3ac97c5 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/AndFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/AndFilter.java
@@ -28,7 +28,6 @@ import java.util.Collections;
  * @author Robert Scholte
  * @since 3.0
  * 
- * @see org.sonatype.aether.util.filter.AndDependencyFilter
  * @see org.eclipse.aether.util.filter.AndDependencyFilter
  */
 public class AndFilter
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ExclusionsFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ExclusionsFilter.java
index b9da1b0..9760bac 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ExclusionsFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ExclusionsFilter.java
@@ -28,7 +28,6 @@ import java.util.Collections;
  * @author Robert Scholte
  * @since 3.0
  * 
- * @see org.sonatype.aether.util.filter.ExclusionsDependencyFilter
  * @see org.eclipse.aether.util.filter.ExclusionsDependencyFilter
  */
 public class ExclusionsFilter
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/OrFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/OrFilter.java
index 12b27ed..bc9c78a 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/OrFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/OrFilter.java
@@ -28,7 +28,6 @@ import java.util.Collections;
  * @author Robert Scholte
  * @since 3.0
  * 
- * @see org.sonatype.aether.util.filter.OrDependencyFilter
  * @see org.eclipse.aether.util.filter.OrDependencyFilter
  */
 public class OrFilter implements TransformableFilter
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternExclusionsFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternExclusionsFilter.java
index 1386638..f072a2e 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternExclusionsFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternExclusionsFilter.java
@@ -40,9 +40,7 @@ import java.util.Collections;
  * @author Robert Scholte
  * @since 3.0
  * 
- * @see org.sonatype.aether.util.filter.PatternExclusionsDependencyFilter
  * @see org.eclipse.aether.util.filter.PatternExclusionsDependencyFilter
- * @see org.sonatype.aether.version.VersionScheme
  * @see org.eclipse.aether.version.VersionScheme
  */
 public class PatternExclusionsFilter implements TransformableFilter
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternInclusionsFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternInclusionsFilter.java
index 78a8685..def075e 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternInclusionsFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/PatternInclusionsFilter.java
@@ -41,9 +41,7 @@ import java.util.Collections;
  * @author Robert Scholte
  * @since 3.0
  * 
- * @see org.sonatype.aether.util.filter.PatternInclusionsDependencyFilter
  * @see org.eclipse.aether.util.filter.PatternInclusionsDependencyFilter
- * @see org.sonatype.aether.version.VersionScheme
  * @see org.eclipse.aether.version.VersionScheme
  */
 public class PatternInclusionsFilter implements TransformableFilter
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java
index 57d4788..1bc2cb4 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java
@@ -29,7 +29,6 @@ import java.util.Collections;
  * @author Robert Scholte
  * @since 3.0
  * 
- * @see org.sonatype.aether.util.filter.ScopeDependencyFilter
  * @see org.eclipse.aether.util.filter.ScopeDependencyFilter
  */
 public class ScopeFilter implements TransformableFilter
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformer.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformer.java
deleted file mode 100644
index edce5d2..0000000
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformer.java
+++ /dev/null
@@ -1,176 +0,0 @@
-package org.apache.maven.shared.artifact.filter.resolve.transform;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.maven.shared.artifact.filter.resolve.AbstractFilter;
-import org.apache.maven.shared.artifact.filter.resolve.AndFilter;
-import org.apache.maven.shared.artifact.filter.resolve.ExclusionsFilter;
-import org.apache.maven.shared.artifact.filter.resolve.FilterTransformer;
-import org.apache.maven.shared.artifact.filter.resolve.OrFilter;
-import org.apache.maven.shared.artifact.filter.resolve.PatternExclusionsFilter;
-import org.apache.maven.shared.artifact.filter.resolve.PatternInclusionsFilter;
-import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
-import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
-import org.sonatype.aether.graph.DependencyFilter;
-import org.sonatype.aether.graph.DependencyNode;
-import org.sonatype.aether.util.filter.AndDependencyFilter;
-import org.sonatype.aether.util.filter.ExclusionsDependencyFilter;
-import org.sonatype.aether.util.filter.OrDependencyFilter;
-import org.sonatype.aether.util.filter.PatternExclusionsDependencyFilter;
-import org.sonatype.aether.util.filter.PatternInclusionsDependencyFilter;
-import org.sonatype.aether.util.filter.ScopeDependencyFilter;
-
-/**
- * FilterTransformer implementation for Sonatype Aether
- * 
- * @deprecated update to Maven 3.1.0 or later and replace Sonatype Aether with Eclipse Aether
- * @author Robert Scholte  
- * @since 3.0
- */
-@Deprecated
-public class SonatypeAetherFilterTransformer
-    implements FilterTransformer<DependencyFilter>
-{
-    /**
-     * When using as regular expression, group(1) + group(3) will be the coordinate, 
-     * group(2) will be the classifier.
-     */
-    private static final String GAE_C_V = "(.*:.*:.*):(.+)(:.*)";
-    
-    @Override
-    public AndDependencyFilter transform( AndFilter filter )
-    {
-        Collection<DependencyFilter> filters = new ArrayList<>( filter.getFilters().size() );
-        for ( TransformableFilter dependencyFilter : filter.getFilters() )
-        {
-            filters.add( dependencyFilter.transform( this ) );
-        }
-        return new AndDependencyFilter( filters );
-    }
-
-    @Override
-    public ExclusionsDependencyFilter transform( ExclusionsFilter filter )
-    {
-        return new ExclusionsDependencyFilter( filter.getExcludes() );
-    }
-    
-    @Override
-    public OrDependencyFilter transform( OrFilter filter )
-    {
-        Collection<DependencyFilter> filters = new ArrayList<>( filter.getFilters().size() );
-        for ( TransformableFilter dependencyFilter : filter.getFilters() )
-        {
-            filters.add( dependencyFilter.transform( this ) );
-        }
-        return new OrDependencyFilter( filters );
-    }
-    
-    @Override
-    public ScopeDependencyFilter transform( ScopeFilter filter )
-    {
-        return new ScopeDependencyFilter( filter.getIncluded(), filter.getExcluded() );
-    }
-    
-    @Override
-    public DependencyFilter transform( PatternExclusionsFilter filter )
-    {
-        return new PatternExclusionsDependencyFilter( filter.getExcludes() );
-    }
-    
-    @Override
-    public DependencyFilter transform( PatternInclusionsFilter filter )
-    {
-     // if any include contains a classifier:
-        // split all includes and make it an or-filter for every include
-        // for the classifier, add an and-filter with a classifierfilter and patterninclusionfilter
-        
-        for ( String include : filter.getIncludes() )
-        {
-            if ( include.matches( GAE_C_V ) )
-            {
-                return newAdvancedPatternInclusionFilter( filter.getIncludes() );
-            }
-        }
-        
-        return new PatternInclusionsDependencyFilter( filter.getIncludes() );
-    }
-    
-    @Override
-    public DependencyFilter transform( final AbstractFilter filter )
-    {
-        return new DependencyFilter()
-        {
-            @Override
-            public boolean accept( DependencyNode node, List<DependencyNode> parents )
-            {
-                return filter.accept( new SonatypeAetherNode( node ), null );
-            }
-        };
-    }
-    
-    private DependencyFilter newAdvancedPatternInclusionFilter( Collection<String> includes )
-    {
-        List<DependencyFilter> filters = new ArrayList<>( includes.size() );
-
-        Pattern pattern = Pattern.compile( GAE_C_V );
-        for ( String include : includes )
-        {
-            Matcher matcher = pattern.matcher( include );
-            if ( matcher.matches() )
-            {
-                DependencyFilter patternFilter =
-                    new PatternInclusionsDependencyFilter( matcher.group( 1 ) + matcher.group( 3 ) );
-
-                final String classifier = matcher.group( 2 );
-                
-                DependencyFilter classifierFilter = new DependencyFilter()
-                {
-                    @Override
-                    public boolean accept( DependencyNode node, List<DependencyNode> parents )
-                    {
-                        String nodeClassifier = node.getDependency().getArtifact().getClassifier();
-                        
-                        if ( nodeClassifier == null )
-                        {
-                            return false;
-                        }
-                        else 
-                        {
-                            return "*".equals( classifier ) || nodeClassifier.matches( classifier );
-                        }
-                    }
-                };
-
-                filters.add( new AndDependencyFilter( patternFilter, classifierFilter ) );
-            }
-            else
-            {
-                filters.add( new PatternInclusionsDependencyFilter( include ) );
-            }
-        }
-        return new OrDependencyFilter( filters );
-    }
-}
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNode.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNode.java
deleted file mode 100644
index 419f6fb..0000000
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNode.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.apache.maven.shared.artifact.filter.resolve.transform;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.shared.artifact.filter.resolve.Node;
-import org.sonatype.aether.graph.Dependency;
-import org.sonatype.aether.graph.DependencyNode;
-import org.sonatype.aether.graph.Exclusion;
-import org.sonatype.aether.util.artifact.ArtifactProperties;
-
-/**
- * Adapter of a Sonatype Aether DependencyNode for common Node
- * 
- * @author Robert Scholte
- * @since 3.0
- */
-class SonatypeAetherNode implements Node
-{
-
-    private final DependencyNode node;
-
-    SonatypeAetherNode( DependencyNode node )
-    {
-        this.node = node;
-    }
-
-
-    @Override
-    public org.apache.maven.model.Dependency getDependency()
-    {
-        Dependency nodeDependency = node.getDependency();
-
-        if ( nodeDependency == null )
-        {
-            return null;
-        }
-        
-        org.apache.maven.model.Dependency mavenDependency = new org.apache.maven.model.Dependency();
-        mavenDependency.setGroupId( nodeDependency.getArtifact().getGroupId() );
-        mavenDependency.setArtifactId( nodeDependency.getArtifact().getArtifactId() );
-        mavenDependency.setVersion( nodeDependency.getArtifact().getVersion() );
-        mavenDependency.setClassifier( nodeDependency.getArtifact().getClassifier() );
-        mavenDependency.setType( nodeDependency.getArtifact().getProperty( ArtifactProperties.TYPE, null ) );
-        mavenDependency.setScope( nodeDependency.getScope() );
-        mavenDependency.setOptional( nodeDependency.isOptional() );
-        if ( nodeDependency.getExclusions() != null )
-        {
-            List<org.apache.maven.model.Exclusion> mavenExclusions =
-                    new ArrayList<>( nodeDependency.getExclusions().size() );
-
-            for ( Exclusion aetherExclusion : nodeDependency.getExclusions() )
-            {
-                org.apache.maven.model.Exclusion mavenExclusion = new org.apache.maven.model.Exclusion();
-
-                mavenExclusion.setGroupId( aetherExclusion.getGroupId() );
-                mavenExclusion.setArtifactId( aetherExclusion.getArtifactId() );
-                // that's all folks, although Aether has more metadata
-
-                mavenExclusions.add( mavenExclusion );
-            }
-
-            mavenDependency.setExclusions( mavenExclusions );
-        }
-
-        return mavenDependency;
-    }
-     
-}
diff --git a/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformerTest.java b/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformerTest.java
deleted file mode 100644
index fe4cd19..0000000
--- a/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformerTest.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package org.apache.maven.shared.artifact.filter.resolve.transform;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.maven.artifact.ArtifactUtils;
-import org.apache.maven.shared.artifact.filter.resolve.AbstractFilter;
-import org.apache.maven.shared.artifact.filter.resolve.AndFilter;
-import org.apache.maven.shared.artifact.filter.resolve.ExclusionsFilter;
-import org.apache.maven.shared.artifact.filter.resolve.Node;
-import org.apache.maven.shared.artifact.filter.resolve.OrFilter;
-import org.apache.maven.shared.artifact.filter.resolve.PatternExclusionsFilter;
-import org.apache.maven.shared.artifact.filter.resolve.PatternInclusionsFilter;
-import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
-import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
-import org.sonatype.aether.graph.DependencyFilter;
-import org.sonatype.aether.graph.Dependency;
-import org.sonatype.aether.graph.DependencyNode;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
-import org.sonatype.aether.util.filter.AndDependencyFilter;
-import org.sonatype.aether.util.filter.ExclusionsDependencyFilter;
-import org.sonatype.aether.util.filter.OrDependencyFilter;
-import org.sonatype.aether.util.filter.PatternExclusionsDependencyFilter;
-import org.sonatype.aether.util.filter.PatternInclusionsDependencyFilter;
-import org.sonatype.aether.util.filter.ScopeDependencyFilter;
-import org.sonatype.aether.util.graph.DefaultDependencyNode;
-import org.junit.Test;
-
-public class SonatypeAetherFilterTransformerTest
-{
-
-    private final SonatypeAetherFilterTransformer transformer = new SonatypeAetherFilterTransformer();
-
-    @Test
-    public void testTransformAndFilter()
-    {
-        AndFilter filter = new AndFilter(
-                  Arrays.asList( ScopeFilter.including( "compile" ),
-                                                      new ExclusionsFilter( Collections.singletonList( "x:a" ) ) ) );
-
-        AndDependencyFilter dependencyFilter = (AndDependencyFilter) filter.transform( transformer );
-        
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v", "compile" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "x:a:v", "compile" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "g:a:v", "test" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "x:a:v", "test" ), null ) );
-    }
-
-    @Test
-    public void testTransformExclusionsFilter()
-    {
-        ExclusionsFilter filter = new ExclusionsFilter( Collections.singletonList( "x:a" ) );
-
-        ExclusionsDependencyFilter dependencyFilter = (ExclusionsDependencyFilter) filter.transform( transformer );
-
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v", "compile" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "x:a:v", "compile" ), null ) );
-    }
-
-    @Test
-    public void testTransformOrFilter()
-    {
-        OrFilter filter = new OrFilter( Arrays.<TransformableFilter>asList( ScopeFilter.including( "compile" ), 
-                                                                            ScopeFilter.including( "test" ) ) );
-
-        OrDependencyFilter dependencyFilter = (OrDependencyFilter) filter.transform( transformer );
-
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v", "compile" ), null ) );
-
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v", "test" ), null ) );
-        
-        assertFalse( dependencyFilter.accept( newDependencyNode( "g:a:v", "runtime" ), null ) );
-    }
-
-    @Test
-    public void testTransformScopeFilter()
-    {
-        ScopeFilter filter = ScopeFilter.including( Collections.singletonList( "runtime" ) );
-
-        ScopeDependencyFilter dependencyFilter = (ScopeDependencyFilter) filter.transform( transformer );
-        
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v", "runtime" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "g:a:v", "compile" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "g:a:v", "test" ), null ) );
-    }
-
-    @Test
-    public void testTransformPatternExclusionsFilter()
-    {
-        PatternExclusionsFilter filter =
-            new PatternExclusionsFilter( Collections.singletonList( "x:*" ) );
-
-        PatternExclusionsDependencyFilter dependencyFilter =
-            (PatternExclusionsDependencyFilter) filter.transform( transformer );
-        
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v", "runtime" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "x:a:v", "runtime" ), null ) );
-    }
-
-    @Test
-    public void testTransformPatternInclusionsFilter()
-    {
-        PatternInclusionsFilter filter =
-            new PatternInclusionsFilter( Collections.singletonList( "g:*" ) );
-
-        PatternInclusionsDependencyFilter dependencyFilter =
-            (PatternInclusionsDependencyFilter) filter.transform( transformer );
-        
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v", "runtime" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "x:a:v", "runtime" ), null ) );
-    }
-    
-
-    @Test
-    public void testTransformClassifierPatternInclusionsFilter()
-    {
-        PatternInclusionsFilter filter =
-            new PatternInclusionsFilter( Collections.singletonList( "g:*:*:c:*" ) );
-
-        DependencyFilter dependencyFilter = filter.transform( transformer );
-
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:v:c:*", "runtime" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "g:a:v", "runtime" ), null ) );
-        
-        assertFalse( dependencyFilter.accept( newDependencyNode( "x:a:v:c:*", "runtime" ), null ) );
-    }
-    
-    @Test
-    public void testTransformAbstractFilter()
-    {
-        AbstractFilter snapshotFilter = new AbstractFilter()
-        {
-            @Override
-            public boolean accept( Node node, List<Node> parents )
-            {
-                return ArtifactUtils.isSnapshot( node.getDependency().getVersion() );
-            }
-        };
-        
-        DependencyFilter dependencyFilter = snapshotFilter.transform( transformer );
-        
-        assertTrue( dependencyFilter.accept( newDependencyNode( "g:a:1.0-SNAPSHOT", "compile" ), null ) );
-
-        assertFalse( dependencyFilter.accept( newDependencyNode( "g:a:1.0", "compile" ), null ) );
-    }
-    
-    private DependencyNode newDependencyNode( String string, String scope )
-    {
-        return new DefaultDependencyNode( new Dependency( new DefaultArtifact( string ), scope ) );
-    }
-
-}
diff --git a/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNodeTest.java b/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNodeTest.java
deleted file mode 100644
index 826e394..0000000
--- a/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherNodeTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.apache.maven.shared.artifact.filter.resolve.transform;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.apache.maven.shared.artifact.filter.resolve.Node;
-import org.junit.Test;
-import org.sonatype.aether.graph.Dependency;
-import org.sonatype.aether.graph.DependencyNode;
-import org.sonatype.aether.graph.Exclusion;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
-import org.sonatype.aether.util.graph.DefaultDependencyNode;
-
-import static org.junit.Assert.*;
-
-public class SonatypeAetherNodeTest
-{
-    @Test
-    public void testGAV()
-    {
-        Node node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null ) );
-        
-        org.apache.maven.model.Dependency mavenDependency = node.getDependency();
-        
-        assertEquals( "g", mavenDependency.getGroupId()  );
-        assertEquals( "a", mavenDependency.getArtifactId()  );
-        assertEquals( "v", mavenDependency.getVersion() );
-        assertEquals( "", mavenDependency.getClassifier() );
-        assertNull( mavenDependency.getType() );
-        assertEquals( "", mavenDependency.getScope() );
-    }
-
-    @Test
-    public void testClassifier()
-    {
-        Node node = new SonatypeAetherNode( newDependencyNode( "g:a::c:v", null ) );
-        
-        org.apache.maven.model.Dependency mavenDependency = node.getDependency();
-        
-        assertEquals( "g", mavenDependency.getGroupId()  );
-        assertEquals( "a", mavenDependency.getArtifactId()  );
-        assertEquals( "v", mavenDependency.getVersion() );
-        assertEquals( "c", mavenDependency.getClassifier() );
-        assertNull( mavenDependency.getType() );
-        assertEquals( "", mavenDependency.getScope() );
-    }
-
-    @Test
-    public void testScope()
-    {
-        Node node = new SonatypeAetherNode( newDependencyNode( "g:a:v", "s" ) );
-        
-        org.apache.maven.model.Dependency mavenDependency = node.getDependency();
-        
-        assertEquals( "g", mavenDependency.getGroupId()  );
-        assertEquals( "a", mavenDependency.getArtifactId()  );
-        assertEquals( "v", mavenDependency.getVersion() );
-        assertEquals( "", mavenDependency.getClassifier() );
-        assertNull( mavenDependency.getType() );
-        assertEquals( "s", mavenDependency.getScope() );
-    }
-    
-    @Test
-    public void testOptional()
-    {
-        Node node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null ) );
-        
-        assertEquals( "false", node.getDependency().getOptional()  );
-        assertFalse( node.getDependency().isOptional() );
-        
-        node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null, true ) );
-        assertEquals( "true", node.getDependency().getOptional()  );
-        assertTrue( node.getDependency().isOptional() );
-
-        node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null, false ) );
-        assertEquals( "false", node.getDependency().getOptional()  );
-        assertFalse( node.getDependency().isOptional() );
-    }
-
-    @Test
-    public void testExclusions()
-    {
-        Node node = new SonatypeAetherNode( newDependencyNode( "g:a:v", null, Collections.singletonList( "eg:ea" ) ) );
-        assertEquals( 1, node.getDependency().getExclusions().size() );
-        
-        org.apache.maven.model.Exclusion mavenExclusion = node.getDependency().getExclusions().get( 0 );
-        assertEquals( "eg", mavenExclusion.getGroupId() );
-        assertEquals( "ea", mavenExclusion.getArtifactId() );
-    }
-
-    private DependencyNode newDependencyNode( String string, String scope )
-    {
-        return new DefaultDependencyNode( new Dependency( new DefaultArtifact( string ), scope ) );
-    }
-    
-    private DependencyNode newDependencyNode( String coor, String scope, boolean optional )
-    {
-        return new DefaultDependencyNode( new Dependency( new DefaultArtifact( coor ), scope, optional ) );
-    }
-
-    private DependencyNode newDependencyNode( String coor, String scope, Collection<String> exclusions )
-    {
-        Dependency dependency = new Dependency( new DefaultArtifact( coor ), scope );
-        
-        Collection<Exclusion> aetherExclusions = new ArrayList<>( exclusions.size() );
-        for ( String exclusion : exclusions )
-        {
-            String[] ga = exclusion.split( ":" );
-            aetherExclusions.add( new Exclusion( ga[0], ga[1], null, null ) );
-        }
-        dependency = dependency.setExclusions( aetherExclusions );
-        
-        return new DefaultDependencyNode( dependency );
-    }
-}