use of org.apache.ivy.core.cache.DefaultRepositoryCacheManager in project ant-ivy by apache.
the class CacheResolver method ensureConfigured.
private void ensureConfigured() {
if (getIvyPatterns().isEmpty()) {
setIvyPatterns(new ArrayList<String>());
setArtifactPatterns(new ArrayList<String>());
for (RepositoryCacheManager cache : getSettings().getRepositoryCacheManagers()) {
if (cache instanceof DefaultRepositoryCacheManager) {
DefaultRepositoryCacheManager c = (DefaultRepositoryCacheManager) cache;
addIvyPattern(c.getBasedir().getAbsolutePath() + "/" + c.getIvyPattern());
addArtifactPattern(c.getBasedir().getAbsolutePath() + "/" + c.getArtifactPattern());
} else {
Message.verbose(cache + ": cache implementation is not a DefaultRepositoryCacheManager:" + " unable to configure cache resolver with it");
}
}
}
}
use of org.apache.ivy.core.cache.DefaultRepositoryCacheManager in project ant-ivy by apache.
the class BuildOBRTask method doExecute.
public void doExecute() throws BuildException {
if (file == null) {
throw new BuildException("No output file specified: use the attribute 'out'");
}
Iterable<ManifestAndLocation> it;
if (resolverName != null) {
if (baseDir != null) {
throw new BuildException("specify only one of 'resolver' or 'baseDir'");
}
if (cacheName != null) {
throw new BuildException("specify only one of 'resolver' or 'cache'");
}
Ivy ivy = getIvyInstance();
IvySettings settings = ivy.getSettings();
DependencyResolver resolver = settings.getResolver(resolverName);
if (resolver == null) {
throw new BuildException("the resolver '" + resolverName + "' was not found");
}
if (!(resolver instanceof BasicResolver)) {
throw new BuildException("the type of resolver '" + resolver.getClass().getName() + "' is not supported.");
}
it = new ResolverManifestIterable((BasicResolver) resolver);
} else if (baseDir != null) {
if (cacheName != null) {
throw new BuildException("specify only one of 'baseDir' or 'cache'");
}
if (!baseDir.isDirectory()) {
throw new BuildException(baseDir + " is not a directory");
}
it = new FSManifestIterable(baseDir);
} else if (cacheName != null) {
Ivy ivy = getIvyInstance();
RepositoryCacheManager cacheManager = ivy.getSettings().getRepositoryCacheManager(cacheName);
if (!(cacheManager instanceof DefaultRepositoryCacheManager)) {
throw new BuildException("the type of cache '" + cacheManager.getClass().getName() + "' is not supported.");
}
File basedir = ((DefaultRepositoryCacheManager) cacheManager).getBasedir();
it = new FSManifestIterable(basedir);
} else {
prepareAndCheck();
try {
it = new ArtifactReportManifestIterable(getArtifactReports(), sourceTypes);
} catch (ParseException e) {
throw new BuildException("Impossible to parse the artifact reports: " + e.getMessage(), e);
}
}
OutputStream out;
try {
out = new FileOutputStream(file);
} catch (FileNotFoundException e) {
throw new BuildException(file + " was not found", e);
}
ContentHandler hd;
try {
hd = OBRXMLWriter.newHandler(out, encoding, indent);
} catch (TransformerConfigurationException e) {
throw new BuildException("Sax configuration error: " + e.getMessage(), e);
}
class AntMessageLogger2 extends AntMessageLogger {
AntMessageLogger2() {
super(BuildOBRTask.this);
}
}
IvyContext.getContext().getMessageLogger();
Message.setDefaultLogger(new AntMessageLogger2());
try {
OBRXMLWriter.writeManifests(it, hd, quiet);
} catch (SAXException e) {
throw new BuildException("Sax serialisation error: " + e.getMessage(), e);
}
try {
out.flush();
out.close();
} catch (IOException e) {
// don't care
}
Message.sumupProblems();
}
use of org.apache.ivy.core.cache.DefaultRepositoryCacheManager in project ant-ivy by apache.
the class IvySettings method addConfigured.
public void addConfigured(AbstractWorkspaceResolver workspaceResolver) {
this.workspaceResolver = workspaceResolver;
if (workspaceResolver != null) {
workspaceResolver.setSettings(this);
DefaultRepositoryCacheManager cacheManager = new DefaultRepositoryCacheManager();
String cacheName = "workspace-resolver-cache-" + workspaceResolver.getName();
cacheManager.setBasedir(new File(getDefaultCache(), cacheName));
cacheManager.setCheckmodified(true);
cacheManager.setUseOrigin(true);
cacheManager.setName(cacheName);
addRepositoryCacheManager(cacheManager);
workspaceResolver.setCache(cacheName);
}
}
use of org.apache.ivy.core.cache.DefaultRepositoryCacheManager in project ant-ivy by apache.
the class IvySettings method getDefaultRepositoryCacheManager.
public synchronized RepositoryCacheManager getDefaultRepositoryCacheManager() {
if (defaultRepositoryCacheManager == null) {
defaultRepositoryCacheManager = new DefaultRepositoryCacheManager("default-cache", this, getDefaultRepositoryCacheBasedir());
addRepositoryCacheManager(defaultRepositoryCacheManager);
}
return defaultRepositoryCacheManager;
}
use of org.apache.ivy.core.cache.DefaultRepositoryCacheManager in project ant-ivy by apache.
the class ResolveTest method testMultipleCache.
@Test
public void testMultipleCache() throws Exception {
Ivy ivy = new Ivy();
ivy.configure(new File("test/repositories/ivysettings-multicache.xml"));
// mod2.1 depends on mod1.1 which depends on mod1.2
ResolveReport report = ivy.resolve(new File("test/repositories/1/org2/mod2.1/ivys/ivy-0.3.xml"), getResolveOptions(new String[] { "*" }));
assertNotNull(report);
assertFalse(report.hasError());
// dependencies
DefaultArtifact depArtifact = TestHelper.newArtifact("org1", "mod1.1", "1.0", "mod1.1", "jar", "jar");
ModuleRevisionId depMrid = ModuleRevisionId.newInstance("org1", "mod1.1", "1.0");
DefaultRepositoryCacheManager cacheMgr1 = (DefaultRepositoryCacheManager) ivy.getSettings().getDefaultRepositoryCacheManager();
DefaultRepositoryCacheManager cacheMgr2 = (DefaultRepositoryCacheManager) ivy.getSettings().getRepositoryCacheManager("cache2");
// ivy file should be cached in default cache, and artifact in cache2
assertTrue(cacheMgr1.getIvyFileInCache(depMrid).exists());
assertFalse(cacheMgr1.getArchiveFileInCache(depArtifact).exists());
assertEquals(new File(cache, "repo1/mod1.1/ivy-1.0.xml").getCanonicalFile(), cacheMgr1.getIvyFileInCache(depMrid).getCanonicalFile());
assertFalse(cacheMgr2.getIvyFileInCache(depMrid).exists());
assertTrue(cacheMgr2.getArchiveFileInCache(depArtifact).exists());
assertEquals(new File(cache, "repo2/mod1.1-1.0/mod1.1.jar").getCanonicalFile(), cacheMgr2.getArchiveFileInCache(depArtifact).getCanonicalFile());
}
Aggregations