use of org.apache.ivy.plugins.repository.Resource in project ant-ivy by apache.
the class DefaultRepositoryCacheManagerTest method testLatestIntegrationIsCachedPerResolver.
@Test
@Ignore
public void testLatestIntegrationIsCachedPerResolver() throws Exception {
// given a module org#module
ModuleId mi = new ModuleId("org", "module");
// and a latest.integration mrid/dd
ModuleRevisionId mridLatest = new ModuleRevisionId(mi, "trunk", "latest.integration");
DependencyDescriptor ddLatest = new DefaultDependencyDescriptor(mridLatest, false);
// and some random options
CacheMetadataOptions options = new CacheMetadataOptions().setCheckTTL(false);
// setup resolver1 to download the static content so we can call cacheModuleDescriptor
MockResolver resolver = new MockResolver();
resolver.setName("resolver1");
resolver.setSettings(ivy.getSettings());
ivy.getSettings().addResolver(resolver);
ResourceDownloader downloader = new ResourceDownloader() {
public void download(Artifact artifact, Resource resource, File dest) throws IOException {
String content = "<ivy-module version=\"2.0\"><info organisation=\"org\" module=\"module\" status=\"integration\" revision=\"1.1\" branch=\"trunk\"/></ivy-module>";
dest.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(dest);
PrintWriter pw = new PrintWriter(out);
pw.write(content);
pw.flush();
out.close();
}
};
ModuleDescriptorWriter writer = new ModuleDescriptorWriter() {
public void write(ResolvedResource originalMdResource, ModuleDescriptor md, File src, File dest) throws IOException {
XmlModuleDescriptorWriter.write(md, dest);
}
};
// latest.integration will resolve to 1.1 in resolver1
ModuleRevisionId mrid11 = new ModuleRevisionId(mi, "trunk", "1.1");
DefaultArtifact artifact11 = new DefaultArtifact(mrid11, new Date(), "module-1.1.ivy", "ivy", "ivy", true);
DependencyDescriptor dd11 = new DefaultDependencyDescriptor(mrid11, false);
BasicResource resource11 = new BasicResource("/module-1-1.ivy", true, 1, 0, true);
ResolvedResource mdRef11 = new ResolvedResource(resource11, "1.1");
// tell the cache about 1.1
ResolvedModuleRevision rmr11 = cacheManager.cacheModuleDescriptor(resolver, mdRef11, dd11, artifact11, downloader, options);
cacheManager.originalToCachedModuleDescriptor(resolver, mdRef11, artifact11, rmr11, writer);
// and use the new overload that passes in resolver name
cacheManager.saveResolvedRevision("resolver1", mridLatest, "1.1");
ResolvedModuleRevision rmrFromCache = cacheManager.findModuleInCache(ddLatest, mridLatest, options, "resolver1");
assertEquals(rmr11, rmrFromCache);
}
use of org.apache.ivy.plugins.repository.Resource in project ant-ivy by apache.
the class OSGiManifestParserTest method testFileResource.
/**
* Tests that the
* {@link OSGiManifestParser#parseDescriptor(ParserSettings, URL, Resource, boolean)}
* works fine for descriptors that are backed by {@link FileResource}
*
* @throws Exception if something goes wrong
*/
@Test
public void testFileResource() throws Exception {
final File manifestFile = new File("test/repositories/osgi/module1/META-INF/MANIFEST.MF");
assertTrue("Manifest file is either missing or not a file at " + manifestFile.getAbsolutePath(), manifestFile.isFile());
final Resource manifestFileResource = new FileResource(null, manifestFile);
final ModuleDescriptor md = OSGiManifestParser.getInstance().parseDescriptor(settings, manifestFile.toURI().toURL(), manifestFileResource, true);
assertNotNull("Module descriptor created through a OSGi parser was null", md);
assertEquals("Unexpected organization name in module descriptor created through a OSGi parser", "bundle", md.getModuleRevisionId().getOrganisation());
assertEquals("Unexpected module name in module descriptor created through a OSGi parser", "module1", md.getModuleRevisionId().getName());
assertEquals("Unexpected version in module descriptor created through a OSGi parser", "1.2.3", md.getModuleRevisionId().getRevision());
}
use of org.apache.ivy.plugins.repository.Resource in project ant-ivy by apache.
the class AbstractOSGiResolver method findArtifactRef.
@Override
public ResolvedResource findArtifactRef(Artifact artifact, Date date) {
URL url = artifact.getUrl();
if (url == null) {
// not an artifact resolved by this resolver
return null;
}
Message.verbose("\tusing url for " + artifact + ": " + url);
logArtifactAttempt(artifact, url.toExternalForm());
final Resource resource = new URLResource(url, this.getTimeoutConstraint());
return new ResolvedResource(resource, artifact.getModuleRevisionId().getRevision());
}
use of org.apache.ivy.plugins.repository.Resource in project ant-ivy by apache.
the class OBRResolver method init.
@Override
protected void init() {
if (repoXmlFile != null && repoXmlURL != null) {
throw new RuntimeException("The OBR repository resolver " + getName() + " couldn't be configured: repoXmlFile and repoXmlUrl cannot be set both");
}
if (repoXmlFile != null) {
File f = new File(repoXmlFile);
loadRepoFromFile(f.getParentFile().toURI(), f, repoXmlFile);
} else if (repoXmlURL != null) {
final URL url;
try {
url = new URL(repoXmlURL);
} catch (MalformedURLException e) {
throw new RuntimeException("The OBR repository resolver " + getName() + " couldn't be configured: repoXmlURL '" + repoXmlURL + "' is not an URL");
}
ArtifactDownloadReport report;
EventManager eventManager = getEventManager();
try {
if (eventManager != null) {
getRepository().addTransferListener(eventManager);
}
final Resource obrResource = new URLResource(url, this.getTimeoutConstraint());
CacheResourceOptions options = new CacheResourceOptions();
if (metadataTtl != null) {
options.setTtl(metadataTtl);
}
if (forceMetadataUpdate != null) {
options.setForce(forceMetadataUpdate);
}
report = getRepositoryCacheManager().downloadRepositoryResource(obrResource, "obr", "obr", "xml", options, getRepository());
} finally {
if (eventManager != null) {
getRepository().removeTransferListener(eventManager);
}
}
URI baseURI;
try {
baseURI = new URI(repoXmlURL);
} catch (URISyntaxException e) {
throw new RuntimeException("illegal uri");
}
loadRepoFromFile(baseURI, report.getLocalFile(), repoXmlURL);
} else {
throw new RuntimeException("The OBR repository resolver " + getName() + " couldn't be configured: repoXmlFile or repoXmlUrl is missing");
}
}
use of org.apache.ivy.plugins.repository.Resource in project ant-ivy by apache.
the class RelativeURLRepository method getResource.
public Resource getResource(String source) throws IOException {
source = encode(source);
Resource res = resourcesCache.get(source);
if (res == null) {
URI uri;
try {
uri = new URI(source);
} catch (URISyntaxException e) {
// very weird URL, let's assume it is absolute
uri = null;
}
if (uri == null || uri.isAbsolute()) {
res = new URLResource(new URL(source), getTimeoutConstraint());
} else {
res = new URLResource(new URL(baseUrl + source), getTimeoutConstraint());
}
resourcesCache.put(source, res);
}
return res;
}
Aggregations