001    package org.apache.maven.repository.internal;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *   http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    import java.net.MalformedURLException;
023    
024    import org.apache.maven.repository.internal.util.ConsoleRepositoryListener;
025    import org.apache.maven.repository.internal.util.ConsoleTransferListener;
026    import org.codehaus.plexus.ContainerConfiguration;
027    import org.codehaus.plexus.PlexusTestCase;
028    import org.eclipse.aether.DefaultRepositorySystemSession;
029    import org.eclipse.aether.RepositorySystem;
030    import org.eclipse.aether.RepositorySystemSession;
031    import org.eclipse.aether.repository.LocalRepository;
032    import org.eclipse.aether.repository.RemoteRepository;
033    
034    public abstract class AbstractRepositoryTestCase
035        extends PlexusTestCase
036    {
037        protected RepositorySystem system;
038    
039        protected RepositorySystemSession session;
040    
041        @Override
042        protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
043        {
044            super.customizeContainerConfiguration( containerConfiguration );
045            containerConfiguration.setAutoWiring( true );
046        }
047    
048        @Override
049        protected void setUp()
050            throws Exception
051        {
052            super.setUp();
053            system = lookup( RepositorySystem.class );
054            session = newMavenRepositorySystemSession( system );
055        }
056    
057        @Override
058        protected void tearDown()
059            throws Exception
060        {
061            session = null;
062            system = null;
063            super.tearDown();
064        }
065    
066        public static RepositorySystemSession newMavenRepositorySystemSession( RepositorySystem system )
067        {
068            DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
069    
070            LocalRepository localRepo = new LocalRepository( "target/local-repo" );
071            session.setLocalRepositoryManager( system.newLocalRepositoryManager( session, localRepo ) );
072    
073            session.setTransferListener( new ConsoleTransferListener() );
074            session.setRepositoryListener( new ConsoleRepositoryListener() );
075    
076            return session;
077        }
078    
079        public static RemoteRepository newTestRepository()
080            throws MalformedURLException
081        {
082            return new RemoteRepository.Builder( "repo", "default",
083                                                 getTestFile( "target/test-classes/repo" ).toURI().toURL().toString() ).build();
084        }
085    }