use of org.eclipse.aether.repository.RemoteRepository.Builder in project bnd by bndtools.
the class AetherRepository method init.
protected final synchronized void init() throws Exception {
if (initialised)
return;
// Initialise Aether
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class);
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
if (reporter != null)
reporter.error("Service creation failed for type %s using impl %s: %s", type, impl, exception.getLocalizedMessage());
exception.printStackTrace();
}
});
repoSystem = locator.getService(RepositorySystem.class);
if (repoSystem == null)
throw new IllegalArgumentException("Failed to initialise Aether repository system");
Builder builder = new RemoteRepository.Builder("remote", "default", mainUri.toString());
if (username != null) {
AuthenticationBuilder authBuilder = new AuthenticationBuilder().addUsername(username);
if (password != null)
authBuilder.addPassword(password);
builder.setAuthentication(authBuilder.build());
}
remoteRepo = builder.build();
localRepo = new LocalRepository(new File(cacheDir, "aether-local"));
// Initialise Index
if (indexUri == null) {
indexedRepo = null;
} else {
// Test whether the index URI exists and is available.
HttpURLConnection connection = (HttpURLConnection) indexUri.toURL().openConnection();
try {
connection.setRequestMethod("HEAD");
int responseCode = connection.getResponseCode();
if (responseCode >= 400) {
indexedRepo = null;
} else {
indexedRepo = new FixedIndexedRepo();
Map<String, String> config = new HashMap<String, String>();
indexedRepo.setReporter(this.reporter);
indexedRepo.setRegistry(registry);
config.put(FixedIndexedRepo.PROP_CACHE, cacheDir.getAbsolutePath());
config.put(FixedIndexedRepo.PROP_LOCATIONS, indexUri.toString());
indexedRepo.setProperties(config);
}
} catch (UnknownHostException e) {
return;
} finally {
connection.disconnect();
}
}
initialised = true;
}
use of org.eclipse.aether.repository.RemoteRepository.Builder in project acceptance-test-harness by jenkinsci.
the class ArtifactResolverUtil method resolve.
/**
* @param artifact The artifact to be resolved
*
* @return artifact resolution result
*/
public ArtifactResult resolve(DefaultArtifact artifact) {
Builder repoBuilder = new RemoteRepository.Builder("repo.jenkins-ci.org", "default", "https://repo.jenkins-ci.org/public/");
DefaultSettingsBuildingRequest request = new DefaultSettingsBuildingRequest();
File userHome = new File(System.getProperty("user.home"));
File userSettingsFile = new File(new File(userHome, ".m2"), "settings.xml");
request.setUserSettingsFile(userSettingsFile);
if (userSettingsFile.exists()) {
LOGGER.config("Found maven settings file - " + userSettingsFile.getAbsolutePath());
SettingsBuilder settingsBuilder = new DefaultSettingsBuilderFactory().newInstance();
try {
Settings settings = settingsBuilder.build(request).getEffectiveSettings();
org.apache.maven.settings.Proxy mavenActiveproxy = settings.getActiveProxy();
if (mavenActiveproxy != null) {
LOGGER.config("Found maven proxy settings. Will use for artifact resolution");
repoBuilder.setProxy(asProxy(mavenActiveproxy));
} else {
LOGGER.config("Did not find an active proxy in maven settings xml file");
}
} catch (SettingsBuildingException e) {
LOGGER.log(Level.WARNING, "Could not find or load settings.xml to attempt to user proxy settings.", e);
}
}
RemoteRepository repo = repoBuilder.build();
ArtifactResult r;
try {
r = repoSystem.resolveArtifact(repoSystemSession, new ArtifactRequest(artifact, Arrays.asList(repo), null));
} catch (ArtifactResolutionException e) {
throw new RuntimeException("Could not resolve " + artifact + " from Maven repository", e);
}
LOGGER.config("Found " + r);
return r;
}
Aggregations