public void execute() throws BuildException { IvyAdapter adapter = null; try { Class.forName("org.apache.ivy.Ivy"); adapter = new Ivy20Adapter(); } catch (ClassNotFoundException e) { adapter = new Ivy14Adapter(); } String setId = org + "." + module + "." + rev + ".fileset"; adapter.configure(this); adapter.fileset(this, setId); FileSet fileset = (FileSet) getProject().getReference(setId); DirectoryScanner scanner = fileset.getDirectoryScanner(getProject()); String files[] = scanner.getIncludedFiles(); File file = new File(scanner.getBasedir(), files[0]); File importFile = null; if ("xml".equalsIgnoreCase(type)) { importFile = file; } else if ("jar".equalsIgnoreCase(type) || "zip".equalsIgnoreCase(type)) { File dir = new File(file.getParentFile(), file.getName() + ".extracted"); if (!dir.exists() || dir.lastModified() < file.lastModified()) { dir.mkdir(); Expand expand = (Expand) getProject().createTask("unjar"); expand.setSrc(file); expand.setDest(dir); expand.perform(); } importFile = new File(dir, resource); if (!importFile.exists()) { throw new BuildException("Cannot find a '" + resource + "' file in " + file.getName()); } } else { throw new BuildException("Don't know what to do with type: " + type); } log("Importing " + importFile.getName(), Project.MSG_INFO); super.setFile(importFile.getAbsolutePath()); super.execute(); log("Import complete.", Project.MSG_INFO); }