Merge branch 'stable-3.0'

* stable-3.0:
  Remove check whether window.Polymer is defined
  Remove GWT UI
  Revert "Configure whether to allow user to select preserve"

Change-Id: Iede0faa6e84e87b03c2768235eb7aefc4dbcd479
diff --git a/BUILD b/BUILD
index 19f918a..83793ef 100644
--- a/BUILD
+++ b/BUILD
@@ -18,7 +18,7 @@
         "Gerrit-SshModule: com.googlesource.gerrit.plugins.deleteproject.SshModule",
     ],
     resource_jars = [":gr-delete-repo-static"],
-    resources = glob(["src/main/resources/**/*"]),
+    resources = glob(["src/main/resources/Documentation/*.md"]),
     deps = ["@commons-io//jar"],
 )
 
diff --git a/plugin.html b/plugin.html
index 138397d..7118174 100644
--- a/plugin.html
+++ b/plugin.html
@@ -18,11 +18,9 @@
 
 <dom-module id="delete-repo">
   <script>
-    if (window.Polymer) {
-      Gerrit.install(function(plugin) {
-          plugin.registerCustomComponent(
-              'repo-command', 'gr-delete-repo');
-      });
-    }
+    Gerrit.install(function(plugin) {
+        plugin.registerCustomComponent(
+            'repo-command', 'gr-delete-repo');
+    });
   </script>
 </dom-module>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Configuration.java
index a0592dd..ce41836 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Configuration.java
@@ -43,7 +43,6 @@
 
   private final boolean allowDeletionWithTags;
   private final boolean archiveDeletedRepos;
-  private final boolean enablePreserveOption;
   private final boolean hideProjectOnPreserve;
   private final long deleteArchivedReposAfter;
   private final String deletedProjectsParent;
@@ -64,7 +63,6 @@
     this.hideProjectOnPreserve = cfg.getBoolean("hideProjectOnPreserve", false);
     this.deletedProjectsParent = cfg.getString("parentForDeletedProjects", DELETED_PROJECTS_PARENT);
     this.archiveDeletedRepos = cfg.getBoolean("archiveDeletedRepos", false);
-    this.enablePreserveOption = cfg.getBoolean("enablePreserveOption", true);
     this.archiveFolder =
         getArchiveFolderFromConfig(cfg.getString("archiveFolder", pluginData.toString()));
     this.deleteArchivedReposAfter =
@@ -104,10 +102,6 @@
     return deleteArchivedReposAfter;
   }
 
-  public boolean enablePreserveOption() {
-    return enablePreserveOption;
-  }
-
   private Path getArchiveFolderFromConfig(String configValue) {
     try {
       return Files.createDirectories(Paths.get(configValue));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java
index 460ef3e..e5df5a3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java
@@ -46,14 +46,11 @@
   @Option(name = "--preserve-git-repository", usage = "don't delete git repository directory")
   private boolean preserveGitRepository = false;
 
-  private final Configuration cfg;
   private final DeleteProject deleteProject;
   private final DeletePreconditions preConditions;
 
   @Inject
-  protected DeleteCommand(
-      Configuration cfg, DeleteProject deleteProject, DeletePreconditions preConditions) {
-    this.cfg = cfg;
+  protected DeleteCommand(DeleteProject deleteProject, DeletePreconditions preConditions) {
     this.deleteProject = deleteProject;
     this.preConditions = preConditions;
   }
@@ -61,13 +58,6 @@
   @Override
   public void run() throws Failure {
     try {
-      if (preserveGitRepository && !cfg.enablePreserveOption()) {
-        throw new UnloggedFailure(
-            "Given the enablePreserveOption is configured to be false, "
-                + "the --preserve-git-repository option is not allowed.\n"
-                + "Please remove this option and retry.");
-      }
-
       DeleteProject.Input input = new DeleteProject.Input();
       input.force = force;
       input.preserve = preserveGitRepository;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HttpModule.java
index 8cf1874..5066685 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HttpModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HttpModule.java
@@ -17,27 +17,12 @@
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.webui.JavaScriptPlugin;
 import com.google.gerrit.extensions.webui.WebUiPlugin;
-import com.google.inject.Inject;
 import com.google.inject.servlet.ServletModule;
 
 public class HttpModule extends ServletModule {
-  private final Configuration cfg;
-
-  @Inject
-  HttpModule(Configuration cfg) {
-    this.cfg = cfg;
-  }
-
   @Override
   protected void configureServlets() {
-    if (cfg.enablePreserveOption()) {
-      DynamicSet.bind(binder(), WebUiPlugin.class)
-          .toInstance(new JavaScriptPlugin("delete-project.js"));
-      DynamicSet.bind(binder(), WebUiPlugin.class)
-          .toInstance(new JavaScriptPlugin("gr-delete-repo.html"));
-    } else {
-      DynamicSet.bind(binder(), WebUiPlugin.class)
-          .toInstance(new JavaScriptPlugin("delete-project-with-preserve-disabled.js"));
-    }
+    DynamicSet.bind(binder(), WebUiPlugin.class)
+        .toInstance(new JavaScriptPlugin("gr-delete-repo.html"));
   }
 }
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index c4f98ff..01c756b 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -34,19 +34,6 @@
 
 	By default false.
 
-<a id="enablePreserveOption">
-`plugin.@PLUGIN@.enablePreserveOption`
-:	Whether the "Preserve git repository" option is enabled for the user on the
-    UI and ssh delete-project command.
-
-	Disabling the preserve option means the user does not have access to the
-	preserve option on the UI and ssh delete-project command.
-
-	If this is set to false, then preserving deleted git repositories is
-	disabled.
-
-	By default true.
-
 <a id="parentForDeletedProjects">
 `plugin.@PLUGIN@.parentForDeletedProjects`
 :	The name of the project that is used as parent for all deleted
diff --git a/src/main/resources/static/delete-project-with-preserve-disabled.js b/src/main/resources/static/delete-project-with-preserve-disabled.js
deleted file mode 100644
index 550ea6c..0000000
--- a/src/main/resources/static/delete-project-with-preserve-disabled.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2018 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.
-
-if (!window.Polymer) {
-  Gerrit.install(function(self) {
-      function onDeleteProject(c) {
-        var f = c.checkbox();
-        var b = c.button('Delete',
-          {onclick: function(){
-            c.call(
-              {force: f.checked, preserve: false},
-              function(r) {
-                c.hide();
-                window.alert('The project: "'
-                  + c.project
-                  + '" was deleted.'),
-                Gerrit.go('/admin/projects/');
-              });
-          }});
-        c.popup(c.div(
-          c.msg('Are you really sure you want to delete the project: "'
-            + c.project
-            + '"?'),
-          c.br(),
-          c.label(f, 'Delete project even if open changes exist?'),
-          c.br(),
-          b));
-      }
-      self.onAction('project', 'delete', onDeleteProject);
-    });
-}
\ No newline at end of file
diff --git a/src/main/resources/static/delete-project.js b/src/main/resources/static/delete-project.js
deleted file mode 100644
index 2291279..0000000
--- a/src/main/resources/static/delete-project.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2013 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.
-
-if (!window.Polymer) {
-  Gerrit.install(function(self) {
-      function onDeleteProject(c) {
-        var f = c.checkbox();
-        var p = c.checkbox();
-        var b = c.button('Delete',
-          {onclick: function(){
-            c.call(
-              {force: f.checked, preserve: p.checked},
-              function(r) {
-                c.hide();
-                window.alert('The project: "'
-                  + c.project
-                  + '" was deleted.'),
-                Gerrit.go('/admin/projects/');
-              });
-          }});
-        c.popup(c.div(
-          c.msg('Are you really sure you want to delete the project: "'
-            + c.project
-            + '"?'),
-          c.br(),
-          c.label(f, 'Delete project even if open changes exist?'),
-          c.br(),
-          c.label(p, 'Preserve GIT Repository?'),
-          c.br(),
-          b));
-      }
-      self.onAction('project', 'delete', onDeleteProject);
-    });
-}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ConfigurationTest.java b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ConfigurationTest.java
index 8686916..70d1715 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ConfigurationTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ConfigurationTest.java
@@ -65,7 +65,6 @@
     assertThat(deleteConfig.shouldArchiveDeletedRepos()).isFalse();
     assertThat(deleteConfig.getArchiveDuration()).isEqualTo(DEFAULT_ARCHIVE_DURATION_MS);
     assertThat(deleteConfig.getArchiveFolder().toString()).isEqualTo(pluginDataDir.toString());
-    assertThat(deleteConfig.enablePreserveOption()).isTrue();
   }
 
   @Test
@@ -75,7 +74,6 @@
     pluginConfig.setBoolean("allowDeletionOfReposWithTags", false);
     pluginConfig.setBoolean("hideProjectOnPreserve", true);
     pluginConfig.setBoolean("archiveDeletedRepos", true);
-    pluginConfig.setBoolean("enablePreserveOption", false);
     pluginConfig.setString("deleteArchivedReposAfter", CUSTOM_DURATION);
     pluginConfig.setString("archiveFolder", customArchiveFolder.toString());
 
@@ -86,7 +84,6 @@
     assertThat(deleteConfig.deletionWithTagsAllowed()).isFalse();
     assertThat(deleteConfig.projectOnPreserveHidden()).isTrue();
     assertThat(deleteConfig.shouldArchiveDeletedRepos()).isTrue();
-    assertThat(deleteConfig.enablePreserveOption()).isFalse();
     assertThat(deleteConfig.getArchiveDuration()).isEqualTo(Long.parseLong(CUSTOM_DURATION));
     assertThat(deleteConfig.getArchiveFolder().toString())
         .isEqualTo(customArchiveFolder.toString());
diff --git a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProjectIT.java b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProjectIT.java
index bfafec0..1bc8b72 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProjectIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProjectIT.java
@@ -147,31 +147,6 @@
 
   @Test
   @UseLocalDisk
-  @GerritConfig(name = "plugin.delete-project.enablePreserveOption", value = "true")
-  public void testSshDeleteProjPreserveGitRepoEnabled() throws Exception {
-    String cmd = createDeleteCommand("--preserve-git-repository", project.get());
-    adminSshSession.exec(cmd);
-
-    assertThat(adminSshSession.getError()).isNull();
-    assertThat(projectDir.exists()).isTrue();
-  }
-
-  @Test
-  @UseLocalDisk
-  @GerritConfig(name = "plugin.delete-project.enablePreserveOption", value = "false")
-  public void testSshDeleteProjPreserveGitRepoNotEnabled() throws Exception {
-    String cmd = createDeleteCommand("--preserve-git-repository", project.get());
-    adminSshSession.exec(cmd);
-    String expected =
-        "Given the enablePreserveOption is configured to be false, "
-            + "the --preserve-git-repository option is not allowed.\n"
-            + "Please remove this option and retry.\n";
-    assertThat(adminSshSession.getError()).isEqualTo(expected);
-    assertThat(projectDir.exists()).isTrue();
-  }
-
-  @Test
-  @UseLocalDisk
   @GerritConfig(name = "plugin.delete-project.hideProjectOnPreserve", value = "true")
   public void testSshHideProject() throws Exception {
     String cmd = createDeleteCommand("--preserve-git-repository", project.get());