use of io.fabric8.maven.util.MavenConfiguration in project fabric8 by jboss-fuse.
the class Activator method updated.
public void updated(Dictionary<String, ?> config) {
PropertyResolver propertyResolver;
if (config == null) {
propertyResolver = new PropertyResolver() {
@Override
public String get(String propertyName) {
return m_bundleContext.getProperty(propertyName);
}
};
} else {
propertyResolver = new DictionaryPropertyResolver(config);
}
MavenConfiguration mavenConfig = new MavenConfigurationImpl(propertyResolver, PID);
MavenResolver resolver = new AetherBasedResolver(mavenConfig);
MavenResolver oldResolver = m_resolver.getAndSet(resolver);
ServiceRegistration<MavenResolver> registration = m_bundleContext.registerService(MavenResolver.class, resolver, null);
registration = m_resolverReg.getAndSet(registration);
if (registration != null) {
registration.unregister();
}
if (oldResolver != null) {
try {
oldResolver.close();
} catch (IOException e) {
// Ignore
}
}
}
use of io.fabric8.maven.util.MavenConfiguration in project fabric8 by jboss-fuse.
the class AetherTimeoutTest method connectionTimeout.
@Test
public void connectionTimeout() throws Exception {
final MavenConfigurationImpl mavenConfiguration = basicMavenConfigurationWithTwoTimeouts(5000, 500);
mavenConfiguration.setSettings(settingsWithUnresponsiveRepository());
Future<Boolean> ok = pool.submit(new ResolveArtifactTask(mavenConfiguration, 0));
try {
boolean resolved = ok.get(3000, TimeUnit.MILLISECONDS);
assertFalse(resolved);
} catch (TimeoutException e) {
fail("Should fail due to connection timeout earlier.");
}
}
use of io.fabric8.maven.util.MavenConfiguration in project fabric8 by jboss-fuse.
the class AetherResolutionWithHintsTest method hintedResolution.
@Test
public void hintedResolution() throws Exception {
final MavenConfigurationImpl mavenConfiguration = mavenConfiguration();
mavenConfiguration.setSettings(settingsWithProxy());
MavenResolver resolver = new AetherBasedResolver(mavenConfiguration);
try {
resolver.download("mvn:org.ops4j.pax.web/pax-web-api/1");
fail("Resolution should fail");
} catch (IOException e) {
RepositoryException exception = ((AetherBasedResolver) resolver).findAetherException(e);
assertNotNull(exception);
assertTrue(exception instanceof ArtifactResolutionException);
ArtifactResolutionException are = (ArtifactResolutionException) exception;
assertThat(are.getResult().getExceptions().size(), equalTo(3));
assertTrue("Non-retryable exception", are.getResult().getExceptions().get(0) instanceof ArtifactNotFoundException);
assertTrue("Non-retryable exception", are.getResult().getExceptions().get(1) instanceof ArtifactNotFoundException);
assertTrue("Retryable exception", are.getResult().getExceptions().get(2) instanceof ArtifactTransferException);
assertFalse("Retryable exception", are.getResult().getExceptions().get(2) instanceof ArtifactNotFoundException);
try {
// try again with exception hint
resolver.download("mvn:org.ops4j.pax.web/pax-web-api/1", e);
fail("Resolution should fail");
} catch (IOException e2) {
exception = ((AetherBasedResolver) resolver).findAetherException(e2);
assertNotNull(exception);
assertTrue(exception instanceof ArtifactResolutionException);
are = (ArtifactResolutionException) exception;
assertThat(are.getResult().getExceptions().size(), equalTo(1));
assertTrue("Retryable exception", are.getResult().getExceptions().get(0) instanceof ArtifactTransferException);
assertFalse("Retryable exception", are.getResult().getExceptions().get(0) instanceof ArtifactNotFoundException);
}
} finally {
resolver.close();
}
}
use of io.fabric8.maven.util.MavenConfiguration in project fabric8 by jboss-fuse.
the class AetherResolutionWithHintsTest method mavenConfiguration.
private MavenConfigurationImpl mavenConfiguration() {
Properties properties = new Properties();
properties.setProperty("pid.localRepository", "target/" + UUID.randomUUID().toString());
properties.setProperty("pid.globalChecksumPolicy", "ignore");
properties.setProperty("pid.timeout", "1000");
properties.setProperty("pid.connection.retryCount", "0");
return new MavenConfigurationImpl(new PropertiesPropertyResolver(properties), "pid");
}
use of io.fabric8.maven.util.MavenConfiguration in project fabric8 by jboss-fuse.
the class ProfileWatcherImpl method retrieveMavenConfiguration.
protected MavenConfiguration retrieveMavenConfiguration() {
MavenConfiguration mavenConfiguration = null;
try {
Configuration configuration = configurationAdmin.get().getConfiguration("org.ops4j.pax.url.mvn");
if (configuration != null) {
Dictionary dictonary = configuration.getProperties();
if (dictonary != null) {
DictionaryPropertyResolver resolver = new DictionaryPropertyResolver(dictonary);
mavenConfiguration = new MavenConfigurationImpl(resolver, "org.ops4j.pax.url.mvn");
}
}
} catch (IOException e) {
LOG.error("Error retrieving maven configuration", e);
}
return mavenConfiguration;
}
Aggregations