/* * Set up the platform binary download and get it ready to run the tests. * This method is not intended to be called by clients, it will be called * automatically when the clients use a ReconcilerTestSuite. If the executable isn't * found on the file-system after the call, then we fail. */ public void initialize() throws Exception { initialized = false; File file = getPlatformZip(); output = getUniqueFolder(); toRemove.add(output); // for now we will exec to un-tar archives to keep the executable bits if (file.getName().toLowerCase().endsWith(".zip")) { try { FileUtils.unzipFile(file, output); } catch (IOException e) { fail("0.99", e); } } else { untar("1.0", file); } File exe = new File(output, getExeFolder() + "eclipse.exe"); if (!exe.exists()) { exe = new File(output, getExeFolder() + "eclipse"); if (!exe.exists()) fail( "Executable file: " + exe.getAbsolutePath() + "(or .exe) not found after extracting: " + file.getAbsolutePath() + " to: " + output); } initialized = true; }
@SuppressWarnings("restriction") public IStatus getRawArtifact( IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) { // TODO consolidate this logic with getArtifactFile GAV gav = getGAV(descriptor); String classifier = RepositoryLayoutHelper.getClassifier(descriptor.getProperties()); String extension = RepositoryLayoutHelper.getExtension(descriptor.getProperties()); if ("packed".equals(descriptor.getProperty(IArtifactDescriptor.FORMAT))) { classifier = "pack200"; extension = "jar.pack.gz"; } try { InputStream source = contentLocator.getContents(gav, classifier, extension); // copy to destination and close source FileUtils.copyStream(source, true, destination, false); } catch (IOException e) { return new Status( IStatus.ERROR, Activator.ID, "I/O exception while reading artifact " + gav.toExternalForm() + ":" + classifier + ":" + extension, e); } return Status.OK_STATUS; }
/* * Copy the bundle with the given id to the specified location. (location * is parent directory) */ public void copyBundle(String bundlename, File source, File destination) throws IOException { if (destination == null) destination = output; destination = new File(destination, "eclipse/plugins"); if (source == null) { Bundle bundle = TestActivator.getBundle(bundlename); if (bundle == null) { throw new IOException("Could not find: " + bundlename); } String location = bundle.getLocation(); if (location.startsWith("reference:")) location = location.substring("reference:".length()); source = new File(FileLocator.toFileURL(new URL(location)).getFile()); } destination = new File(destination, source.getName()); if (destination.exists()) return; FileUtils.copy(source, destination, new File(""), false); // if the target of the copy doesn't exist, then signal an error assertTrue("Unable to copy " + source + " to " + destination, destination.exists()); }