You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2016/09/03 20:23:30 UTC
[07/51] [partial] maven-aether git commit: [MNG-6007] rename Aether
to Maven Artifact Resolver
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java b/aether-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java
deleted file mode 100644
index 8eac55b..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package org.eclipse.aether.util.repository;
-
-/*
- * 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 java.io.IOException;
-import java.net.Authenticator;
-import java.net.InetSocketAddress;
-import java.net.PasswordAuthentication;
-import java.net.SocketAddress;
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.repository.Authentication;
-import org.eclipse.aether.repository.AuthenticationContext;
-import org.eclipse.aether.repository.Proxy;
-import org.eclipse.aether.repository.ProxySelector;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class JreProxySelectorTest
-{
-
- private abstract class AbstractProxySelector
- extends java.net.ProxySelector
- {
- @Override
- public void connectFailed( URI uri, SocketAddress sa, IOException ioe )
- {
- }
- }
-
- private ProxySelector selector = new JreProxySelector();
-
- private java.net.ProxySelector original;
-
- @Before
- public void init()
- {
- original = java.net.ProxySelector.getDefault();
- }
-
- @After
- public void exit()
- {
- java.net.ProxySelector.setDefault( original );
- Authenticator.setDefault( null );
- }
-
- @Test
- public void testGetProxy_InvalidUrl()
- throws Exception
- {
- RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://host:invalid" ).build();
- assertNull( selector.getProxy( repo ) );
- }
-
- @Test
- public void testGetProxy_OpaqueUrl()
- throws Exception
- {
- RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "classpath:base" ).build();
- assertNull( selector.getProxy( repo ) );
- }
-
- @Test
- public void testGetProxy_NullSelector()
- throws Exception
- {
- RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://repo.eclipse.org/" ).build();
- java.net.ProxySelector.setDefault( null );
- assertNull( selector.getProxy( repo ) );
- }
-
- @Test
- public void testGetProxy_NoProxies()
- throws Exception
- {
- RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://repo.eclipse.org/" ).build();
- java.net.ProxySelector.setDefault( new AbstractProxySelector()
- {
- @Override
- public List<java.net.Proxy> select( URI uri )
- {
- return Collections.emptyList();
- }
-
- } );
- assertNull( selector.getProxy( repo ) );
- }
-
- @Test
- public void testGetProxy_DirectProxy()
- throws Exception
- {
- RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://repo.eclipse.org/" ).build();
- final InetSocketAddress addr = InetSocketAddress.createUnresolved( "proxy", 8080 );
- java.net.ProxySelector.setDefault( new AbstractProxySelector()
- {
- @Override
- public List<java.net.Proxy> select( URI uri )
- {
- return Arrays.asList( java.net.Proxy.NO_PROXY, new java.net.Proxy( java.net.Proxy.Type.HTTP, addr ) );
- }
-
- } );
- assertNull( selector.getProxy( repo ) );
- }
-
- @Test
- public void testGetProxy_HttpProxy()
- throws Exception
- {
- final RemoteRepository repo =
- new RemoteRepository.Builder( "test", "default", "http://repo.eclipse.org/" ).build();
- final URL url = new URL( repo.getUrl() );
- final InetSocketAddress addr = InetSocketAddress.createUnresolved( "proxy", 8080 );
- java.net.ProxySelector.setDefault( new AbstractProxySelector()
- {
- @Override
- public List<java.net.Proxy> select( URI uri )
- {
- if ( repo.getHost().equalsIgnoreCase( uri.getHost() ) )
- {
- return Arrays.asList( new java.net.Proxy( java.net.Proxy.Type.HTTP, addr ) );
- }
- return Collections.emptyList();
- }
-
- } );
- Authenticator.setDefault( new Authenticator()
- {
- @Override
- protected PasswordAuthentication getPasswordAuthentication()
- {
- if ( Authenticator.RequestorType.PROXY.equals( getRequestorType() )
- && addr.getHostName().equals( getRequestingHost() ) && addr.getPort() == getRequestingPort()
- && url.equals( getRequestingURL() ) )
- {
- return new PasswordAuthentication( "proxyuser", "proxypass".toCharArray() );
- }
- return super.getPasswordAuthentication();
- }
- } );
-
- Proxy proxy = selector.getProxy( repo );
- assertNotNull( proxy );
- assertEquals( addr.getHostName(), proxy.getHost() );
- assertEquals( addr.getPort(), proxy.getPort() );
- assertEquals( Proxy.TYPE_HTTP, proxy.getType() );
-
- RemoteRepository repo2 = new RemoteRepository.Builder( repo ).setProxy( proxy ).build();
- Authentication auth = proxy.getAuthentication();
- assertNotNull( auth );
- AuthenticationContext authCtx = AuthenticationContext.forProxy( new DefaultRepositorySystemSession(), repo2 );
- assertEquals( "proxyuser", authCtx.get( AuthenticationContext.USERNAME ) );
- assertEquals( "proxypass", authCtx.get( AuthenticationContext.PASSWORD ) );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/repository/SecretAuthenticationTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/repository/SecretAuthenticationTest.java b/aether-util/src/test/java/org/eclipse/aether/util/repository/SecretAuthenticationTest.java
deleted file mode 100644
index df4afaf..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/repository/SecretAuthenticationTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package org.eclipse.aether.util.repository;
-
-/*
- * 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.DefaultRepositorySystemSession;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.Authentication;
-import org.eclipse.aether.repository.AuthenticationContext;
-import org.eclipse.aether.repository.AuthenticationDigest;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.junit.Test;
-
-public class SecretAuthenticationTest
-{
-
- private RepositorySystemSession newSession()
- {
- return new DefaultRepositorySystemSession();
- }
-
- private RemoteRepository newRepo( Authentication auth )
- {
- return new RemoteRepository.Builder( "test", "default", "http://localhost" ).setAuthentication( auth ).build();
- }
-
- private AuthenticationContext newContext( Authentication auth )
- {
- return AuthenticationContext.forRepository( newSession(), newRepo( auth ) );
- }
-
- private String newDigest( Authentication auth )
- {
- return AuthenticationDigest.forRepository( newSession(), newRepo( auth ) );
- }
-
- @Test
- public void testConstructor_CopyChars()
- {
- char[] value = { 'v', 'a', 'l' };
- new SecretAuthentication( "key", value );
- assertArrayEquals( new char[] { 'v', 'a', 'l' }, value );
- }
-
- @Test
- public void testFill()
- {
- Authentication auth = new SecretAuthentication( "key", "value" );
- AuthenticationContext context = newContext( auth );
- assertEquals( null, context.get( "another-key" ) );
- assertEquals( "value", context.get( "key" ) );
- }
-
- @Test
- public void testDigest()
- {
- Authentication auth1 = new SecretAuthentication( "key", "value" );
- Authentication auth2 = new SecretAuthentication( "key", "value" );
- String digest1 = newDigest( auth1 );
- String digest2 = newDigest( auth2 );
- assertEquals( digest1, digest2 );
-
- Authentication auth3 = new SecretAuthentication( "key", "Value" );
- String digest3 = newDigest( auth3 );
- assertFalse( digest3.equals( digest1 ) );
-
- Authentication auth4 = new SecretAuthentication( "Key", "value" );
- String digest4 = newDigest( auth4 );
- assertFalse( digest4.equals( digest1 ) );
- }
-
- @Test
- public void testEquals()
- {
- Authentication auth1 = new SecretAuthentication( "key", "value" );
- Authentication auth2 = new SecretAuthentication( "key", "value" );
- Authentication auth3 = new SecretAuthentication( "key", "Value" );
- assertEquals( auth1, auth2 );
- assertFalse( auth1.equals( auth3 ) );
- assertFalse( auth1.equals( null ) );
- }
-
- @Test
- public void testHashCode()
- {
- Authentication auth1 = new SecretAuthentication( "key", "value" );
- Authentication auth2 = new SecretAuthentication( "key", "value" );
- assertEquals( auth1.hashCode(), auth2.hashCode() );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/repository/StringAuthenticationTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/repository/StringAuthenticationTest.java b/aether-util/src/test/java/org/eclipse/aether/util/repository/StringAuthenticationTest.java
deleted file mode 100644
index 8f89299..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/repository/StringAuthenticationTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.eclipse.aether.util.repository;
-
-/*
- * 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.DefaultRepositorySystemSession;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.Authentication;
-import org.eclipse.aether.repository.AuthenticationContext;
-import org.eclipse.aether.repository.AuthenticationDigest;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.junit.Test;
-
-public class StringAuthenticationTest
-{
-
- private RepositorySystemSession newSession()
- {
- return new DefaultRepositorySystemSession();
- }
-
- private RemoteRepository newRepo( Authentication auth )
- {
- return new RemoteRepository.Builder( "test", "default", "http://localhost" ).setAuthentication( auth ).build();
- }
-
- private AuthenticationContext newContext( Authentication auth )
- {
- return AuthenticationContext.forRepository( newSession(), newRepo( auth ) );
- }
-
- private String newDigest( Authentication auth )
- {
- return AuthenticationDigest.forRepository( newSession(), newRepo( auth ) );
- }
-
- @Test
- public void testFill()
- {
- Authentication auth = new StringAuthentication( "key", "value" );
- AuthenticationContext context = newContext( auth );
- assertEquals( null, context.get( "another-key" ) );
- assertEquals( "value", context.get( "key" ) );
- }
-
- @Test
- public void testDigest()
- {
- Authentication auth1 = new StringAuthentication( "key", "value" );
- Authentication auth2 = new StringAuthentication( "key", "value" );
- String digest1 = newDigest( auth1 );
- String digest2 = newDigest( auth2 );
- assertEquals( digest1, digest2 );
-
- Authentication auth3 = new StringAuthentication( "key", "Value" );
- String digest3 = newDigest( auth3 );
- assertFalse( digest3.equals( digest1 ) );
-
- Authentication auth4 = new StringAuthentication( "Key", "value" );
- String digest4 = newDigest( auth4 );
- assertFalse( digest4.equals( digest1 ) );
- }
-
- @Test
- public void testEquals()
- {
- Authentication auth1 = new StringAuthentication( "key", "value" );
- Authentication auth2 = new StringAuthentication( "key", "value" );
- Authentication auth3 = new StringAuthentication( "key", "Value" );
- assertEquals( auth1, auth2 );
- assertFalse( auth1.equals( auth3 ) );
- assertFalse( auth1.equals( null ) );
- }
-
- @Test
- public void testHashCode()
- {
- Authentication auth1 = new StringAuthentication( "key", "value" );
- Authentication auth2 = new StringAuthentication( "key", "value" );
- assertEquals( auth1.hashCode(), auth2.hashCode() );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/version/AbstractVersionTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/version/AbstractVersionTest.java b/aether-util/src/test/java/org/eclipse/aether/util/version/AbstractVersionTest.java
deleted file mode 100644
index 52541db..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/version/AbstractVersionTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.aether.util.version;
-
-/*
- * 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.assertEquals;
-
-import org.eclipse.aether.version.Version;
-
-/**
- */
-abstract class AbstractVersionTest
-{
-
- protected static final int X_LT_Y = -1;
-
- protected static final int X_EQ_Y = 0;
-
- protected static final int X_GT_Y = 1;
-
- protected abstract Version newVersion( String version );
-
- protected void assertOrder( int expected, String version1, String version2 )
- {
- Version v1 = newVersion( version1 );
- Version v2 = newVersion( version2 );
-
- if ( expected > 0 )
- {
- assertEquals( "expected " + v1 + " > " + v2, 1, Integer.signum( v1.compareTo( v2 ) ) );
- assertEquals( "expected " + v2 + " < " + v1, -1, Integer.signum( v2.compareTo( v1 ) ) );
- assertEquals( "expected " + v1 + " != " + v2, false, v1.equals( v2 ) );
- assertEquals( "expected " + v2 + " != " + v1, false, v2.equals( v1 ) );
- }
- else if ( expected < 0 )
- {
- assertEquals( "expected " + v1 + " < " + v2, -1, Integer.signum( v1.compareTo( v2 ) ) );
- assertEquals( "expected " + v2 + " > " + v1, 1, Integer.signum( v2.compareTo( v1 ) ) );
- assertEquals( "expected " + v1 + " != " + v2, false, v1.equals( v2 ) );
- assertEquals( "expected " + v2 + " != " + v1, false, v2.equals( v1 ) );
- }
- else
- {
- assertEquals( "expected " + v1 + " == " + v2, 0, v1.compareTo( v2 ) );
- assertEquals( "expected " + v2 + " == " + v1, 0, v2.compareTo( v1 ) );
- assertEquals( "expected " + v1 + " == " + v2, true, v1.equals( v2 ) );
- assertEquals( "expected " + v2 + " == " + v1, true, v2.equals( v1 ) );
- assertEquals( "expected #(" + v1 + ") == #(" + v1 + ")", v1.hashCode(), v2.hashCode() );
- }
- }
-
- protected void assertSequence( String... versions )
- {
- for ( int i = 0; i < versions.length - 1; i++ )
- {
- for ( int j = i + 1; j < versions.length; j++ )
- {
- assertOrder( X_LT_Y, versions[i], versions[j] );
- }
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java b/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java
deleted file mode 100644
index 85d007f..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package org.eclipse.aether.util.version;
-
-/*
- * 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.util.version.GenericVersion;
-import org.eclipse.aether.util.version.GenericVersionRange;
-import org.eclipse.aether.version.InvalidVersionSpecificationException;
-import org.eclipse.aether.version.Version;
-import org.eclipse.aether.version.VersionRange;
-import org.junit.Test;
-
-public class GenericVersionRangeTest
-{
-
- private Version newVersion( String version )
- {
- return new GenericVersion( version );
- }
-
- private VersionRange parseValid( String range )
- {
- try
- {
- return new GenericVersionRange( range );
- }
- catch ( InvalidVersionSpecificationException e )
- {
- AssertionError error =
- new AssertionError( range + " should be valid but failed to parse due to: " + e.getMessage() );
- error.initCause( e );
- throw error;
- }
- }
-
- private void parseInvalid( String range )
- {
- try
- {
- new GenericVersionRange( range );
- fail( range + " should be invalid" );
- }
- catch ( InvalidVersionSpecificationException e )
- {
- assertTrue( true );
- }
- }
-
- private void assertContains( VersionRange range, String version )
- {
- assertTrue( range + " should contain " + version, range.containsVersion( newVersion( version ) ) );
- }
-
- private void assertNotContains( VersionRange range, String version )
- {
- assertFalse( range + " should not contain " + version, range.containsVersion( newVersion( version ) ) );
- }
-
- @Test
- public void testLowerBoundInclusiveUpperBoundInclusive()
- {
- VersionRange range = parseValid( "[1,2]" );
- assertContains( range, "1" );
- assertContains( range, "1.1-SNAPSHOT" );
- assertContains( range, "2" );
- assertEquals( range, parseValid( range.toString() ) );
- }
-
- @Test
- public void testLowerBoundInclusiveUpperBoundExclusive()
- {
- VersionRange range = parseValid( "[1.2.3.4.5,1.2.3.4.6)" );
- assertContains( range, "1.2.3.4.5" );
- assertNotContains( range, "1.2.3.4.6" );
- assertEquals( range, parseValid( range.toString() ) );
- }
-
- @Test
- public void testLowerBoundExclusiveUpperBoundInclusive()
- {
- VersionRange range = parseValid( "(1a,1b]" );
- assertNotContains( range, "1a" );
- assertContains( range, "1b" );
- assertEquals( range, parseValid( range.toString() ) );
- }
-
- @Test
- public void testLowerBoundExclusiveUpperBoundExclusive()
- {
- VersionRange range = parseValid( "(1,3)" );
- assertNotContains( range, "1" );
- assertContains( range, "2-SNAPSHOT" );
- assertNotContains( range, "3" );
- assertEquals( range, parseValid( range.toString() ) );
- }
-
- @Test
- public void testSingleVersion()
- {
- VersionRange range = parseValid( "[1]" );
- assertContains( range, "1" );
- assertEquals( range, parseValid( range.toString() ) );
-
- range = parseValid( "[1,1]" );
- assertContains( range, "1" );
- assertEquals( range, parseValid( range.toString() ) );
- }
-
- @Test
- public void testSingleWildcardVersion()
- {
- VersionRange range = parseValid( "[1.2.*]" );
- assertContains( range, "1.2-alpha-1" );
- assertContains( range, "1.2-SNAPSHOT" );
- assertContains( range, "1.2" );
- assertContains( range, "1.2.9999999" );
- assertNotContains( range, "1.3-rc-1" );
- assertEquals( range, parseValid( range.toString() ) );
- }
-
- @Test
- public void testMissingOpenCloseDelimiter()
- {
- parseInvalid( "1.0" );
- }
-
- @Test
- public void testMissingOpenDelimiter()
- {
- parseInvalid( "1.0]" );
- parseInvalid( "1.0)" );
- }
-
- @Test
- public void testMissingCloseDelimiter()
- {
- parseInvalid( "[1.0" );
- parseInvalid( "(1.0" );
- }
-
- @Test
- public void testTooManyVersions()
- {
- parseInvalid( "[1,2,3]" );
- parseInvalid( "(1,2,3)" );
- parseInvalid( "[1,2,3)" );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java b/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java
deleted file mode 100644
index f52f73d..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package org.eclipse.aether.util.version;
-
-/*
- * 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.util.version.GenericVersion;
-import org.eclipse.aether.util.version.GenericVersionScheme;
-import org.eclipse.aether.version.InvalidVersionSpecificationException;
-import org.eclipse.aether.version.VersionConstraint;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- */
-public class GenericVersionSchemeTest
-{
-
- private GenericVersionScheme scheme;
-
- @Before
- public void setUp()
- throws Exception
- {
- scheme = new GenericVersionScheme();
- }
-
- private InvalidVersionSpecificationException parseInvalid( String constraint )
- {
- try
- {
- scheme.parseVersionConstraint( constraint );
- fail( "expected exception for constraint " + constraint );
- return null;
- }
- catch ( InvalidVersionSpecificationException e )
- {
- return e;
- }
- }
-
- @Test
- public void testEnumeratedVersions()
- throws InvalidVersionSpecificationException
- {
- VersionConstraint c = scheme.parseVersionConstraint( "1.0" );
- assertEquals( "1.0", c.getVersion().toString() );
- assertTrue( c.containsVersion( new GenericVersion( "1.0" ) ) );
-
- c = scheme.parseVersionConstraint( "[1.0]" );
- assertEquals( null, c.getVersion() );
- assertTrue( c.containsVersion( new GenericVersion( "1.0" ) ) );
-
- c = scheme.parseVersionConstraint( "[1.0],[2.0]" );
- assertTrue( c.containsVersion( new GenericVersion( "1.0" ) ) );
- assertTrue( c.containsVersion( new GenericVersion( "2.0" ) ) );
-
- c = scheme.parseVersionConstraint( "[1.0],[2.0],[3.0]" );
- assertContains( c, "1.0", "2.0", "3.0" );
- assertNotContains( c, "1.5" );
-
- c = scheme.parseVersionConstraint( "[1,3),(3,5)" );
- assertContains( c, "1", "2", "4" );
- assertNotContains( c, "3", "5" );
-
- c = scheme.parseVersionConstraint( "[1,3),(3,)" );
- assertContains( c, "1", "2", "4" );
- assertNotContains( c, "3" );
- }
-
- private void assertNotContains( VersionConstraint c, String... versions )
- {
- assertContains( String.format( "%s: %%s should not be contained\n", c.toString() ), c, false, versions );
- }
-
- private void assertContains( String msg, VersionConstraint c, boolean b, String... versions )
- {
- for ( String v : versions )
- {
- assertEquals( String.format( msg, v ), b, c.containsVersion( new GenericVersion( v ) ) );
- }
- }
-
- private void assertContains( VersionConstraint c, String... versions )
- {
- assertContains( String.format( "%s: %%s should be contained\n", c.toString() ), c, true, versions );
- }
-
- @Test
- public void testInvalid()
- {
- parseInvalid( "[1," );
- parseInvalid( "[1,2],(3," );
- parseInvalid( "[1,2],3" );
- }
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionTest.java b/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionTest.java
deleted file mode 100644
index ae891af..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/version/GenericVersionTest.java
+++ /dev/null
@@ -1,345 +0,0 @@
-package org.eclipse.aether.util.version;
-
-/*
- * 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.Locale;
-
-import org.eclipse.aether.util.version.GenericVersion;
-import org.eclipse.aether.version.Version;
-import org.junit.Test;
-
-/**
- */
-public class GenericVersionTest
- extends AbstractVersionTest
-{
-
- protected Version newVersion( String version )
- {
- return new GenericVersion( version );
- }
-
- @Test
- public void testEmptyVersion()
- {
- assertOrder( X_EQ_Y, "0", "" );
- }
-
- @Test
- public void testNumericOrdering()
- {
- assertOrder( X_LT_Y, "2", "10" );
- assertOrder( X_LT_Y, "1.2", "1.10" );
- assertOrder( X_LT_Y, "1.0.2", "1.0.10" );
- assertOrder( X_LT_Y, "1.0.0.2", "1.0.0.10" );
- assertOrder( X_LT_Y, "1.0.20101206.111434.1", "1.0.20101206.111435.1" );
- assertOrder( X_LT_Y, "1.0.20101206.111434.2", "1.0.20101206.111434.10" );
- }
-
- @Test
- public void testDelimiters()
- {
- assertOrder( X_EQ_Y, "1.0", "1-0" );
- assertOrder( X_EQ_Y, "1.0", "1_0" );
- assertOrder( X_EQ_Y, "1.a", "1a" );
- }
-
- @Test
- public void testLeadingZerosAreSemanticallyIrrelevant()
- {
- assertOrder( X_EQ_Y, "1", "01" );
- assertOrder( X_EQ_Y, "1.2", "1.002" );
- assertOrder( X_EQ_Y, "1.2.3", "1.2.0003" );
- assertOrder( X_EQ_Y, "1.2.3.4", "1.2.3.00004" );
- }
-
- @Test
- public void testTrailingZerosAreSemanticallyIrrelevant()
- {
- assertOrder( X_EQ_Y, "1", "1.0.0.0.0.0.0.0.0.0.0.0.0.0" );
- assertOrder( X_EQ_Y, "1", "1-0-0-0-0-0-0-0-0-0-0-0-0-0" );
- assertOrder( X_EQ_Y, "1", "1.0-0.0-0.0-0.0-0.0-0.0-0.0" );
- assertOrder( X_EQ_Y, "1", "1.0000000000000" );
- assertOrder( X_EQ_Y, "1.0", "1.0.0" );
- }
-
- @Test
- public void testTrailingZerosBeforeQualifierAreSemanticallyIrrelevant()
- {
- assertOrder( X_EQ_Y, "1.0-ga", "1.0.0-ga" );
- assertOrder( X_EQ_Y, "1.0.ga", "1.0.0.ga" );
- assertOrder( X_EQ_Y, "1.0ga", "1.0.0ga" );
-
- assertOrder( X_EQ_Y, "1.0-alpha", "1.0.0-alpha" );
- assertOrder( X_EQ_Y, "1.0.alpha", "1.0.0.alpha" );
- assertOrder( X_EQ_Y, "1.0alpha", "1.0.0alpha" );
- assertOrder( X_EQ_Y, "1.0-alpha-snapshot", "1.0.0-alpha-snapshot" );
- assertOrder( X_EQ_Y, "1.0.alpha.snapshot", "1.0.0.alpha.snapshot" );
-
- assertOrder( X_EQ_Y, "1.x.0-alpha", "1.x.0.0-alpha" );
- assertOrder( X_EQ_Y, "1.x.0.alpha", "1.x.0.0.alpha" );
- assertOrder( X_EQ_Y, "1.x.0-alpha-snapshot", "1.x.0.0-alpha-snapshot" );
- assertOrder( X_EQ_Y, "1.x.0.alpha.snapshot", "1.x.0.0.alpha.snapshot" );
- }
-
- @Test
- public void testTrailingDelimitersAreSemanticallyIrrelevant()
- {
- assertOrder( X_EQ_Y, "1", "1............." );
- assertOrder( X_EQ_Y, "1", "1-------------" );
- assertOrder( X_EQ_Y, "1.0", "1............." );
- assertOrder( X_EQ_Y, "1.0", "1-------------" );
- }
-
- @Test
- public void testInitialDelimiters()
- {
- assertOrder( X_EQ_Y, "0.1", ".1" );
- assertOrder( X_EQ_Y, "0.0.1", "..1" );
- assertOrder( X_EQ_Y, "0.1", "-1" );
- assertOrder( X_EQ_Y, "0.0.1", "--1" );
- }
-
- @Test
- public void testConsecutiveDelimiters()
- {
- assertOrder( X_EQ_Y, "1.0.1", "1..1" );
- assertOrder( X_EQ_Y, "1.0.0.1", "1...1" );
- assertOrder( X_EQ_Y, "1.0.1", "1--1" );
- assertOrder( X_EQ_Y, "1.0.0.1", "1---1" );
- }
-
- @Test
- public void testUnlimitedNumberOfVersionComponents()
- {
- assertOrder( X_GT_Y, "1.0.1.2.3.4.5.6.7.8.9.0.1.2.10", "1.0.1.2.3.4.5.6.7.8.9.0.1.2.3" );
- }
-
- @Test
- public void testUnlimitedNumberOfDigitsInNumericComponent()
- {
- assertOrder( X_GT_Y, "1.1234567890123456789012345678901", "1.123456789012345678901234567891" );
- }
-
- @Test
- public void testTransitionFromDigitToLetterAndViceVersaIsEqualivantToDelimiter()
- {
- assertOrder( X_EQ_Y, "1alpha10", "1.alpha.10" );
- assertOrder( X_EQ_Y, "1alpha10", "1-alpha-10" );
-
- assertOrder( X_GT_Y, "1.alpha10", "1.alpha2" );
- assertOrder( X_GT_Y, "10alpha", "1alpha" );
- }
-
- @Test
- public void testWellKnownQualifierOrdering()
- {
- assertOrder( X_EQ_Y, "1-alpha1", "1-a1" );
- assertOrder( X_LT_Y, "1-alpha", "1-beta" );
- assertOrder( X_EQ_Y, "1-beta1", "1-b1" );
- assertOrder( X_LT_Y, "1-beta", "1-milestone" );
- assertOrder( X_EQ_Y, "1-milestone1", "1-m1" );
- assertOrder( X_LT_Y, "1-milestone", "1-rc" );
- assertOrder( X_EQ_Y, "1-rc", "1-cr" );
- assertOrder( X_LT_Y, "1-rc", "1-snapshot" );
- assertOrder( X_LT_Y, "1-snapshot", "1" );
- assertOrder( X_EQ_Y, "1", "1-ga" );
- assertOrder( X_EQ_Y, "1", "1.ga.0.ga" );
- assertOrder( X_EQ_Y, "1.0", "1-ga" );
- assertOrder( X_EQ_Y, "1", "1-ga.ga" );
- assertOrder( X_EQ_Y, "1", "1-ga-ga" );
- assertOrder( X_EQ_Y, "A", "A.ga.ga" );
- assertOrder( X_EQ_Y, "A", "A-ga-ga" );
- assertOrder( X_EQ_Y, "1", "1-final" );
- assertOrder( X_LT_Y, "1", "1-sp" );
-
- assertOrder( X_LT_Y, "A.rc.1", "A.ga.1" );
- assertOrder( X_GT_Y, "A.sp.1", "A.ga.1" );
- assertOrder( X_LT_Y, "A.rc.x", "A.ga.x" );
- assertOrder( X_GT_Y, "A.sp.x", "A.ga.x" );
- }
-
- @Test
- public void testWellKnownQualifierVersusUnknownQualifierOrdering()
- {
- assertOrder( X_GT_Y, "1-abc", "1-alpha" );
- assertOrder( X_GT_Y, "1-abc", "1-beta" );
- assertOrder( X_GT_Y, "1-abc", "1-milestone" );
- assertOrder( X_GT_Y, "1-abc", "1-rc" );
- assertOrder( X_GT_Y, "1-abc", "1-snapshot" );
- assertOrder( X_GT_Y, "1-abc", "1" );
- assertOrder( X_GT_Y, "1-abc", "1-sp" );
- }
-
- @Test
- public void testWellKnownSingleCharQualifiersOnlyRecognizedIfImmediatelyFollowedByNumber()
- {
- assertOrder( X_GT_Y, "1.0a", "1.0" );
- assertOrder( X_GT_Y, "1.0-a", "1.0" );
- assertOrder( X_GT_Y, "1.0.a", "1.0" );
- assertOrder( X_GT_Y, "1.0b", "1.0" );
- assertOrder( X_GT_Y, "1.0-b", "1.0" );
- assertOrder( X_GT_Y, "1.0.b", "1.0" );
- assertOrder( X_GT_Y, "1.0m", "1.0" );
- assertOrder( X_GT_Y, "1.0-m", "1.0" );
- assertOrder( X_GT_Y, "1.0.m", "1.0" );
-
- assertOrder( X_LT_Y, "1.0a1", "1.0" );
- assertOrder( X_LT_Y, "1.0-a1", "1.0" );
- assertOrder( X_LT_Y, "1.0.a1", "1.0" );
- assertOrder( X_LT_Y, "1.0b1", "1.0" );
- assertOrder( X_LT_Y, "1.0-b1", "1.0" );
- assertOrder( X_LT_Y, "1.0.b1", "1.0" );
- assertOrder( X_LT_Y, "1.0m1", "1.0" );
- assertOrder( X_LT_Y, "1.0-m1", "1.0" );
- assertOrder( X_LT_Y, "1.0.m1", "1.0" );
-
- assertOrder( X_GT_Y, "1.0a.1", "1.0" );
- assertOrder( X_GT_Y, "1.0a-1", "1.0" );
- assertOrder( X_GT_Y, "1.0b.1", "1.0" );
- assertOrder( X_GT_Y, "1.0b-1", "1.0" );
- assertOrder( X_GT_Y, "1.0m.1", "1.0" );
- assertOrder( X_GT_Y, "1.0m-1", "1.0" );
- }
-
- @Test
- public void testUnknownQualifierOrdering()
- {
- assertOrder( X_LT_Y, "1-abc", "1-abcd" );
- assertOrder( X_LT_Y, "1-abc", "1-bcd" );
- assertOrder( X_GT_Y, "1-abc", "1-aac" );
- }
-
- @Test
- public void testCaseInsensitiveOrderingOfQualifiers()
- {
- assertOrder( X_EQ_Y, "1.alpha", "1.ALPHA" );
- assertOrder( X_EQ_Y, "1.alpha", "1.Alpha" );
-
- assertOrder( X_EQ_Y, "1.beta", "1.BETA" );
- assertOrder( X_EQ_Y, "1.beta", "1.Beta" );
-
- assertOrder( X_EQ_Y, "1.milestone", "1.MILESTONE" );
- assertOrder( X_EQ_Y, "1.milestone", "1.Milestone" );
-
- assertOrder( X_EQ_Y, "1.rc", "1.RC" );
- assertOrder( X_EQ_Y, "1.rc", "1.Rc" );
- assertOrder( X_EQ_Y, "1.cr", "1.CR" );
- assertOrder( X_EQ_Y, "1.cr", "1.Cr" );
-
- assertOrder( X_EQ_Y, "1.snapshot", "1.SNAPSHOT" );
- assertOrder( X_EQ_Y, "1.snapshot", "1.Snapshot" );
-
- assertOrder( X_EQ_Y, "1.ga", "1.GA" );
- assertOrder( X_EQ_Y, "1.ga", "1.Ga" );
- assertOrder( X_EQ_Y, "1.final", "1.FINAL" );
- assertOrder( X_EQ_Y, "1.final", "1.Final" );
-
- assertOrder( X_EQ_Y, "1.sp", "1.SP" );
- assertOrder( X_EQ_Y, "1.sp", "1.Sp" );
-
- assertOrder( X_EQ_Y, "1.unknown", "1.UNKNOWN" );
- assertOrder( X_EQ_Y, "1.unknown", "1.Unknown" );
- }
-
- @Test
- public void testCaseInsensitiveOrderingOfQualifiersIsLocaleIndependent()
- {
- Locale orig = Locale.getDefault();
- try
- {
- Locale[] locales = { Locale.ENGLISH, new Locale( "tr" ) };
- for ( Locale locale : locales )
- {
- Locale.setDefault( locale );
- assertOrder( X_EQ_Y, "1-abcdefghijklmnopqrstuvwxyz", "1-ABCDEFGHIJKLMNOPQRSTUVWXYZ" );
- }
- }
- finally
- {
- Locale.setDefault( orig );
- }
- }
-
- @Test
- public void testQualifierVersusNumberOrdering()
- {
- assertOrder( X_LT_Y, "1-ga", "1-1" );
- assertOrder( X_LT_Y, "1.ga", "1.1" );
- assertOrder( X_EQ_Y, "1-ga", "1.0" );
- assertOrder( X_EQ_Y, "1.ga", "1.0" );
-
- assertOrder( X_LT_Y, "1-ga-1", "1-0-1" );
- assertOrder( X_LT_Y, "1.ga.1", "1.0.1" );
-
- assertOrder( X_GT_Y, "1.sp", "1.0" );
- assertOrder( X_LT_Y, "1.sp", "1.1" );
-
- assertOrder( X_LT_Y, "1-abc", "1-1" );
- assertOrder( X_LT_Y, "1.abc", "1.1" );
-
- assertOrder( X_LT_Y, "1-xyz", "1-1" );
- assertOrder( X_LT_Y, "1.xyz", "1.1" );
- }
-
- @Test
- public void testVersionEvolution()
- {
- assertSequence( "0.9.9-SNAPSHOT", "0.9.9", "0.9.10-SNAPSHOT", "0.9.10", "1.0-alpha-2-SNAPSHOT", "1.0-alpha-2",
- "1.0-alpha-10-SNAPSHOT", "1.0-alpha-10", "1.0-beta-1-SNAPSHOT", "1.0-beta-1",
- "1.0-rc-1-SNAPSHOT", "1.0-rc-1", "1.0-SNAPSHOT", "1.0", "1.0-sp-1-SNAPSHOT", "1.0-sp-1",
- "1.0.1-alpha-1-SNAPSHOT", "1.0.1-alpha-1", "1.0.1-beta-1-SNAPSHOT", "1.0.1-beta-1",
- "1.0.1-rc-1-SNAPSHOT", "1.0.1-rc-1", "1.0.1-SNAPSHOT", "1.0.1", "1.1-SNAPSHOT", "1.1" );
-
- assertSequence( "1.0-alpha", "1.0", "1.0-1" );
- assertSequence( "1.0.alpha", "1.0", "1.0-1" );
- assertSequence( "1.0-alpha", "1.0", "1.0.1" );
- assertSequence( "1.0.alpha", "1.0", "1.0.1" );
- }
-
- @Test
- public void testMinimumSegment()
- {
- assertOrder( X_LT_Y, "1.min", "1.0-alpha-1" );
- assertOrder( X_LT_Y, "1.min", "1.0-SNAPSHOT" );
- assertOrder( X_LT_Y, "1.min", "1.0" );
- assertOrder( X_LT_Y, "1.min", "1.9999999999" );
-
- assertOrder( X_EQ_Y, "1.min", "1.MIN" );
-
- assertOrder( X_GT_Y, "1.min", "0.99999" );
- assertOrder( X_GT_Y, "1.min", "0.max" );
- }
-
- @Test
- public void testMaximumSegment()
- {
- assertOrder( X_GT_Y, "1.max", "1.0-alpha-1" );
- assertOrder( X_GT_Y, "1.max", "1.0-SNAPSHOT" );
- assertOrder( X_GT_Y, "1.max", "1.0" );
- assertOrder( X_GT_Y, "1.max", "1.9999999999" );
-
- assertOrder( X_EQ_Y, "1.max", "1.MAX" );
-
- assertOrder( X_LT_Y, "1.max", "2.0-alpha-1" );
- assertOrder( X_LT_Y, "1.max", "2.min" );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/java/org/eclipse/aether/util/version/UnionVersionRangeTest.java
----------------------------------------------------------------------
diff --git a/aether-util/src/test/java/org/eclipse/aether/util/version/UnionVersionRangeTest.java b/aether-util/src/test/java/org/eclipse/aether/util/version/UnionVersionRangeTest.java
deleted file mode 100644
index 570b6b7..0000000
--- a/aether-util/src/test/java/org/eclipse/aether/util/version/UnionVersionRangeTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.eclipse.aether.util.version;
-
-/*
- * 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 java.util.Collections;
-
-import org.eclipse.aether.version.InvalidVersionSpecificationException;
-import org.eclipse.aether.version.VersionRange;
-import org.junit.Test;
-
-public class UnionVersionRangeTest
-{
-
- private VersionRange newRange( String range )
- {
- try
- {
- return new GenericVersionScheme().parseVersionRange( range );
- }
- catch ( InvalidVersionSpecificationException e )
- {
- throw new IllegalArgumentException( e );
- }
- }
-
- private void assertBound( String version, boolean inclusive, VersionRange.Bound bound )
- {
- if ( version == null )
- {
- assertNull( bound );
- }
- else
- {
- assertNotNull( bound );
- assertNotNull( bound.getVersion() );
- assertEquals( inclusive, bound.isInclusive() );
- try
- {
- assertEquals( new GenericVersionScheme().parseVersion( version ), bound.getVersion() );
- }
- catch ( InvalidVersionSpecificationException e )
- {
- throw new IllegalArgumentException( e );
- }
- }
- }
-
- @Test
- public void testGetLowerBound()
- {
- VersionRange range = UnionVersionRange.from( Collections.<VersionRange> emptySet() );
- assertBound( null, false, range.getLowerBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "[3,4]" ) );
- assertBound( "1", true, range.getLowerBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "(,4]" ) );
- assertBound( null, false, range.getLowerBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "(1,4]" ) );
- assertBound( "1", true, range.getLowerBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "(0,4]" ) );
- assertBound( "0", false, range.getLowerBound() );
- }
-
- @Test
- public void testGetUpperBound()
- {
- VersionRange range = UnionVersionRange.from( Collections.<VersionRange> emptySet() );
- assertBound( null, false, range.getUpperBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "[3,4]" ) );
- assertBound( "4", true, range.getUpperBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "[3,)" ) );
- assertBound( null, false, range.getUpperBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "[1,2)" ) );
- assertBound( "2", true, range.getUpperBound() );
-
- range = UnionVersionRange.from( newRange( "[1,2]" ), newRange( "[1,3)" ) );
- assertBound( "3", false, range.getUpperBound() );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-id-sorter/cycle.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-id-sorter/cycle.txt b/aether-util/src/test/resources/transformer/conflict-id-sorter/cycle.txt
deleted file mode 100644
index 1c200b9..0000000
--- a/aether-util/src/test/resources/transformer/conflict-id-sorter/cycle.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-(null)
-+- gid:aid:ver
-| \- gid2:aid:ver
-\- gid2:aid:ver
- \- gid:aid:ver
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-id-sorter/cycles.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-id-sorter/cycles.txt b/aether-util/src/test/resources/transformer/conflict-id-sorter/cycles.txt
deleted file mode 100644
index 714069e..0000000
--- a/aether-util/src/test/resources/transformer/conflict-id-sorter/cycles.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-(null)
-+- gid1:aid:ver
-| \- gid2:aid:ver
-| \- gid:aid:ver
-+- gid2:aid:ver
-| \- gid1:aid:ver
-+- gid1:aid:ver
-| \- gid3:aid:ver
-+- gid3:aid:ver
-| \- gid1:aid:ver
-+- gid2:aid:ver
-| \- gid3:aid:ver
-\- gid3:aid:ver
- \- gid2:aid:ver
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-id-sorter/no-conflicts.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-id-sorter/no-conflicts.txt b/aether-util/src/test/resources/transformer/conflict-id-sorter/no-conflicts.txt
deleted file mode 100644
index c4d1c89..0000000
--- a/aether-util/src/test/resources/transformer/conflict-id-sorter/no-conflicts.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-(null)
-+- gid:aid:ver
-| \- gid2:aid:ver
-\- gid3:aid:ver
- \- gid4:aid:ver
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-id-sorter/simple.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-id-sorter/simple.txt b/aether-util/src/test/resources/transformer/conflict-id-sorter/simple.txt
deleted file mode 100644
index 01ce915..0000000
--- a/aether-util/src/test/resources/transformer/conflict-id-sorter/simple.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-(null)
-+- gid:aid:ver
-| \- gid:aid2:ver
-\- gid2:aid:ver
- \- gid:aid:ver
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-marker/relocation1.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-marker/relocation1.txt b/aether-util/src/test/resources/transformer/conflict-marker/relocation1.txt
deleted file mode 100644
index 518f706..0000000
--- a/aether-util/src/test/resources/transformer/conflict-marker/relocation1.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-(null)
-+- test:a:1
-\- test:a:1 relocations=test:reloc:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-marker/relocation2.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-marker/relocation2.txt b/aether-util/src/test/resources/transformer/conflict-marker/relocation2.txt
deleted file mode 100644
index 729748d..0000000
--- a/aether-util/src/test/resources/transformer/conflict-marker/relocation2.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-(null)
-+- test:a:1 relocations=test:reloc:1
-\- test:a:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-marker/relocation3.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-marker/relocation3.txt b/aether-util/src/test/resources/transformer/conflict-marker/relocation3.txt
deleted file mode 100644
index 8b96d18..0000000
--- a/aether-util/src/test/resources/transformer/conflict-marker/relocation3.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-(null)
-+- test:a:1
-+- test:b:1
-\- test:c:1 relocations=test:a:1,test:b:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/conflict-marker/simple.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/conflict-marker/simple.txt b/aether-util/src/test/resources/transformer/conflict-marker/simple.txt
deleted file mode 100644
index 2f94bb4..0000000
--- a/aether-util/src/test/resources/transformer/conflict-marker/simple.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-(null)
-+- test:a:1
-\- test:b:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/optionality-selector/conflict-direct-dep.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/optionality-selector/conflict-direct-dep.txt b/aether-util/src/test/resources/transformer/optionality-selector/conflict-direct-dep.txt
deleted file mode 100644
index 13ac2aa..0000000
--- a/aether-util/src/test/resources/transformer/optionality-selector/conflict-direct-dep.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-(null)
-+- test:a:1
-| \- test:x:1
-\- test:x:1 optional
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/optionality-selector/conflict.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/optionality-selector/conflict.txt b/aether-util/src/test/resources/transformer/optionality-selector/conflict.txt
deleted file mode 100644
index ffab99b..0000000
--- a/aether-util/src/test/resources/transformer/optionality-selector/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-(null)
-+- test:a:1 optional
-| \- test:x:1
-\- test:b:1
- \- test:x:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/optionality-selector/derive.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/optionality-selector/derive.txt b/aether-util/src/test/resources/transformer/optionality-selector/derive.txt
deleted file mode 100644
index 37a394a..0000000
--- a/aether-util/src/test/resources/transformer/optionality-selector/derive.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-(null)
-+- test:a:1 optional
-| \- test:b:1
-\- test:c:1 !optional
- \- test:d:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/conflict-and-inheritance.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/conflict-and-inheritance.txt b/aether-util/src/test/resources/transformer/scope-calculator/conflict-and-inheritance.txt
deleted file mode 100644
index 558049c..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/conflict-and-inheritance.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Another scenario to check that scope inheritance considers the effective scopes of parent nodes as determined during
-# scope conflict resolution. In this example, gid:x:1 should end up in compile scope (and not runtime) because its
-# parent gid:c:2 will be promoted to compile scope due to a conflict with gid:c:1.
-
-gid:root:1
-+- gid:a:1 compile
-| \- gid:c:2 runtime
-| \- gid:x:1 compile
-\- gid:b:1 compile
- \- gid:c:1 compile
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/conflicting-direct-nodes.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/conflicting-direct-nodes.txt b/aether-util/src/test/resources/transformer/scope-calculator/conflicting-direct-nodes.txt
deleted file mode 100644
index 3330251..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/conflicting-direct-nodes.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-(null)
-+- gid:aid:ver %s
-\- gid:aid:ver %s
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/cycle-a.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/cycle-a.txt b/aether-util/src/test/resources/transformer/scope-calculator/cycle-a.txt
deleted file mode 100644
index df2d828..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/cycle-a.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Checks for graceful handling of cycles in the graph of conflict groups. Below, the group {a:1, a:2} depends on
-# {b:1, b:2} and vice versa. Additionally, each group contains a direct dependency.
-
-gid:root:1
-+- gid:a:1 compile
-| \- gid:b:1 compile
-\- gid:b:2 runtime
- \- gid:a:2 runtime
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/cycle-b.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/cycle-b.txt b/aether-util/src/test/resources/transformer/scope-calculator/cycle-b.txt
deleted file mode 100644
index 5fe084a..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/cycle-b.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Variation of cycle-a where the order of direct dependencies has been changed.
-
-gid:root:1
-+- gid:b:2 runtime
-| \- gid:a:2 runtime
-\- gid:a:1 compile
- \- gid:b:1 compile
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/cycle-c.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/cycle-c.txt b/aether-util/src/test/resources/transformer/scope-calculator/cycle-c.txt
deleted file mode 100644
index d3495b2..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/cycle-c.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Checks for graceful handling of cycles in the graph of conflict groups. Below, the group {a:1} depends on
-# {b:1} and vice versa. The conflicting groups consist entirely of non-direct dependencies.
-
-gid:root:1
-+- gid:x:1 runtime
-| \- gid:a:1 compile
-| \- gid:b:1 compile
-\- gid:y:1 runtime
- \- gid:b:1 compile
- \- gid:a:1 compile
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/cycle-d.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/cycle-d.txt b/aether-util/src/test/resources/transformer/scope-calculator/cycle-d.txt
deleted file mode 100644
index c3a6824..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/cycle-d.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Checks for graceful handling of cycles in the graph of dependency nodes.
-
-gid:root:1
-\- gid:a:1 compile
- \- gid:b:1 compile (b)
- \- gid:a:1 runtime
- \- ^b
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/direct-nodes-winning.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/direct-nodes-winning.txt b/aether-util/src/test/resources/transformer/scope-calculator/direct-nodes-winning.txt
deleted file mode 100644
index 67edf3d..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/direct-nodes-winning.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-(null)
-+- gid:aid:ver %s
-+- gid:aid2:ver
-| \- gid:aid:ver provided
-+- gid:aid3:ver
-| \- gid:aid:ver runtime
-+- gid:aid4:ver
-| \- gid:aid:ver test
-\- gid:aid5:ver
- \- gid:aid:ver compile
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/direct-with-conflict-and-inheritance.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/direct-with-conflict-and-inheritance.txt b/aether-util/src/test/resources/transformer/scope-calculator/direct-with-conflict-and-inheritance.txt
deleted file mode 100644
index c883214..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/direct-with-conflict-and-inheritance.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-# When a direct dependency scope conflicts with a transitive dependency scope, the direct dependency scope always wins.
-# When the scope of the transitive dependency is updated, this update needs to be considered by scope inheritance.
-# In the graph below gid:a:1 has a conflict, after its resolution to test scope, gid:x:1 should end up in
-# test scope as well, everywhere in the graph.
-
-gid:root:1
-+- gid:a:1 test
-| \- gid:x:1 compile
-\- gid:b:1 compile
- \- gid:a:1 compile
- \- gid:x:1 compile
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/dueling-scopes.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/dueling-scopes.txt b/aether-util/src/test/resources/transformer/scope-calculator/dueling-scopes.txt
deleted file mode 100644
index d2ae8e6..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/dueling-scopes.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# pattern to test scope mediation in conflict groups
-
-(null)
-+- gid:aid2:ver
-| \- gid:aid:ver %s
-\- gid:aid3:ver
- \- gid:aid:ver %s
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/inheritance.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/inheritance.txt b/aether-util/src/test/resources/transformer/scope-calculator/inheritance.txt
deleted file mode 100644
index 3b832e9..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/inheritance.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-root:a:ver
-\- gid:b:ver %s
- \- gid:c:ver %s
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/multiple-inheritance.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/multiple-inheritance.txt b/aether-util/src/test/resources/transformer/scope-calculator/multiple-inheritance.txt
deleted file mode 100644
index d545ed6..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/multiple-inheritance.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-(null)
-+- gid:aid:ver %s
-| \- gid2:aid:ver compile (1)
-\- gid3:aid:ver %s
- \- ^1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/system-1.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/system-1.txt b/aether-util/src/test/resources/transformer/scope-calculator/system-1.txt
deleted file mode 100644
index 61d8659..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/system-1.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-gid:aid:1
-+- gid:aid2:2 compile
-\- gid:aid2:3 system
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/scope-calculator/system-2.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/scope-calculator/system-2.txt b/aether-util/src/test/resources/transformer/scope-calculator/system-2.txt
deleted file mode 100644
index 04a5d59..0000000
--- a/aether-util/src/test/resources/transformer/scope-calculator/system-2.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-gid:aid:1
-+- gid:aid2:2 system
-\- gid:aid2:3 compile
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/conflict-id-cycle.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/conflict-id-cycle.txt b/aether-util/src/test/resources/transformer/version-resolver/conflict-id-cycle.txt
deleted file mode 100644
index 57c5d56..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/conflict-id-cycle.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# a graph which itself is acyclic but its conflict ids are cyclic (a <-> b)
-
-test:root:1
-+- test:a:1
-| \- test:b:1
-\- test:b:2
- \- test:a:2
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/cycle.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/cycle.txt b/aether-util/src/test/resources/transformer/version-resolver/cycle.txt
deleted file mode 100644
index 35c1c6a..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/cycle.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-cycle:root:1
-+- cycle:a:1
-| \- cycle:b:1 (b)
-| \- cycle:c:1
-| \- cycle:a:1 (a)
-| \- ^b
-\- cycle:c:1
- \- ^a
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/dead-conflict-group.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/dead-conflict-group.txt b/aether-util/src/test/resources/transformer/version-resolver/dead-conflict-group.txt
deleted file mode 100644
index cb49d9c..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/dead-conflict-group.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-test:root:1
-+- test:a:1
-| \- test:b:1
-| \- test:c:1 # conflict group c will completely vanish from resolved tree
-\- test:b:2
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/loop.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/loop.txt b/aether-util/src/test/resources/transformer/version-resolver/loop.txt
deleted file mode 100644
index 2b50f09..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/loop.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gid:a:1
-\- gid:a:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-a.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-a.txt b/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-a.txt
deleted file mode 100644
index c566caf..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-a.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-test:root:1
-+- test:a:1
-| \- test:b:1 # will be removed in favor of test:b:2
-| \- test:j:1 # nearest version of j in dirty tree
-+- test:c:1
-| \- test:d:1
-| \- test:e:1
-| \- test:j:1
-\- test:b:2
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-b.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-b.txt b/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-b.txt
deleted file mode 100644
index 07867cb..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/nearest-underneath-loser-b.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-test:root:1
-+- test:a:1
-| \- test:b:1 # will be removed in favor of test:b:2
-| \- test:j:1 # nearest version of j in dirty tree
-+- test:c:1
-| \- test:d:1
-| \- test:e:1
-| \- test:j:2
-\- test:b:2
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/overlapping-cycles.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/overlapping-cycles.txt b/aether-util/src/test/resources/transformer/version-resolver/overlapping-cycles.txt
deleted file mode 100644
index fa9e5aa..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/overlapping-cycles.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-cycle:root:1
-+- cycle:a:1 (a)
-| \- cycle:b:1
-| \- cycle:c:1
-| \- ^a
-\- cycle:b:1 (b)
- \- cycle:c:1
- \- ^b
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/range-backtracking.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/range-backtracking.txt b/aether-util/src/test/resources/transformer/version-resolver/range-backtracking.txt
deleted file mode 100644
index 6634e7f..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/range-backtracking.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-(null)
-+- test:x:1
-+- test:a:1
-| \- test:b:1
-| \- test:x:3
-+- test:c:1
-| \- test:x:2
-\- test:d:1
- \- test:e:1
- \- test:x:2[2,) # forces rejection of x:1, should fallback to nearest and not first-seen, i.e. x:2 and not x:3
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/ranges.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/ranges.txt b/aether-util/src/test/resources/transformer/version-resolver/ranges.txt
deleted file mode 100644
index 9acf341..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/ranges.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-(null)
-+- test:b:1
-| \- test:a:2[2]
-\- test:c:1
- +- test:a:1[1,3]
- +- test:a:2[1,3]
- \- test:a:3[1,3]
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/scope-vs-version.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/scope-vs-version.txt b/aether-util/src/test/resources/transformer/version-resolver/scope-vs-version.txt
deleted file mode 100644
index 6c79cfe..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/scope-vs-version.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-# This highlights a design flaw in the previous separation of JavaEffectiveScopeCalculator and NearestVersionConflictResolver:
-# scope conflicts can't be properly determined and resolved until ancestor dependencies got their version conflicts resolved.
-# Otherwise, dependencies can get promoted to a scope due to a scope conflict which actually no longer arises after conflicting
-# versions got removed. In the dirty graph below, the effective scope of test:y should be "test" and not "compile" (as suggested
-# by its test:x parent).
-
-test:root:1
-+- test:a:1 compile
-| +- test:x:1 compile # (a)
-+- test:b:1 test
-| +- test:y:1 compile
-+- test:c:1 test
- +- test:x:1 compile # conflicts with (a), hence leaving scope as "compile"
- +- test:y:1 compile # since our parent gets removed in favor of (a), no need to promote y into scope "compile"
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/sibling-versions.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/sibling-versions.txt b/aether-util/src/test/resources/transformer/version-resolver/sibling-versions.txt
deleted file mode 100644
index 5d50302..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/sibling-versions.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# multiple versions of the same GA beneath the same parent as seen after expansion of version ranges
-# versions neither in ascending nor descending order
-
-test:root:1
-+- test:a:1
-+- test:a:3
-\- test:a:2
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/soft-vs-range.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/soft-vs-range.txt b/aether-util/src/test/resources/transformer/version-resolver/soft-vs-range.txt
deleted file mode 100644
index d3b10e9..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/soft-vs-range.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-test:root:1
-+- test:a:1
-| \- test:c:2 # nearest occurrence of c but doesn't match range given below
-\- test:b:1
- \- test:c:1[1]
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/unsolvable-with-cycle.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/unsolvable-with-cycle.txt b/aether-util/src/test/resources/transformer/version-resolver/unsolvable-with-cycle.txt
deleted file mode 100644
index 153f030..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/unsolvable-with-cycle.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Conflict id "a" will be resolved before "x" such that the cycle formed by "x" is still in place when processing "a".
-# So in order to report the conflicting paths to "a" the code better supports cyclic graphs.
-
-cycle:root:1
-+- cycle:x:1 (x)
-| \- ^x
-+- cycle:a:1[1]
-\- cycle:b:1
- \- cycle:a:2[2]
- \- cycle:x:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/unsolvable.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/unsolvable.txt b/aether-util/src/test/resources/transformer/version-resolver/unsolvable.txt
deleted file mode 100644
index bbc260e..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/unsolvable.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-(null)
-+- test:b:1
-| \- test:a:1[1]
-\- test:c:1
- \- test:a:2[2]
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/transformer/version-resolver/verbose.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/transformer/version-resolver/verbose.txt b/aether-util/src/test/resources/transformer/version-resolver/verbose.txt
deleted file mode 100644
index 4bb3880..0000000
--- a/aether-util/src/test/resources/transformer/version-resolver/verbose.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-test:root:1
-+- test:a:1 test
-| +- test:x:1 compile
-| \- test:x:2 compile
-\- test:b:1 test
- +- test:x:1 compile
- \- test:z:1 compile
- \- test:x:2 compile
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/filtering/parents.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/filtering/parents.txt b/aether-util/src/test/resources/visitor/filtering/parents.txt
deleted file mode 100644
index 9a93ca2..0000000
--- a/aether-util/src/test/resources/visitor/filtering/parents.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-gid:a:1
-+- gid:b:1
-| \- gid:c:1
-| \- gid:d:1
-\- gid:e:1
- \- gid:f:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/ordered-list/cycles.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/ordered-list/cycles.txt b/aether-util/src/test/resources/visitor/ordered-list/cycles.txt
deleted file mode 100644
index 8de373c..0000000
--- a/aether-util/src/test/resources/visitor/ordered-list/cycles.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-gid:a:1
-+- gid:b:1 (1)
-| \- gid:c:1
-| \- ^1
-\- gid:d:1
- +- ^1
- \- gid:e:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/ordered-list/simple.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/ordered-list/simple.txt b/aether-util/src/test/resources/visitor/ordered-list/simple.txt
deleted file mode 100644
index 094d2d3..0000000
--- a/aether-util/src/test/resources/visitor/ordered-list/simple.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-gid:a:1
-+- gid:b:1
-| \- gid:c:1
-\- gid:d:1
- \- gid:e:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/path-recorder/cycle.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/path-recorder/cycle.txt b/aether-util/src/test/resources/visitor/path-recorder/cycle.txt
deleted file mode 100644
index 9a48240..0000000
--- a/aether-util/src/test/resources/visitor/path-recorder/cycle.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-gid:a:1 (a)
-+- gid:b:1 (b)
-| \- match:x:1
-\- match:x:2 (x)
- +- ^a
- +- ^b
- \- ^x
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/path-recorder/nested.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/path-recorder/nested.txt b/aether-util/src/test/resources/visitor/path-recorder/nested.txt
deleted file mode 100644
index 67742f8..0000000
--- a/aether-util/src/test/resources/visitor/path-recorder/nested.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-match:x:1
-+- gid:a:1
-| \- match:y:2
-\- match:y:2
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/path-recorder/parents.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/path-recorder/parents.txt b/aether-util/src/test/resources/visitor/path-recorder/parents.txt
deleted file mode 100644
index 9a93ca2..0000000
--- a/aether-util/src/test/resources/visitor/path-recorder/parents.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-gid:a:1
-+- gid:b:1
-| \- gid:c:1
-| \- gid:d:1
-\- gid:e:1
- \- gid:f:1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/path-recorder/simple.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/path-recorder/simple.txt b/aether-util/src/test/resources/visitor/path-recorder/simple.txt
deleted file mode 100644
index 8f3c6a1..0000000
--- a/aether-util/src/test/resources/visitor/path-recorder/simple.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-gid:a:1
-+- gid:b:1
-| \- match:x:1
-\- match:x:2
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/aether-util/src/test/resources/visitor/tree/cycles.txt
----------------------------------------------------------------------
diff --git a/aether-util/src/test/resources/visitor/tree/cycles.txt b/aether-util/src/test/resources/visitor/tree/cycles.txt
deleted file mode 100644
index f8d7abc..0000000
--- a/aether-util/src/test/resources/visitor/tree/cycles.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-gid:a:1
-+- gid:b:1 (1)
-| \- gid:c:1
-| \- ^1
-\- gid:d:1
- \- ^1
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/maven-resolver-api/pom.xml
----------------------------------------------------------------------
diff --git a/maven-resolver-api/pom.xml b/maven-resolver-api/pom.xml
new file mode 100644
index 0000000..a65c9d0
--- /dev/null
+++ b/maven-resolver-api/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.maven.resolver</groupId>
+ <artifactId>maven-resolver</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>maven-resolver-api</artifactId>
+
+ <name>Maven Artifact Resolver API</name>
+ <description>
+ The application programming interface for the repository system.
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/27f8bd73/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java b/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java
new file mode 100644
index 0000000..20df431
--- /dev/null
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java
@@ -0,0 +1,189 @@
+package org.eclipse.aether;
+
+/*
+ * 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.Map;
+
+import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.collection.DependencyGraphTransformer;
+import org.eclipse.aether.collection.DependencyManager;
+import org.eclipse.aether.collection.DependencySelector;
+import org.eclipse.aether.collection.DependencyTraverser;
+import org.eclipse.aether.collection.VersionFilter;
+import org.eclipse.aether.repository.AuthenticationSelector;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.LocalRepositoryManager;
+import org.eclipse.aether.repository.MirrorSelector;
+import org.eclipse.aether.repository.ProxySelector;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
+import org.eclipse.aether.resolution.ResolutionErrorPolicy;
+import org.eclipse.aether.transfer.TransferListener;
+
+/**
+ * A special repository system session to enable decorating or proxying another session. To do so, clients have to
+ * create a subclass and implement {@link #getSession()}.
+ */
+public abstract class AbstractForwardingRepositorySystemSession
+ implements RepositorySystemSession
+{
+
+ /**
+ * Creates a new forwarding session.
+ */
+ protected AbstractForwardingRepositorySystemSession()
+ {
+ }
+
+ /**
+ * Gets the repository system session to which this instance forwards calls. It's worth noting that this class does
+ * not save/cache the returned reference but queries this method before each forwarding. Hence, the session
+ * forwarded to may change over time or depending on the context (e.g. calling thread).
+ *
+ * @return The repository system session to forward calls to, never {@code null}.
+ */
+ protected abstract RepositorySystemSession getSession();
+
+ public boolean isOffline()
+ {
+ return getSession().isOffline();
+ }
+
+ public boolean isIgnoreArtifactDescriptorRepositories()
+ {
+ return getSession().isIgnoreArtifactDescriptorRepositories();
+ }
+
+ public ResolutionErrorPolicy getResolutionErrorPolicy()
+ {
+ return getSession().getResolutionErrorPolicy();
+ }
+
+ public ArtifactDescriptorPolicy getArtifactDescriptorPolicy()
+ {
+ return getSession().getArtifactDescriptorPolicy();
+ }
+
+ public String getChecksumPolicy()
+ {
+ return getSession().getChecksumPolicy();
+ }
+
+ public String getUpdatePolicy()
+ {
+ return getSession().getUpdatePolicy();
+ }
+
+ public LocalRepository getLocalRepository()
+ {
+ return getSession().getLocalRepository();
+ }
+
+ public LocalRepositoryManager getLocalRepositoryManager()
+ {
+ return getSession().getLocalRepositoryManager();
+ }
+
+ public WorkspaceReader getWorkspaceReader()
+ {
+ return getSession().getWorkspaceReader();
+ }
+
+ public RepositoryListener getRepositoryListener()
+ {
+ return getSession().getRepositoryListener();
+ }
+
+ public TransferListener getTransferListener()
+ {
+ return getSession().getTransferListener();
+ }
+
+ public Map<String, String> getSystemProperties()
+ {
+ return getSession().getSystemProperties();
+ }
+
+ public Map<String, String> getUserProperties()
+ {
+ return getSession().getUserProperties();
+ }
+
+ public Map<String, Object> getConfigProperties()
+ {
+ return getSession().getConfigProperties();
+ }
+
+ public MirrorSelector getMirrorSelector()
+ {
+ return getSession().getMirrorSelector();
+ }
+
+ public ProxySelector getProxySelector()
+ {
+ return getSession().getProxySelector();
+ }
+
+ public AuthenticationSelector getAuthenticationSelector()
+ {
+ return getSession().getAuthenticationSelector();
+ }
+
+ public ArtifactTypeRegistry getArtifactTypeRegistry()
+ {
+ return getSession().getArtifactTypeRegistry();
+ }
+
+ public DependencyTraverser getDependencyTraverser()
+ {
+ return getSession().getDependencyTraverser();
+ }
+
+ public DependencyManager getDependencyManager()
+ {
+ return getSession().getDependencyManager();
+ }
+
+ public DependencySelector getDependencySelector()
+ {
+ return getSession().getDependencySelector();
+ }
+
+ public VersionFilter getVersionFilter()
+ {
+ return getSession().getVersionFilter();
+ }
+
+ public DependencyGraphTransformer getDependencyGraphTransformer()
+ {
+ return getSession().getDependencyGraphTransformer();
+ }
+
+ public SessionData getData()
+ {
+ return getSession().getData();
+ }
+
+ public RepositoryCache getCache()
+ {
+ return getSession().getCache();
+ }
+
+}