Merge branch 'stable-2.16' into stable-3.0 * stable-2.16: Format Java files with google-java-format Change-Id: Id16af3c4724919977b966b8869cbceed4c244f2e
diff --git a/.bazelrc b/.bazelrc deleted file mode 100644 index 615adcd..0000000 --- a/.bazelrc +++ /dev/null
@@ -1,10 +0,0 @@ -build --workspace_status_command="python ./tools/workspace_status.py" - -# Standalone build compatbility with npm requires PATH on action_env (Issue 10372). -build --action_env=PATH - -# See https://github.com/bazelbuild/bazel/issues/7026. Remove when flag is -# flipped in Bazel again. -build --incompatible_strict_action_env - -test --build_tests_only
diff --git a/.bazelversion b/.bazelversion deleted file mode 100644 index fd2a018..0000000 --- a/.bazelversion +++ /dev/null
@@ -1 +0,0 @@ -3.1.0
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index f15f85d..0000000 --- a/.settings/org.eclipse.core.resources.prefs +++ /dev/null
@@ -1,5 +0,0 @@ -#Tue May 15 09:19:33 PDT 2012 -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/test/java=UTF-8 -encoding//src/test/resources=UTF-8
diff --git a/.settings/org.eclipse.core.runtime.prefs b/.settings/org.eclipse.core.runtime.prefs deleted file mode 100644 index 8667cfd..0000000 --- a/.settings/org.eclipse.core.runtime.prefs +++ /dev/null
@@ -1,3 +0,0 @@ -#Tue Sep 02 16:59:24 PDT 2008 -eclipse.preferences.version=1 -line.separator=\n
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 40e022d..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null
@@ -1,126 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.APILeak=warning -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=warning -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled -org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.processAnnotations=enabled -org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index d4218a5..0000000 --- a/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null
@@ -1,61 +0,0 @@ -#Wed Jul 29 11:31:38 PDT 2009 -eclipse.preferences.version=1 -editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true -formatter_profile=_Google Format -formatter_settings_version=11 -org.eclipse.jdt.ui.ignorelowercasenames=true -org.eclipse.jdt.ui.importorder=com.google;com;junit;net;org;java;javax; -org.eclipse.jdt.ui.ondemandthreshold=99 -org.eclipse.jdt.ui.staticondemandthreshold=99 -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/> -sp_cleanup.add_default_serial_version_id=true -sp_cleanup.add_generated_serial_version_id=false -sp_cleanup.add_missing_annotations=false -sp_cleanup.add_missing_deprecated_annotations=true -sp_cleanup.add_missing_methods=false -sp_cleanup.add_missing_nls_tags=false -sp_cleanup.add_missing_override_annotations=true -sp_cleanup.add_serial_version_id=false -sp_cleanup.always_use_blocks=true -sp_cleanup.always_use_parentheses_in_expressions=false -sp_cleanup.always_use_this_for_non_static_field_access=false -sp_cleanup.always_use_this_for_non_static_method_access=false -sp_cleanup.convert_to_enhanced_for_loop=false -sp_cleanup.correct_indentation=false -sp_cleanup.format_source_code=false -sp_cleanup.format_source_code_changes_only=false -sp_cleanup.make_local_variable_final=true -sp_cleanup.make_parameters_final=true -sp_cleanup.make_private_fields_final=true -sp_cleanup.make_type_abstract_if_missing_method=false -sp_cleanup.make_variable_declarations_final=false -sp_cleanup.never_use_blocks=false -sp_cleanup.never_use_parentheses_in_expressions=true -sp_cleanup.on_save_use_additional_actions=true -sp_cleanup.organize_imports=false -sp_cleanup.qualify_static_field_accesses_with_declaring_class=false -sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_with_declaring_class=false -sp_cleanup.qualify_static_method_accesses_with_declaring_class=false -sp_cleanup.remove_private_constructors=true -sp_cleanup.remove_trailing_whitespaces=true -sp_cleanup.remove_trailing_whitespaces_all=true -sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_casts=false -sp_cleanup.remove_unnecessary_nls_tags=false -sp_cleanup.remove_unused_imports=false -sp_cleanup.remove_unused_local_variables=false -sp_cleanup.remove_unused_private_fields=true -sp_cleanup.remove_unused_private_members=false -sp_cleanup.remove_unused_private_methods=true -sp_cleanup.remove_unused_private_types=true -sp_cleanup.sort_members=false -sp_cleanup.sort_members_all=false -sp_cleanup.use_blocks=false -sp_cleanup.use_blocks_only_for_return_and_throw=false -sp_cleanup.use_parentheses_in_expressions=false -sp_cleanup.use_this_for_non_static_field_access=false -sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true -sp_cleanup.use_this_for_non_static_method_access=false -sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/BUILD b/BUILD index febf834..819cac0 100644 --- a/BUILD +++ b/BUILD
@@ -19,7 +19,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"], ) @@ -48,7 +48,9 @@ name = "delete-project_tests", srcs = glob(["src/test/java/**/*.java"]), tags = ["delete-project"], - deps = [":delete-project__plugin_test_deps"], + deps = [ + ":delete-project__plugin_test_deps", + ], ) java_library(
diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index fd419de..0000000 --- a/WORKSPACE +++ /dev/null
@@ -1,58 +0,0 @@ -workspace(name = "delete_project") - -load("//:bazlets.bzl", "load_bazlets") - -load_bazlets( - commit = "855968156ecd58d422218d6b5c9872805df9e9fc", - #local_path = "/home/<user>/projects/bazlets", -) - -# Polymer dependencies -load( - "@com_googlesource_gerrit_bazlets//:gerrit_polymer.bzl", - "gerrit_polymer", -) - -gerrit_polymer() - -# Load closure compiler with transitive dependencies -load("@io_bazel_rules_closure//closure:repositories.bzl", "rules_closure_dependencies", "rules_closure_toolchains") - -rules_closure_dependencies() - -rules_closure_toolchains() - -# Load Gerrit npm_binary toolchain -load("@com_googlesource_gerrit_bazlets//tools:js.bzl", "GERRIT", "npm_binary") - -npm_binary( - name = "polymer-bundler", - repository = GERRIT, -) - -npm_binary( - name = "crisper", - repository = GERRIT, -) - -# Snapshot Plugin API -#load( -# "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl", -# "gerrit_api_maven_local", -#) - -# Load snapshot Plugin API -#gerrit_api_maven_local() - -# Release Plugin API -load( - "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", - "gerrit_api", -) - -# Load release Plugin API -gerrit_api() - -load("//:external_plugin_deps.bzl", "external_plugin_deps") - -external_plugin_deps()
diff --git a/bazlets.bzl b/bazlets.bzl deleted file mode 100644 index f089af4..0000000 --- a/bazlets.bzl +++ /dev/null
@@ -1,18 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") - -NAME = "com_googlesource_gerrit_bazlets" - -def load_bazlets( - commit, - local_path = None): - if not local_path: - git_repository( - name = NAME, - remote = "https://gerrit.googlesource.com/bazlets", - commit = commit, - ) - else: - native.local_repository( - name = NAME, - path = local_path, - )
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl deleted file mode 100644 index ef666ef..0000000 --- a/external_plugin_deps.bzl +++ /dev/null
@@ -1,38 +0,0 @@ -load("//tools/bzl:maven_jar.bzl", "maven_jar") - -def external_plugin_deps(): - maven_jar( - name = "mockito", - artifact = "org.mockito:mockito-core:2.28.2", - sha1 = "91110215a8cb9b77a46e045ee758f77d79167cc0", - deps = [ - "@byte-buddy//jar", - "@byte-buddy-agent//jar", - "@objenesis//jar", - ], - ) - - BYTE_BUDDY_VERSION = "1.9.10" - - maven_jar( - name = "byte-buddy", - artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION, - sha1 = "211a2b4d3df1eeef2a6cacf78d74a1f725e7a840", - ) - - maven_jar( - name = "byte-buddy-agent", - artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION, - sha1 = "9674aba5ee793e54b864952b001166848da0f26b", - ) - - maven_jar( - name = "objenesis", - artifact = "org.objenesis:objenesis:2.6", - sha1 = "639033469776fd37c08358c6b92a4761feb2af4b", - ) - maven_jar( - name = "commons-io", - artifact = "commons-io:commons-io:2.6", - sha1 = "815893df5f31da2ece4040fe0a12fd44b577afaf", - )
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 9fc119e..e5df5a3 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java
@@ -19,7 +19,6 @@ import com.google.gerrit.server.project.ProjectState; import com.google.gerrit.sshd.CommandMetaData; import com.google.gerrit.sshd.SshCommand; -import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import java.io.IOException; import org.kohsuke.args4j.Argument; @@ -47,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; } @@ -62,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; @@ -90,7 +79,7 @@ preConditions.assertCanBeDeleted(rsrc, input); deleteProject.doDelete(rsrc, input); - } catch (RestApiException | OrmException | IOException e) { + } catch (RestApiException | IOException e) { throw die(e); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLog.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLog.java index 374bb14..d3cef9c 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLog.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLog.java
@@ -17,10 +17,10 @@ import com.google.common.collect.ListMultimap; import com.google.common.collect.MultimapBuilder; import com.google.gerrit.extensions.systemstatus.ServerInformation; +import com.google.gerrit.json.OutputFormat; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.AuditEvent; import com.google.gerrit.server.IdentifiedUser; -import com.google.gerrit.server.OutputFormat; import com.google.gerrit.server.audit.AuditService; import com.google.gerrit.server.util.PluginLogFile; import com.google.gerrit.server.util.SystemLog;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLogLayout.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLogLayout.java index 7797c6d..1c5efd3 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLogLayout.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLogLayout.java
@@ -34,7 +34,7 @@ * * <p>The log entry for a failed project deletion will look like this: [2015-03-05 12:14:30,180 * +0100] ERROR 1000000 admin FAIL \ myProject {"preserve":false,"force":false} - * com.google.gwtorm.server.OrmException: \ Failed to access the database + * com.google.gerrit.exceptions.StorageException: \ Failed to access the database */ @Override public String format(LoggingEvent event) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java index ba05668..5bf75c5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditions.java
@@ -21,6 +21,7 @@ import static java.util.stream.Collectors.toSet; import com.google.common.collect.Iterables; +import com.google.gerrit.exceptions.StorageException; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.extensions.api.access.PluginPermission; import com.google.gerrit.extensions.common.ProjectInfo; @@ -42,7 +43,6 @@ import com.google.gerrit.server.submit.MergeOpRepoManager; import com.google.gerrit.server.submit.SubmoduleException; import com.google.gerrit.server.submit.SubmoduleOp; -import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; @@ -128,7 +128,7 @@ throw new CannotDeleteProjectException( String.format("Project '%s' has open changes.", projectNameKey.get())); } - } catch (OrmException e) { + } catch (StorageException e) { throw new CannotDeleteProjectException( String.format("Unable to verify if '%s' has open changes.", projectNameKey.get())); } @@ -143,7 +143,7 @@ "Cannot delete project because it has at least one child: " + Iterables.getOnlyElement(children).name); } - } catch (OrmException | PermissionBackendException | RestApiException e) { + } catch (StorageException | PermissionBackendException | RestApiException e) { throw new CannotDeleteProjectException( String.format("Unable to verify if '%s' has children projects.", rsrc.getName())); } @@ -155,7 +155,7 @@ MergeOpRepoManager mergeOp = mergeOpProvider.get()) { Set<Branch.NameKey> branches = repo.getRefDatabase().getRefsByPrefix(REFS_HEADS).stream() - .map(ref -> new Branch.NameKey(projectNameKey, ref.getName())) + .map(ref -> Branch.nameKey(projectNameKey, ref.getName())) .collect(toSet()); SubmoduleOp sub = subOpFactory.create(branches, mergeOp); for (Branch.NameKey b : branches) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProject.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProject.java index 4b6e75f..1590862 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProject.java
@@ -22,7 +22,6 @@ import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.project.ProjectResource; -import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; @@ -71,8 +70,7 @@ } @Override - public Object apply(ProjectResource rsrc, Input input) - throws OrmException, IOException, RestApiException { + public Object apply(ProjectResource rsrc, Input input) throws IOException, RestApiException { preConditions.assertDeletePermission(rsrc); preConditions.assertCanBeDeleted(rsrc, input); @@ -80,8 +78,7 @@ return Response.none(); } - public void doDelete(ProjectResource rsrc, Input input) - throws OrmException, IOException, RestApiException { + public void doDelete(ProjectResource rsrc, Input input) throws IOException, RestApiException { Project project = rsrc.getProjectState().getProject(); boolean preserve = input != null && input.preserve; Exception ex = null;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HideProject.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HideProject.java index f529c54..5ed2efe 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HideProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HideProject.java
@@ -41,24 +41,27 @@ private final ProjectCache projectCache; private final CreateProject createProject; private final Configuration cfg; + private final ProjectConfig.Factory projectConfigFactory; @Inject HideProject( MetaDataUpdate.Server metaDataUpdateFactory, ProjectCache projectCache, CreateProject createProject, - Configuration cfg) { + Configuration cfg, + ProjectConfig.Factory projectConfigFactory) { this.metaDataUpdateFactory = metaDataUpdateFactory; this.projectCache = projectCache; this.createProject = createProject; this.cfg = cfg; + this.projectConfigFactory = projectConfigFactory; } public void apply(ProjectResource rsrc) throws IOException, RestApiException { try { MetaDataUpdate md = metaDataUpdateFactory.create(rsrc.getNameKey()); - ProjectConfig projectConfig = ProjectConfig.read(md); + ProjectConfig projectConfig = projectConfigFactory.read(md); Project p = projectConfig.getProject(); p.setState(ProjectState.HIDDEN); @@ -81,7 +84,7 @@ } private void createProjectIfMissing(String projectName) throws IOException, RestApiException { - if (projectCache.get(new Project.NameKey(projectName)) == null) { + if (projectCache.get(Project.nameKey(projectName)) == null) { try { createProject.apply(TopLevelResource.INSTANCE, IdString.fromDecoded(projectName), null); } catch (RestApiException | ConfigInvalidException | PermissionBackendException e) {
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/java/com/googlesource/gerrit/plugins/deleteproject/Module.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Module.java index 4826666..7a91b29 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Module.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Module.java
@@ -26,7 +26,6 @@ import com.google.inject.Inject; import com.google.inject.internal.UniqueAnnotations; import com.googlesource.gerrit.plugins.deleteproject.cache.CacheDeleteHandler; -import com.googlesource.gerrit.plugins.deleteproject.database.DatabaseDeleteHandler; import com.googlesource.gerrit.plugins.deleteproject.fs.ArchiveRepositoryRemover; import com.googlesource.gerrit.plugins.deleteproject.fs.DeleteTrashFolders; import com.googlesource.gerrit.plugins.deleteproject.fs.FilesystemDeleteHandler; @@ -53,7 +52,6 @@ bind(CapabilityDefinition.class) .annotatedWith(Exports.named(DELETE_OWN_PROJECT)) .to(DeleteOwnProjectCapability.class); - bind(DatabaseDeleteHandler.class); bind(FilesystemDeleteHandler.class); bind(DeletePreconditions.class); if (scheduleCleaning) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/cache/CacheDeleteHandler.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/cache/CacheDeleteHandler.java index c453478..bdf3ff5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/cache/CacheDeleteHandler.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/cache/CacheDeleteHandler.java
@@ -17,7 +17,6 @@ import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.project.ProjectCache; import com.google.inject.Inject; -import java.io.IOException; public class CacheDeleteHandler { @@ -28,7 +27,7 @@ this.projectCache = projectCache; } - public void delete(Project project) throws IOException { + public void delete(Project project) { projectCache.remove(project); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java index 85b1dfc..a54b8c0 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java
@@ -18,125 +18,61 @@ import static java.util.stream.Collectors.toList; import com.google.common.flogger.FluentLogger; -import com.google.gerrit.extensions.registration.DynamicItem; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; -import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.reviewdb.server.ReviewDb; -import com.google.gerrit.reviewdb.server.ReviewDbUtil; import com.google.gerrit.server.StarredChangesUtil; import com.google.gerrit.server.UserInitiated; import com.google.gerrit.server.account.AccountState; import com.google.gerrit.server.account.AccountsUpdate; import com.google.gerrit.server.account.ProjectWatches.ProjectWatchKey; -import com.google.gerrit.server.change.AccountPatchReviewStore; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.index.change.ChangeIndexer; import com.google.gerrit.server.notedb.ChangeNotes; import com.google.gerrit.server.notedb.ChangeNotes.Factory.ChangeNotesResult; -import com.google.gerrit.server.notedb.NotesMigration; import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.query.account.InternalAccountQuery; -import com.google.gwtorm.jdbc.JdbcSchema; -import com.google.gwtorm.server.OrmException; -import com.google.gwtorm.server.ResultSet; import com.google.inject.Inject; import com.google.inject.Provider; import java.io.IOException; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.eclipse.jgit.errors.ConfigInvalidException; public class DatabaseDeleteHandler { private static final FluentLogger log = FluentLogger.forEnclosingClass(); - private final Provider<ReviewDb> dbProvider; private final StarredChangesUtil starredChangesUtil; - private final DynamicItem<AccountPatchReviewStore> accountPatchReviewStore; private final ChangeIndexer indexer; private final Provider<InternalAccountQuery> accountQueryProvider; private final Provider<AccountsUpdate> accountsUpdateProvider; private final ChangeNotes.Factory schemaFactoryNoteDb; private final GitRepositoryManager repoManager; - private final NotesMigration migration; @Inject public DatabaseDeleteHandler( - Provider<ReviewDb> dbProvider, StarredChangesUtil starredChangesUtil, - DynamicItem<AccountPatchReviewStore> accountPatchReviewStore, ChangeIndexer indexer, ChangeNotes.Factory schemaFactoryNoteDb, - NotesMigration migration, GitRepositoryManager repoManager, Provider<InternalAccountQuery> accountQueryProvider, @UserInitiated Provider<AccountsUpdate> accountsUpdateProvider) { - this.dbProvider = dbProvider; this.starredChangesUtil = starredChangesUtil; - this.accountPatchReviewStore = accountPatchReviewStore; this.indexer = indexer; this.accountQueryProvider = accountQueryProvider; this.accountsUpdateProvider = accountsUpdateProvider; this.schemaFactoryNoteDb = schemaFactoryNoteDb; this.repoManager = repoManager; - this.migration = migration; } - public void delete(Project project) throws OrmException, IOException { - ReviewDb db = ReviewDbUtil.unwrapDb(dbProvider.get()); - if (isReviewDb()) { - Connection conn = ((JdbcSchema) db).getConnection(); - try { - conn.setAutoCommit(false); - try { - atomicDelete(db, project, getChangesList(project, conn)); - conn.commit(); - } finally { - conn.setAutoCommit(true); - } - } catch (SQLException e) { - try { - conn.rollback(); - } catch (SQLException ex) { - throw new OrmException(ex); - } - throw new OrmException(e); - } - } else { - atomicDelete(db, project, getChangesListFromNoteDb(project)); - } - } - - private boolean isReviewDb() { - return !migration.disableChangeReviewDb(); - } - - private List<Change.Id> getChangesList(Project project, Connection conn) throws SQLException { - try (PreparedStatement changesForProject = - conn.prepareStatement("SELECT change_id FROM changes WHERE dest_project_name = ?")) { - changesForProject.setString(1, project.getName()); - try (java.sql.ResultSet resultSet = changesForProject.executeQuery()) { - List<Change.Id> changeIds = new ArrayList<>(); - while (resultSet.next()) { - changeIds.add(new Change.Id(resultSet.getInt(1))); - } - return changeIds; - } - } catch (SQLException e) { - throw new SQLException("Unable to get list of changes for project " + project.getName(), e); - } + public void delete(Project project) throws IOException { + atomicDelete(project, getChangesListFromNoteDb(project)); } private List<Change.Id> getChangesListFromNoteDb(Project project) throws IOException { Project.NameKey projectKey = project.getNameKey(); List<Change.Id> changeIds = schemaFactoryNoteDb - .scan(repoManager.openRepository(projectKey), dbProvider.get(), projectKey) + .scan(repoManager.openRepository(projectKey), projectKey) .map(ChangeNotesResult::id) .collect(toList()); log.atFine().log( @@ -145,8 +81,7 @@ return changeIds; } - private void deleteChanges(ReviewDb db, Project.NameKey project, List<Change.Id> changeIds) - throws OrmException { + private void deleteChanges(Project.NameKey project, List<Change.Id> changeIds) { for (Change.Id id : changeIds) { try { @@ -154,39 +89,14 @@ } catch (NoSuchChangeException e) { // we can ignore the exception during delete } - if (isReviewDb()) { - ResultSet<PatchSet> patchSets = db.patchSets().byChange(id); - if (patchSets != null) { - deleteFromPatchSets(db, patchSets); - } - - // In the future, use schemaVersion to decide what to delete. - db.patchComments().delete(db.patchComments().byChange(id)); - db.patchSetApprovals().delete(db.patchSetApprovals().byChange(id)); - - db.changeMessages().delete(db.changeMessages().byChange(id)); - db.changes().deleteKeys(Collections.singleton(id)); - } // Delete from the secondary index - try { - indexer.delete(id); - } catch (IOException e) { - log.atSevere().withCause(e).log("Failed to delete change %s from index", id); - } + indexer.delete(id); } } - private void deleteFromPatchSets(ReviewDb db, ResultSet<PatchSet> patchSets) throws OrmException { - for (PatchSet patchSet : patchSets) { - accountPatchReviewStore.get().clearReviewed(patchSet.getId()); - db.patchSets().delete(Collections.singleton(patchSet)); - } - } + public void atomicDelete(Project project, List<Change.Id> changeIds) { - public void atomicDelete(ReviewDb db, Project project, List<Change.Id> changeIds) - throws OrmException { - - deleteChanges(db, project.getNameKey(), changeIds); + deleteChanges(project.getNameKey(), changeIds); for (AccountState a : accountQueryProvider.get().byWatchedProject(project.getNameKey())) { Account.Id accountId = a.getAccount().getId();
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md deleted file mode 100644 index 3432652..0000000 --- a/src/main/resources/Documentation/build.md +++ /dev/null
@@ -1,86 +0,0 @@ -Build -===== - -This plugin is built with Bazel and two build modes are supported: - -* Standalone -* In Gerrit tree. - -Standalone build mode is recommended, as this mode doesn't require local Gerrit -tree to exist. - -## Build standalone - -To build the plugin, issue the following command: - -``` - bazel build @PLUGIN@ -``` - -The output is created in - -``` - bazel-bin/@PLUGIN@.jar -``` - -To package the plugin sources run: - -``` - bazel build lib@PLUGIN@__plugin-src.jar -``` - -The output is created in: - -``` - bazel-bin/lib@PLUGIN@__plugin-src.jar -``` - -To execute the tests run: - -``` - bazel test //... -``` - -This project can be imported into the Eclipse IDE. Execute: - -``` - ./tools/eclipse/project.sh -``` - -to generate the required files and then import the project. - - -## Build in Gerrit tree - -Clone or link this plugin to the plugins directory of Gerrit's source -tree, and issue the command: - -``` - bazel build plugins/@PLUGIN@ -``` - -The output is created in - -``` - bazel-bin/plugins/@PLUGIN@/@PLUGIN@.jar -``` - -To execute the tests run: - -``` - bazel test plugins/@PLUGIN@:@PLUGIN@_tests -``` - -or filtering using the comma separated tags: - -```` - bazel test --test_tag_filters=@PLUGIN@ //... -```` - -This project can be imported into the Eclipse IDE. -Add the plugin name to the `CUSTOM_PLUGINS` set in -Gerrit core in `tools/bzl/plugins.bzl`, and execute: - -``` - ./tools/eclipse/project.py -```
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md index 41b8490..4b5f6f2 100644 --- a/src/main/resources/Documentation/config.md +++ b/src/main/resources/Documentation/config.md
@@ -33,18 +33,6 @@ By default false. -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. - plugin.@PLUGIN@.parentForDeletedProjects : The name of the project that is used as parent for all deleted projects that were preserved by hiding them.
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 a2c1e20..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. - -Gerrit.install(function(self) { - if (window.Polymer) { return; } - - 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); -});
diff --git a/src/main/resources/static/delete-project.js b/src/main/resources/static/delete-project.js deleted file mode 100644 index 5703504..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. - -Gerrit.install(function(self) { - if (window.Polymer) { return; } - - 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/DeletePreconditionsTest.java b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditionsTest.java index 1074e65..44bcc8c 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditionsTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeletePreconditionsTest.java
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.when; import com.google.common.collect.ImmutableList; +import com.google.gerrit.exceptions.StorageException; import com.google.gerrit.extensions.api.access.PluginPermission; import com.google.gerrit.extensions.common.ProjectInfo; import com.google.gerrit.extensions.restapi.AuthException; @@ -41,7 +42,6 @@ import com.google.gerrit.server.restapi.project.ListChildProjects; import com.google.gerrit.server.submit.MergeOpRepoManager; import com.google.gerrit.server.submit.SubmoduleOp; -import com.google.gwtorm.server.OrmException; import com.google.inject.Provider; import org.junit.Before; import org.junit.Test; @@ -52,7 +52,7 @@ @RunWith(MockitoJUnitRunner.class) public class DeletePreconditionsTest { private static final String PLUGIN_NAME = "delete-project"; - private static final Project.NameKey PROJECT_NAMEKEY = new Project.NameKey("test-project"); + private static final Project.NameKey PROJECT_NAMEKEY = Project.nameKey("test-project"); @Mock private Configuration config; @Mock private Provider<ListChildProjects> listChildProjectsProvider; @@ -164,7 +164,7 @@ @Test public void testUnableToAssertOpenChanges() throws Exception { InternalChangeQuery queryChange = mock(InternalChangeQuery.class); - doThrow(OrmException.class).when(queryChange).byProjectOpen(PROJECT_NAMEKEY); + doThrow(StorageException.class).when(queryChange).byProjectOpen(PROJECT_NAMEKEY); when(queryProvider.get()).thenReturn(queryChange); String expectedMessage = String.format("Unable to verify if '%s' has open changes.", PROJECT_NAMEKEY.get());
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 36d1ab3..8795fde 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProjectIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProjectIT.java
@@ -26,13 +26,14 @@ import com.google.gerrit.acceptance.TestPlugin; import com.google.gerrit.acceptance.UseLocalDisk; import com.google.gerrit.acceptance.UseSsh; +import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations; import com.google.gerrit.common.data.Permission; import com.google.gerrit.extensions.client.ProjectState; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.server.project.ProjectConfig; -import com.google.gwtorm.server.OrmException; +import com.google.inject.Inject; import com.googlesource.gerrit.plugins.deleteproject.DeleteProject.Input; import java.io.File; import java.io.IOException; @@ -61,6 +62,8 @@ private static final String ARCHIVE_FOLDER = "archiveFolder"; private static final String PARENT_FOLDER = "parentFolder"; + @Inject private RequestScopeOperations requestScopeOperations; + private File archiveFolder; private File projectDir; @@ -161,31 +164,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()); @@ -202,7 +180,7 @@ @Test @UseLocalDisk public void testDeleteProjWithChildren() throws Exception { - String childrenString = createProject("foo", project, true).get(); + String childrenString = createProjectOverAPI("foo", project, true, null).get(); verifyProjectRepoExists(Project.NameKey.parse(childrenString)); String cmd = createDeleteCommand(project.get()); @@ -267,7 +245,7 @@ assertThat(isEmpty(archiveFolder.toPath())).isTrue(); String name = "pj1"; - String projectName = createProject(name).get(); + String projectName = createProjectOverAPI(name, null, true, null).get(); File projectDir = verifyProjectRepoExists(Project.NameKey.parse(projectName)); Path parentFolder = projectDir.toPath().getParent().resolve(PARENT_FOLDER).resolve(projectName); @@ -301,7 +279,7 @@ } private RestResponse httpDeleteProjectHelper(boolean force) throws Exception { - setApiUser(user); + requestScopeOperations.setApiUser(user.id()); sender.clear(); String endPoint = "/projects/" + project.get() + "/delete-project~delete"; Input i = new Input(); @@ -317,7 +295,7 @@ private void pushTagOldCommitNotForce() throws Exception { testRepo = cloneProject(project, user); - commitBuilder().ident(user.getIdent()).message("subject (" + System.nanoTime() + ")").create(); + commitBuilder().ident(user.newIdent()).message("subject (" + System.nanoTime() + ")").create(); String tagName = "v1_" + System.nanoTime(); grant(project, "refs/for/refs/heads/master", Permission.SUBMIT, false, REGISTERED_USERS); @@ -341,7 +319,7 @@ } } - private void assertAllChangesDeletedInIndex() throws OrmException { + private void assertAllChangesDeletedInIndex() { assertThat(queryProvider.get().byProject(project)).isEmpty(); }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjectsTest.java b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjectsTest.java index 3b18ba3..cc6e1f1 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjectsTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjectsTest.java
@@ -92,10 +92,10 @@ } private void assertProtected(String name) { - assertThat(protectedProjects.isProtected(new Project.NameKey(name))).isTrue(); + assertThat(protectedProjects.isProtected(Project.nameKey(name))).isTrue(); } private void assertNotProtected(String name) { - assertThat(protectedProjects.isProtected(new Project.NameKey(name))).isFalse(); + assertThat(protectedProjects.isProtected(Project.nameKey(name))).isFalse(); } }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandlerTest.java b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandlerTest.java index c03b810..de59ac3 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandlerTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandlerTest.java
@@ -62,7 +62,7 @@ public void shouldDeleteRepository() throws Exception { String repoName = "testRepo"; Repository repository = createRepository(repoName); - Project.NameKey nameKey = new Project.NameKey(repoName); + Project.NameKey nameKey = Project.nameKey(repoName); Project project = new Project(nameKey); when(repoManager.openRepository(nameKey)).thenReturn(repository); when(config.shouldArchiveDeletedRepos()).thenReturn(false); @@ -75,7 +75,7 @@ public void shouldDeleteEmptyParentFolders() throws Exception { String repoName = "a/b/c"; Repository repository = createRepository(repoName); - Project.NameKey nameKey = new Project.NameKey(repoName); + Project.NameKey nameKey = Project.nameKey(repoName); Project project = new Project(nameKey); when(repoManager.openRepository(nameKey)).thenReturn(repository); fsDeleteHandler = new FilesystemDeleteHandler(repoManager, deletedListener, config); @@ -91,7 +91,7 @@ String repoToKeepName = "a/b/e"; Repository repoToKeep = createRepository(repoToKeepName); - Project.NameKey nameKey = new Project.NameKey(repoToDeleteName); + Project.NameKey nameKey = Project.nameKey(repoToDeleteName); Project project = new Project(nameKey); when(repoManager.openRepository(nameKey)).thenReturn(repoToDelete); fsDeleteHandler = new FilesystemDeleteHandler(repoManager, deletedListener, config); @@ -104,7 +104,7 @@ public void shouldPreserveRepository() throws Exception { String repoName = "preservedRepo"; Repository repository = createRepository(repoName); - Project.NameKey nameKey = new Project.NameKey(repoName); + Project.NameKey nameKey = Project.nameKey(repoName); Project project = new Project(nameKey); when(repoManager.openRepository(nameKey)).thenReturn(repository); fsDeleteHandler = new FilesystemDeleteHandler(repoManager, deletedListener, config); @@ -126,7 +126,7 @@ Path archiveFolder = basePath.resolve("test_archive"); when(config.shouldArchiveDeletedRepos()).thenReturn(true); when(config.getArchiveFolder()).thenReturn(archiveFolder); - Project.NameKey nameKey = new Project.NameKey(repoName); + Project.NameKey nameKey = Project.nameKey(repoName); Project project = new Project(nameKey); when(repoManager.openRepository(nameKey)).thenReturn(repository); fsDeleteHandler = new FilesystemDeleteHandler(repoManager, deletedListener, config);
diff --git a/tools/BUILD b/tools/BUILD deleted file mode 100644 index 1fa2160..0000000 --- a/tools/BUILD +++ /dev/null
@@ -1 +0,0 @@ -# Empty file - bazel treat directories with BUILD file as a package \ No newline at end of file
diff --git a/tools/bzl/BUILD b/tools/bzl/BUILD deleted file mode 100644 index c5ed0b7..0000000 --- a/tools/bzl/BUILD +++ /dev/null
@@ -1 +0,0 @@ -# Empty file required by Bazel
diff --git a/tools/bzl/classpath.bzl b/tools/bzl/classpath.bzl deleted file mode 100644 index c921d01..0000000 --- a/tools/bzl/classpath.bzl +++ /dev/null
@@ -1,6 +0,0 @@ -load( - "@com_googlesource_gerrit_bazlets//tools:classpath.bzl", - _classpath_collector = "classpath_collector", -) - -classpath_collector = _classpath_collector
diff --git a/tools/bzl/genrule2.bzl b/tools/bzl/genrule2.bzl deleted file mode 100644 index 61c4e18..0000000 --- a/tools/bzl/genrule2.bzl +++ /dev/null
@@ -1,3 +0,0 @@ -load("@com_googlesource_gerrit_bazlets//tools:genrule2.bzl", _genrule2 = "genrule2") - -genrule2 = _genrule2
diff --git a/tools/bzl/js.bzl b/tools/bzl/js.bzl deleted file mode 100644 index 0f9e367..0000000 --- a/tools/bzl/js.bzl +++ /dev/null
@@ -1,3 +0,0 @@ -load("@com_googlesource_gerrit_bazlets//tools:js.bzl", _polygerrit_plugin = "polygerrit_plugin") - -polygerrit_plugin = _polygerrit_plugin
diff --git a/tools/bzl/junit.bzl b/tools/bzl/junit.bzl deleted file mode 100644 index 97307bd..0000000 --- a/tools/bzl/junit.bzl +++ /dev/null
@@ -1,6 +0,0 @@ -load( - "@com_googlesource_gerrit_bazlets//tools:junit.bzl", - _junit_tests = "junit_tests", -) - -junit_tests = _junit_tests
diff --git a/tools/bzl/maven_jar.bzl b/tools/bzl/maven_jar.bzl deleted file mode 100644 index 35ea8ce..0000000 --- a/tools/bzl/maven_jar.bzl +++ /dev/null
@@ -1,3 +0,0 @@ -load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl", _maven_jar = "maven_jar") - -maven_jar = _maven_jar
diff --git a/tools/bzl/plugin.bzl b/tools/bzl/plugin.bzl deleted file mode 100644 index 4d2dbdd..0000000 --- a/tools/bzl/plugin.bzl +++ /dev/null
@@ -1,10 +0,0 @@ -load( - "@com_googlesource_gerrit_bazlets//:gerrit_plugin.bzl", - _gerrit_plugin = "gerrit_plugin", - _plugin_deps = "PLUGIN_DEPS", - _plugin_test_deps = "PLUGIN_TEST_DEPS", -) - -gerrit_plugin = _gerrit_plugin -PLUGIN_DEPS = _plugin_deps -PLUGIN_TEST_DEPS = _plugin_test_deps
diff --git a/tools/eclipse/BUILD b/tools/eclipse/BUILD deleted file mode 100644 index 0c7503d..0000000 --- a/tools/eclipse/BUILD +++ /dev/null
@@ -1,9 +0,0 @@ -load("//tools/bzl:classpath.bzl", "classpath_collector") - -classpath_collector( - name = "main_classpath_collect", - testonly = 1, - deps = [ - "//:delete-project__plugin_test_deps", - ], -)
diff --git a/tools/eclipse/project.sh b/tools/eclipse/project.sh deleted file mode 100755 index 55713c7..0000000 --- a/tools/eclipse/project.sh +++ /dev/null
@@ -1,16 +0,0 @@ -#!/bin/bash -# Copyright (C) 2017 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. - -`bazel query @com_googlesource_gerrit_bazlets//tools/eclipse:project --output location | sed s/BUILD:.*//`project.py -n delete-project -r .
diff --git a/tools/workspace_status.py b/tools/workspace_status.py deleted file mode 100644 index e65db86..0000000 --- a/tools/workspace_status.py +++ /dev/null
@@ -1,31 +0,0 @@ -#!/usr/bin/env python - -# This script will be run by bazel when the build process starts to -# generate key-value information that represents the status of the -# workspace. The output should be like -# -# KEY1 VALUE1 -# KEY2 VALUE2 -# -# If the script exits with non-zero code, it's considered as a failure -# and the output will be discarded. - -from __future__ import print_function -import subprocess -import sys - -CMD = ['git', 'describe', '--always', '--match', 'v[0-9].*', '--dirty'] - - -def revision(): - try: - return subprocess.check_output(CMD).strip().decode("utf-8") - except OSError as err: - print('could not invoke git: %s' % err, file=sys.stderr) - sys.exit(1) - except subprocess.CalledProcessError as err: - print('error using git: %s' % err, file=sys.stderr) - sys.exit(1) - - -print("STABLE_BUILD_DELETE-PROJECT_LABEL %s" % revision())