package org.eclipse.packagedrone.testing.mvn;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.impl.DefaultServiceLocator;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
public class MavenUtil
{
public static RepositorySystem newRepositorySystem ()
{
final DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator ();
locator.addService ( RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class );
locator.addService ( TransporterFactory.class, FileTransporterFactory.class );
locator.addService ( TransporterFactory.class, HttpTransporterFactory.class );
locator.setErrorHandler ( new DefaultServiceLocator.ErrorHandler () {
@Override
public void serviceCreationFailed ( final Class<?> type, final Class<?> impl, final Throwable exception )
{
exception.printStackTrace ();
}
} );
return locator.getService ( RepositorySystem.class );
}
public static DefaultRepositorySystemSession newRepositorySystemSession ( final RepositorySystem system )
{
final DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession ();
final LocalRepository localRepo = new LocalRepository ( "target/local-repo" );
session.setLocalRepositoryManager ( system.newLocalRepositoryManager ( session, localRepo ) );
return session;
}
}