You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2020/10/01 07:14:21 UTC

[maven-resolver] branch master updated: [MRESOLVER-109] AndDependencySelector should override toString

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

michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git


The following commit(s) were added to refs/heads/master by this push:
     new 21cf41f  [MRESOLVER-109] AndDependencySelector should override toString
21cf41f is described below

commit 21cf41fb2a59b8c5ccf5b790071083978d4a7a0d
Author: Michael Boyles <mi...@hotmail.co.uk>
AuthorDate: Sat Sep 12 14:39:41 2020 +0100

    [MRESOLVER-109] AndDependencySelector should override toString
    
    This closes #69
---
 .../util/graph/selector/AndDependencySelector.java | 18 ++++++++++
 .../selector/ExclusionDependencySelector.java      | 15 +++++++++
 .../graph/selector/OptionalDependencySelector.java |  6 ++++
 .../graph/selector/ScopeDependencySelector.java    |  8 +++++
 .../graph/selector/StaticDependencySelector.java   |  6 ++++
 .../graph/selector/AndDependencySelectorTest.java  | 15 +++++++++
 .../selector/ExclusionDependencySelectorTest.java  | 39 ++++++++++++++++++++++
 .../selector/OptionalDependencySelectorTest.java   | 36 ++++++++++++++++++++
 .../selector/ScopeDependencySelectorTest.java      | 38 +++++++++++++++++++++
 .../selector/StaticDependencySelectorTest.java     | 36 ++++++++++++++++++++
 10 files changed, 217 insertions(+)

diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java
index a99bb99..8b11c8a 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java
@@ -22,6 +22,7 @@ package org.eclipse.aether.util.graph.selector;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Set;
 
@@ -203,4 +204,21 @@ public final class AndDependencySelector
         return hashCode;
     }
 
+    @Override
+    public String toString()
+    {
+        StringBuilder builder = new StringBuilder().append( this.getClass().getSimpleName() ).append( '(' );
+        Iterator<? extends DependencySelector> iterator = this.selectors.iterator();
+        while ( iterator.hasNext() )
+        {
+            final DependencySelector selector = iterator.next();
+            builder.append( selector.toString() );
+            if ( iterator.hasNext() ) // not last
+            {
+                builder.append( " && " );
+            }
+        }
+        return builder.append( ')' ).toString();
+    }
+
 }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java
index 746313a..cd7def0 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java
@@ -190,6 +190,21 @@ public final class ExclusionDependencySelector
         return hashCode;
     }
 
+    @Override
+    public String toString()
+    {
+        StringBuilder builder = new StringBuilder().append( this.getClass().getSimpleName() ).append( '(' );
+        for ( int i = 0; i < this.exclusions.length; i++ )
+        {
+            builder.append( this.exclusions[i] );
+            if ( i < this.exclusions.length - 1 )
+            {
+                builder.append( ", " );
+            }
+        }
+        return builder.append( ')' ).toString();
+    }
+
     private static class ExclusionComparator
         implements Comparator<Exclusion>
     {
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/OptionalDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/OptionalDependencySelector.java
index 69bbda4..145484c 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/OptionalDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/OptionalDependencySelector.java
@@ -86,4 +86,10 @@ public final class OptionalDependencySelector
         return hash;
     }
 
+    @Override
+    public String toString()
+    {
+        return String.format( "%s(depth: %d)", this.getClass().getSimpleName(), this.depth );
+    }
+
 }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java
index 127fdf3..75a8fd6 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java
@@ -146,4 +146,12 @@ public final class ScopeDependencySelector
         return hash;
     }
 
+    @Override
+    public String toString()
+    {
+        return String.format(
+            "%s(included: %s, excluded: %s, transitive: %s)", getClass().getSimpleName(), included, excluded, transitive
+        );
+    }
+
 }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/StaticDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/StaticDependencySelector.java
index 41ce0e0..e3acc35 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/StaticDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/StaticDependencySelector.java
@@ -76,4 +76,10 @@ public final class StaticDependencySelector
         return hash;
     }
 
+    @Override
+    public String toString()
+    {
+        return String.format( "%s(%s)", this.getClass().getSimpleName(), this.select ? "Select all" : "Exclude all" );
+    }
+
 }
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/AndDependencySelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/AndDependencySelectorTest.java
index b0f2b09..3a6bb1b 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/AndDependencySelectorTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/AndDependencySelectorTest.java
@@ -65,6 +65,11 @@ public class AndDependencySelectorTest
             return child;
         }
 
+        @Override
+        public String toString()
+        {
+            return "Dummy(" + select + ')';
+        }
     }
 
     @Test
@@ -150,4 +155,14 @@ public class AndDependencySelectorTest
         assertEquals( selector1.hashCode(), selector2.hashCode() );
     }
 
+    @Test
+    public void testToString()
+    {
+        DependencySelector andSelector = new AndDependencySelector(
+            new DummyDependencySelector( true ),
+            new DummyDependencySelector( false )
+        );
+        assertEquals("AndDependencySelector(Dummy(true) && Dummy(false))", andSelector.toString());
+    }
+
 }
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelectorTest.java
new file mode 100644
index 0000000..67081ba
--- /dev/null
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelectorTest.java
@@ -0,0 +1,39 @@
+package org.eclipse.aether.util.graph.selector;
+
+/*
+ * 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.*;
+
+import org.eclipse.aether.graph.Exclusion;
+import org.junit.Test;
+
+import java.util.Collections;
+
+public class ExclusionDependencySelectorTest
+{
+    @Test
+    public void testToString()
+    {
+        assertEquals(
+            "ExclusionDependencySelector(a:b:d:c)",
+            new ExclusionDependencySelector( Collections.singletonList( new Exclusion("a", "b", "c", "d") ) ).toString()
+        );
+    }
+}
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/OptionalDependencySelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/OptionalDependencySelectorTest.java
new file mode 100644
index 0000000..b2c3708
--- /dev/null
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/OptionalDependencySelectorTest.java
@@ -0,0 +1,36 @@
+package org.eclipse.aether.util.graph.selector;
+
+/*
+ * 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.*;
+
+import org.junit.Test;
+
+public class OptionalDependencySelectorTest
+{
+    @Test
+    public void testToString()
+    {
+        assertEquals(
+            "OptionalDependencySelector(depth: 0)",
+            new OptionalDependencySelector().toString()
+        );
+    }
+}
\ No newline at end of file
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelectorTest.java
new file mode 100644
index 0000000..7d84258
--- /dev/null
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelectorTest.java
@@ -0,0 +1,38 @@
+package org.eclipse.aether.util.graph.selector;
+
+/*
+ * 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.*;
+
+import org.junit.Test;
+
+import java.util.Collections;
+
+public class ScopeDependencySelectorTest
+{
+    @Test
+    public void testToString()
+    {
+        assertEquals(
+            "ScopeDependencySelector(included: [foo], excluded: [bar], transitive: false)",
+            new ScopeDependencySelector(Collections.singleton( "foo" ), Collections.singleton( "bar" ) ).toString()
+        );
+    }
+}
\ No newline at end of file
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/StaticDependencySelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/StaticDependencySelectorTest.java
new file mode 100644
index 0000000..79ccce6
--- /dev/null
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/selector/StaticDependencySelectorTest.java
@@ -0,0 +1,36 @@
+package org.eclipse.aether.util.graph.selector;
+
+/*
+ * 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.*;
+
+import org.junit.Test;
+
+public class StaticDependencySelectorTest
+{
+    @Test
+    public void testToString()
+    {
+        assertEquals(
+            "StaticDependencySelector(Select all)",
+            new StaticDependencySelector( true ).toString()
+        );
+    }
+}
\ No newline at end of file