Remove PluginDaemonTest

The class is deprecated and there are only two plugins using it:

- high-availability: this plugin is targetted at 2.13.x and can be
  adapted later to use the LightweightPluginDaemonTest

- project-group-structure: this plugin uses 2.14-SNAPSHOT, and can
  be adapted later to use the LightweightPluginDaemonTest.

Since PluginDaemonTest still has a lot of code to handle both buck
and bazel, it's easier to just remove it than attempt to disentangle
it in order to get rid of the .primary_build_tool references.

Change-Id: Ib99faf5266c22934f1ee7f049b951e4f3dbebf87
diff --git a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/PluginDaemonTest.java b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/PluginDaemonTest.java
deleted file mode 100644
index 2af193f..0000000
--- a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/PluginDaemonTest.java
+++ /dev/null
@@ -1,256 +0,0 @@
-// Copyright (C) 2015 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.acceptance;
-
-import static java.nio.charset.StandardCharsets.UTF_8;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Strings;
-import com.google.gerrit.launcher.GerritLauncher;
-import com.google.gerrit.server.config.SitePaths;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.ProcessBuilder.Redirect;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.util.Properties;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.storage.file.FileBasedConfig;
-import org.eclipse.jgit.util.FS;
-import org.junit.runner.Description;
-
-/** @deprecated use {@link LightweightPluginDaemonTest} instead. */
-@Deprecated
-public abstract class PluginDaemonTest extends AbstractDaemonTest {
-
-  private static final String BUCKLC = "buck";
-  private static final String BAZELLC = "bazel";
-  private static final String BUCKOUT = "buck-out";
-  private static final String BAZELOUT = "bazel-out";
-  private static final String ECLIPSE = "eclipse-out";
-
-  private Path gen;
-  private Path pluginRoot;
-  private Path pluginsSitePath;
-  private Path pluginSubPath;
-  private Path pluginSource;
-  private boolean standalone;
-  private boolean bazel;
-  private Path basePath;
-
-  protected String pluginName;
-  protected Path testSite;
-
-  @Override
-  protected void beforeTest(Description description) throws Exception {
-    locatePaths();
-    retrievePluginName();
-    buildPluginJar();
-    createTestSiteDirs();
-    copyJarToTestSite();
-    beforeTestServerStarts();
-    super.beforeTest(description);
-  }
-
-  protected void beforeTestServerStarts() throws Exception {}
-
-  protected void setPluginConfigString(String name, String value)
-      throws IOException, ConfigInvalidException {
-    SitePaths sitePath = new SitePaths(testSite);
-    FileBasedConfig cfg = getGerritConfigFile(sitePath);
-    cfg.load();
-    cfg.setString("plugin", pluginName, name, value);
-    cfg.save();
-  }
-
-  private FileBasedConfig getGerritConfigFile(SitePaths sitePath) throws IOException {
-    FileBasedConfig cfg = new FileBasedConfig(sitePath.gerrit_config.toFile(), FS.DETECTED);
-    if (!cfg.getFile().exists()) {
-      Path etc_path = Files.createDirectories(sitePath.etc_dir);
-      Files.createFile(etc_path.resolve("gerrit.config"));
-    }
-    return cfg;
-  }
-
-  private void locatePaths() throws IOException {
-    URL pluginClassesUrl = getClass().getProtectionDomain().getCodeSource().getLocation();
-    basePath = Paths.get(pluginClassesUrl.getPath()).getParent();
-
-    int idx = 0;
-    int buckOutIdx = 0;
-    int pluginsIdx = 0;
-    for (Path subPath : basePath) {
-      if (subPath.endsWith("plugins")) {
-        pluginsIdx = idx;
-      }
-      if (subPath.endsWith(BAZELOUT) || subPath.endsWith(ECLIPSE)) {
-        bazel = true;
-        buckOutIdx = idx;
-      }
-      if (subPath.endsWith(BUCKOUT)) {
-        buckOutIdx = idx;
-      }
-      idx++;
-    }
-    standalone = checkStandalone(basePath);
-
-    if (bazel) {
-      pluginRoot = GerritLauncher.resolveInSourceRoot(".");
-      gen = pluginRoot.resolve("bazel-out/local-fastbuild/genfiles");
-    } else {
-      pluginRoot = basePath.getRoot().resolve(basePath.subpath(0, buckOutIdx));
-      gen = pluginRoot.resolve(BUCKOUT).resolve("gen");
-    }
-
-    if (standalone) {
-      pluginSource = pluginRoot;
-    } else {
-      pluginSubPath = basePath.subpath(pluginsIdx, pluginsIdx + 2);
-      pluginSource = pluginRoot.resolve(pluginSubPath);
-    }
-  }
-
-  private boolean checkStandalone(Path basePath) {
-    // TODO(davido): Fix Bazel standalone mode
-    if (bazel) {
-      return false;
-    }
-    String pathCharStringOrNone = "[a-zA-Z0-9._-]*?";
-    Pattern pattern = Pattern.compile(pathCharStringOrNone + "gerrit" + pathCharStringOrNone);
-    Path partialPath = basePath;
-    for (int i = basePath.getNameCount(); i > 0; i--) {
-      int count = partialPath.getNameCount();
-      if (count > 1) {
-        String gerritDirCandidate = partialPath.subpath(count - 2, count - 1).toString();
-        if (pattern.matcher(gerritDirCandidate).matches()) {
-          if (partialPath.endsWith(gerritDirCandidate + "/" + BUCKOUT)
-              || partialPath.endsWith(gerritDirCandidate + "/" + ECLIPSE)) {
-            return false;
-          }
-        }
-      }
-      partialPath = partialPath.getParent();
-    }
-    return true;
-  }
-
-  private void retrievePluginName() throws IOException {
-    if (bazel) {
-      pluginName = basePath.getFileName().toString();
-      return;
-    }
-    Path buildfile = pluginSource.resolve("BUCK");
-    if (!Files.exists(buildfile)) {
-      buildfile = pluginSource.resolve("BUILD");
-    }
-    if (!Files.exists(buildfile)) {
-      throw new IllegalStateException("Cannot find build file in: " + pluginSource);
-    }
-    byte[] bytes = Files.readAllBytes(buildfile);
-    String buckContent = new String(bytes, UTF_8).replaceAll("\\s+", "");
-    Matcher matcher = Pattern.compile("gerrit_plugin\\(name='(.*?)'").matcher(buckContent);
-    if (matcher.find()) {
-      pluginName = matcher.group(1);
-    }
-    if (Strings.isNullOrEmpty(pluginName)) {
-      if (standalone) {
-        pluginName = pluginRoot.getFileName().toString();
-      } else {
-        pluginName = pluginSubPath.getFileName().toString();
-      }
-    }
-  }
-
-  private void buildPluginJar() throws IOException, InterruptedException {
-    Path dir = pluginRoot;
-    String build;
-    if (bazel) {
-      dir = GerritLauncher.resolveInSourceRoot(".");
-      Properties properties = loadBuildProperties(dir.resolve(".primary_build_tool"));
-      build = MoreObjects.firstNonNull(properties.getProperty(BAZELLC), BAZELLC);
-    } else {
-      Properties properties =
-          loadBuildProperties(gen.resolve(Paths.get("tools/buck/buck.properties")));
-      build = MoreObjects.firstNonNull(properties.getProperty(BUCKLC), BUCKLC);
-    }
-    String target;
-    if (standalone) {
-      target = "//:" + pluginName;
-    } else {
-      target = pluginSubPath.toString();
-    }
-
-    ProcessBuilder processBuilder =
-        new ProcessBuilder(build, "build", target)
-            .directory(dir.toFile())
-            .redirectErrorStream(true);
-    Path forceJar = pluginSource.resolve("src/main/java/ForceJarIfMissing.java");
-    if (!bazel) {
-      // otherwise plugin jar creation fails:
-      processBuilder.environment().put("NO_BUCKD", "1");
-      // if exists after cancelled test:
-      Files.deleteIfExists(forceJar);
-      Files.createFile(forceJar);
-    }
-    testSite = tempSiteDir.getRoot().toPath();
-
-    // otherwise process often hangs:
-    Path log = testSite.resolve("log");
-    processBuilder.redirectErrorStream(true);
-    processBuilder.redirectOutput(Redirect.appendTo(log.toFile()));
-
-    try {
-      processBuilder.start().waitFor();
-    } finally {
-      Files.deleteIfExists(forceJar);
-      // otherwise jar not made next time if missing again:
-      processBuilder.start().waitFor();
-    }
-  }
-
-  private Properties loadBuildProperties(Path propertiesPath) throws IOException {
-    Properties properties = new Properties();
-    if (Files.exists(propertiesPath)) {
-      try (InputStream in = Files.newInputStream(propertiesPath)) {
-        properties.load(in);
-      }
-    }
-    return properties;
-  }
-
-  private void createTestSiteDirs() throws IOException {
-    SitePaths sitePath = new SitePaths(testSite);
-    pluginsSitePath = Files.createDirectories(sitePath.plugins_dir);
-    Files.createDirectories(sitePath.tmp_dir);
-    Files.createDirectories(sitePath.etc_dir);
-  }
-
-  private void copyJarToTestSite() throws IOException {
-    Path pluginOut;
-    if (standalone) {
-      pluginOut = gen;
-    } else {
-      pluginOut = gen.resolve(pluginSubPath);
-    }
-    Path jar = pluginOut.resolve(pluginName + ".jar");
-    Path dest = pluginsSitePath.resolve(jar.getFileName());
-    Files.copy(jar, dest, StandardCopyOption.REPLACE_EXISTING);
-  }
-}