package org.bundlemaker.core.mvn.internal.config; import java.io.File; import java.util.LinkedList; import java.util.List; import org.apache.maven.repository.internal.MavenRepositorySystemSession; import org.bundlemaker.core.mvn.internal.aether.ManualRepositorySystemFactory; import org.eclipse.core.runtime.Assert; import org.sonatype.aether.RepositorySystem; import org.sonatype.aether.RepositorySystemSession; import org.sonatype.aether.collection.DependencyCollectionContext; import org.sonatype.aether.collection.DependencySelector; import org.sonatype.aether.graph.Dependency; import org.sonatype.aether.repository.LocalRepository; import org.sonatype.aether.repository.RemoteRepository; import org.sonatype.aether.util.artifact.JavaScopes; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public class SimpleRepositoryAdapter implements IAetherRepositoryAdapter { /** - */ private RepositorySystem _system; /** - */ private RemoteRepository _repo; /** - */ private File _localRepo; /** - */ private String _remoteRepoUrl; /** * <p> * Creates a new instance of type {@link SimpleRepositoryAdapter}. * </p> * * @param localRepo * @param remoteRepoUrl */ public SimpleRepositoryAdapter(File localRepo, String remoteRepoUrl) { Assert.isNotNull(localRepo); Assert.isNotNull(remoteRepoUrl); try { // set the parameters _localRepo = localRepo; _remoteRepoUrl = remoteRepoUrl; // create _system = ManualRepositorySystemFactory.newRepositorySystem(); _repo = new RemoteRepository("central", "default", _remoteRepoUrl); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * <p> * </p> * * @return */ public File getLocalRepo() { return _localRepo; } /** * <p> * </p> * * @return */ public String getRemoteRepoUrl() { return _remoteRepoUrl; } /** * {@inheritDoc} */ @Override public RepositorySystem getRepositorySystem() { return _system; } @Override public RepositorySystemSession newSession() { MavenRepositorySystemSession session = new MavenRepositorySystemSession(); LocalRepository localRepo = new LocalRepository(_localRepo); session.setLocalRepositoryManager(_system.newLocalRepositoryManager(localRepo)); // session.setTransferListener( new ConsoleTransferListener() ); // session.setRepositoryListener( new ConsoleRepositoryListener() ); // uncomment to generate dirty trees // session.setDependencyGraphTransformer( null ); session.setDependencySelector(new DependencySelector() { @Override public boolean selectDependency(Dependency dependency) { return dependency.getScope().equals(JavaScopes.COMPILE) || dependency.getScope().equals(JavaScopes.PROVIDED) || dependency.getScope().equals(JavaScopes.RUNTIME); } @Override public DependencySelector deriveChildSelector(DependencyCollectionContext context) { return this; } }); return session; } @Override public List<RemoteRepository> getRemoteRepositories() { // List<RemoteRepository> remoteRepositories = new LinkedList<RemoteRepository>(); remoteRepositories.add(_repo); // return remoteRepositories; } }