Java源码示例:org.codehaus.plexus.archiver.tar.TarGZipUnArchiver

示例1
protected boolean install() throws IOException {
  HttpURLConnection.setFollowRedirects(true);
  final URL url = new URL(DYNDB_URL + DYNDB_TAR);

  final File downloadFile = new File(dynLocalDir, DYNDB_TAR);
  if (!downloadFile.exists()) {
    try (FileOutputStream fos = new FileOutputStream(downloadFile)) {
      IOUtils.copyLarge(url.openStream(), fos);
      fos.flush();
    }
  }

  final TarGZipUnArchiver unarchiver = new TarGZipUnArchiver();
  unarchiver.enableLogging(new ConsoleLogger(Logger.WARN, "DynamoDB Local Unarchive"));
  unarchiver.setSourceFile(downloadFile);
  unarchiver.setDestDirectory(dynLocalDir);
  unarchiver.extract();

  if (!downloadFile.delete()) {
    LOGGER.warn("cannot delete " + downloadFile.getAbsolutePath());
  }

  // Check the install
  if (!isInstalled()) {
    LOGGER.error("DynamoDB Local install failed");
    return false;
  }

  return true;
}
 
示例2
public static void extractTarGz(File archiveFile, File targetDir) {
	TarGZipUnArchiver unArchiver = new TarGZipUnArchiver(archiveFile);
	unArchiver.setDestDirectory(targetDir);
	// We don't want logging, but this is necessary to avoid an NPE
	unArchiver.enableLogging(new ConsoleLogger(ConsoleLogger.LEVEL_DISABLED, "console"));
	unArchiver.extract();
}
 
示例3
/**
 * Unpack a .tar.gz archive and return the folder it was unpacked in.
 *
 * @param tarGz The archive
 * @return The unpacked folder
 */
public static File unpack(File tarGz) {
    File unpackDir = Files.createTempDir();
    unpackDir.deleteOnExit();

    TarGZipUnArchiver unArchiver = new TarGZipUnArchiver(tarGz);
    // Needed to avoid a null pointer...
    unArchiver.enableLogging(new ConsoleLogger(Logger.LEVEL_DISABLED, "console"));
    unArchiver.setDestDirectory(unpackDir);
    unArchiver.extract();

    return unpackDir;
}
 
示例4
private List<File> unpack(File tgzFile) {
    TarGZipUnArchiver unarchiver = new TarGZipUnArchiver(tgzFile);
    unarchiver.enableLogging(new ConsoleLogger(Logger.LEVEL_DISABLED, "console"));
    unarchiver.setDestDirectory(unpackDir);
    unarchiver.extract();

    return ImmutableList.copyOf(unpackDir.listFiles());
}
 
示例5
private boolean install() throws IOException, ArchiveException {
  LOGGER.info("Installing {}", KUDU_DEB_PACKAGE);

  LOGGER.debug("downloading kudu debian package");
  final File debPackageFile = new File(kuduLocalDir, KUDU_DEB_PACKAGE);
  if (!debPackageFile.exists()) {
    HttpURLConnection.setFollowRedirects(true);
    final URL url = new URL(KUDU_REPO_URL + KUDU_DEB_PACKAGE);
    try (FileOutputStream fos = new FileOutputStream(debPackageFile)) {
      IOUtils.copy(url.openStream(), fos);
      fos.flush();
    }
  }

  LOGGER.debug("extracting kudu debian package data contents");
  final File debDataTarGz = new File(kuduLocalDir, "data.tar.gz");
  if (!debDataTarGz.exists()) {
    try (FileInputStream fis = new FileInputStream(debPackageFile);
        ArchiveInputStream debInputStream =
            new ArchiveStreamFactory().createArchiveInputStream("ar", fis)) {
      ArchiveEntry entry = null;
      while ((entry = debInputStream.getNextEntry()) != null) {
        if (debDataTarGz.getName().equals(entry.getName())) {
          try (FileOutputStream fos = new FileOutputStream(debDataTarGz)) {
            IOUtils.copy(debInputStream, fos);
          }
          break;
        }
      }
    }
  }

  LOGGER.debug("extracting kudu data contents");
  final TarGZipUnArchiver unarchiver = new TarGZipUnArchiver();
  unarchiver.enableLogging(new ConsoleLogger(Logger.WARN, "Kudu Local Unarchive"));
  unarchiver.setSourceFile(debDataTarGz);
  unarchiver.setDestDirectory(kuduLocalDir);
  unarchiver.extract();

  for (final File f : new File[] {debPackageFile, debDataTarGz}) {
    if (!f.delete()) {
      LOGGER.warn("cannot delete {}", f.getAbsolutePath());
    }
  }

  LOGGER.debug("moving kudu master and tablet binaries to {}", kuduLocalDir);
  // move the master and tablet server binaries into the kudu local directory
  final Path kuduBin =
      Paths.get(kuduLocalDir.getAbsolutePath(), "usr", "lib", "kudu", "sbin-release");
  final File kuduMasterBinary = kuduBin.resolve(KUDU_MASTER).toFile();
  final File kuduTabletBinary = kuduBin.resolve(KUDU_TABLET).toFile();
  kuduMasterBinary.setExecutable(true);
  kuduTabletBinary.setExecutable(true);
  FileUtils.moveFileToDirectory(kuduMasterBinary, kuduLocalDir, false);
  FileUtils.moveFileToDirectory(kuduTabletBinary, kuduLocalDir, false);

  if (isInstalled()) {
    LOGGER.info("Kudu Local installation successful");
    return true;
  } else {
    LOGGER.error("Kudu Local installation failed");
    return false;
  }
}
 
示例6
protected boolean install() throws IOException {
  final URL url = new URL(downloadUrl + "/" + fileName);

  final File downloadFile = new File(sdkDir.getParentFile(), fileName);
  if (!downloadFile.exists()) {
    try (FileOutputStream fos = new FileOutputStream(downloadFile)) {
      IOUtils.copyLarge(url.openStream(), fos);
      fos.flush();
    }
  }
  if (downloadFile.getName().endsWith(".zip")) {
    ZipUtils.unZipFile(downloadFile, sdkDir.getAbsolutePath());
  } else if (downloadFile.getName().endsWith(".tar.gz")) {
    final TarGZipUnArchiver unarchiver = new TarGZipUnArchiver();
    unarchiver.enableLogging(new ConsoleLogger(Logger.LEVEL_WARN, "Gcloud SDK Unarchive"));
    unarchiver.setSourceFile(downloadFile);
    unarchiver.setDestDirectory(sdkDir);
    unarchiver.extract();
  }
  if (!downloadFile.delete()) {
    LOGGER.warn("cannot delete " + downloadFile.getAbsolutePath());
  }
  // Check the install
  if (!isInstalled()) {
    LOGGER.error("Gcloud install failed");
    return false;
  }

  // Install the beta components
  final File gcloudExe = new File(sdkDir, GCLOUD_EXE_DIR + "/gcloud");

  final CommandLine cmdLine = new CommandLine(gcloudExe);
  cmdLine.addArgument("components");
  cmdLine.addArgument("install");
  cmdLine.addArgument("beta");
  cmdLine.addArgument("--quiet");
  final DefaultExecutor executor = new DefaultExecutor();
  final int exitValue = executor.execute(cmdLine);

  return (exitValue == 0);
}