Format all Java files with google-java-format
Change-Id: If9fe05d620f1d44e5eb0198772030414aabfdc4b
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/CannotDeleteProjectException.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/CannotDeleteProjectException.java
index 6b737ca..3cf3912 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/CannotDeleteProjectException.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/CannotDeleteProjectException.java
@@ -17,10 +17,7 @@
public class CannotDeleteProjectException extends Exception {
private static final long serialVersionUID = 1L;
- /**
- * Thrown when trying to delete a project which can not
- * be currently deleted.
- */
+ /** Thrown when trying to delete a project which can not be currently deleted. */
public CannotDeleteProjectException(String message) {
super(message);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteAction.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteAction.java
index 44e7ee9..73cad25 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteAction.java
@@ -22,16 +22,15 @@
import com.google.gerrit.server.project.ProjectResource;
import com.google.inject.Inject;
import com.google.inject.Provider;
-
import com.googlesource.gerrit.plugins.deleteproject.cache.CacheDeleteHandler;
import com.googlesource.gerrit.plugins.deleteproject.database.DatabaseDeleteHandler;
import com.googlesource.gerrit.plugins.deleteproject.fs.FilesystemDeleteHandler;
import com.googlesource.gerrit.plugins.deleteproject.projectconfig.ProjectConfigDeleteHandler;
-public class DeleteAction extends DeleteProject implements
- UiAction<ProjectResource> {
+public class DeleteAction extends DeleteProject implements UiAction<ProjectResource> {
@Inject
- DeleteAction(AllProjectsNameProvider allProjectsNameProvider,
+ DeleteAction(
+ AllProjectsNameProvider allProjectsNameProvider,
DatabaseDeleteHandler dbHandler,
FilesystemDeleteHandler fsHandler,
CacheDeleteHandler cacheHandler,
@@ -41,24 +40,32 @@
DeleteLog deleteLog,
PluginConfigFactory cfgFactory,
HideProject hideProject) {
- super(allProjectsNameProvider, dbHandler, fsHandler, cacheHandler,
- pcHandler, userProvider, pluginName, deleteLog, cfgFactory, hideProject);
+ super(
+ allProjectsNameProvider,
+ dbHandler,
+ fsHandler,
+ cacheHandler,
+ pcHandler,
+ userProvider,
+ pluginName,
+ deleteLog,
+ cfgFactory,
+ hideProject);
}
@Override
public UiAction.Description getDescription(ProjectResource rsrc) {
return new UiAction.Description()
.setLabel("Delete...")
- .setTitle(isAllProjects(rsrc)
- ? String.format("No deletion of %s project",
- allProjectsName)
- : String.format("Delete project %s", rsrc.getName()))
+ .setTitle(
+ isAllProjects(rsrc)
+ ? String.format("No deletion of %s project", allProjectsName)
+ : String.format("Delete project %s", rsrc.getName()))
.setEnabled(!isAllProjects(rsrc))
.setVisible(canDelete(rsrc));
}
private boolean isAllProjects(ProjectResource rsrc) {
- return (rsrc.getControl().getProject()
- .getNameKey().equals(allProjectsName));
+ return (rsrc.getControl().getProject().getNameKey().equals(allProjectsName));
}
}
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 3b77789..e62634a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteCommand.java
@@ -23,12 +23,10 @@
import com.google.gerrit.sshd.SshCommand;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
-
-import org.kohsuke.args4j.Argument;
-import org.kohsuke.args4j.Option;
-
import java.io.IOException;
import java.util.Collection;
+import org.kohsuke.args4j.Argument;
+import org.kohsuke.args4j.Option;
@CommandMetaData(name = "delete", description = "Delete specific project")
public final class DeleteCommand extends SshCommand {
@@ -82,7 +80,7 @@
msgBuilder.append("There are warnings against deleting ");
msgBuilder.append(rsrc.getName());
msgBuilder.append(":\n");
- for (String warning: warnings) {
+ for (String warning : warnings) {
msgBuilder.append(" * ");
msgBuilder.append(warning);
msgBuilder.append("\n");
@@ -95,8 +93,11 @@
}
deleteProject.doDelete(rsrc, input);
- } catch (AuthException | ResourceNotFoundException
- | ResourceConflictException | OrmException | IOException e) {
+ } catch (AuthException
+ | ResourceNotFoundException
+ | ResourceConflictException
+ | OrmException
+ | IOException e) {
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 3644e93..292d8bd 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLog.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLog.java
@@ -27,7 +27,6 @@
import com.google.gerrit.server.util.SystemLog;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
@@ -47,40 +46,38 @@
private final AuditService auditService;
@Inject
- public DeleteLog(SystemLog systemLog,
- ServerInformation serverInfo,
- AuditService auditService) {
+ public DeleteLog(SystemLog systemLog, ServerInformation serverInfo, AuditService auditService) {
super(systemLog, serverInfo, DELETE_LOG_NAME, new DeleteLogLayout());
this.auditService = auditService;
}
- public void onDelete(IdentifiedUser user, Project.NameKey project,
- DeleteProject.Input options, Exception ex) {
+ public void onDelete(
+ IdentifiedUser user, Project.NameKey project, DeleteProject.Input options, Exception ex) {
long ts = TimeUtil.nowMs();
- LoggingEvent event = new LoggingEvent( //
- Logger.class.getName(), // fqnOfCategoryClass
- log, // logger
- ts, // when
- ex == null // level
- ? Level.INFO
- : Level.ERROR,
- ex == null // message text
- ? "OK"
- : "FAIL",
- Thread.currentThread().getName(), // thread name
- null, // exception information
- null, // current NDC string
- null, // caller location
- null // MDC properties
- );
+ LoggingEvent event =
+ new LoggingEvent( //
+ Logger.class.getName(), // fqnOfCategoryClass
+ log, // logger
+ ts, // when
+ ex == null // level
+ ? Level.INFO
+ : Level.ERROR,
+ ex == null // message text
+ ? "OK"
+ : "FAIL",
+ Thread.currentThread().getName(), // thread name
+ null, // exception information
+ null, // current NDC string
+ null, // caller location
+ null // MDC properties
+ );
event.setProperty(ACCOUNT_ID, user.getAccountId().toString());
event.setProperty(USER_NAME, user.getUserName());
event.setProperty(PROJECT_NAME, project.get());
if (options != null) {
- event.setProperty(OPTIONS,
- OutputFormat.JSON_COMPACT.newGson().toJson(options));
+ event.setProperty(OPTIONS, OutputFormat.JSON_COMPACT.newGson().toJson(options));
}
if (ex != null) {
@@ -92,10 +89,13 @@
audit(user, ts, project, options, ex);
}
- private void audit(IdentifiedUser user, long ts, Project.NameKey project,
- DeleteProject.Input options, Exception ex) {
- ListMultimap<String, Object> params =
- MultimapBuilder.hashKeys().arrayListValues().build();
+ private void audit(
+ IdentifiedUser user,
+ long ts,
+ Project.NameKey project,
+ DeleteProject.Input options,
+ Exception ex) {
+ ListMultimap<String, Object> params = MultimapBuilder.hashKeys().arrayListValues().build();
params.put("class", DeleteLog.class);
params.put("project", project.get());
if (options != null) {
@@ -114,7 +114,6 @@
params, // params
ex != null // result
? ex.toString()
- : "OK"
- ));
+ : "OK"));
}
}
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 aba5160..cc4c436 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLogLayout.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteLogLayout.java
@@ -14,14 +14,13 @@
package com.googlesource.gerrit.plugins.deleteproject;
-import org.apache.log4j.Layout;
-import org.apache.log4j.spi.LoggingEvent;
-import org.eclipse.jgit.util.QuotedString;
-
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
+import org.apache.log4j.Layout;
+import org.apache.log4j.spi.LoggingEvent;
+import org.eclipse.jgit.util.QuotedString;
final class DeleteLogLayout extends Layout {
private final Calendar calendar;
@@ -29,7 +28,7 @@
private final char[] lastTimeString = new char[20];
private final char[] timeZone;
- public DeleteLogLayout() {
+ public DeleteLogLayout() {
TimeZone tz = TimeZone.getDefault();
calendar = Calendar.getInstance(tz);
@@ -41,14 +40,12 @@
/**
* Formats the events in the delete log.
*
- * A successful project deletion will result in a log entry like this:
- * [2015-03-05 09:13:28,912 +0100] INFO 1000000 admin OK \
- * myProject {"preserve":false,"force":false}
+ * <p>A successful project deletion will result in a log entry like this: [2015-03-05 09:13:28,912
+ * +0100] INFO 1000000 admin OK \ myProject {"preserve":false,"force":false}
*
- * 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
+ * <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
*/
@Override
public String format(LoggingEvent event) {
@@ -138,6 +135,5 @@
}
@Override
- public void activateOptions() {
- }
+ public void activateOptions() {}
}
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 db62544..8081cd3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/DeleteProject.java
@@ -34,17 +34,14 @@
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Provider;
-
import com.googlesource.gerrit.plugins.deleteproject.DeleteProject.Input;
import com.googlesource.gerrit.plugins.deleteproject.cache.CacheDeleteHandler;
import com.googlesource.gerrit.plugins.deleteproject.database.DatabaseDeleteHandler;
import com.googlesource.gerrit.plugins.deleteproject.fs.FilesystemDeleteHandler;
import com.googlesource.gerrit.plugins.deleteproject.projectconfig.ProjectConfigDeleteHandler;
-
-import org.eclipse.jgit.errors.RepositoryNotFoundException;
-
import java.io.IOException;
import java.util.Collection;
+import org.eclipse.jgit.errors.RepositoryNotFoundException;
class DeleteProject implements RestModifyView<ProjectResource, Input> {
static class Input {
@@ -64,7 +61,8 @@
private final HideProject hideProject;
@Inject
- DeleteProject(AllProjectsNameProvider allProjectsNameProvider,
+ DeleteProject(
+ AllProjectsNameProvider allProjectsNameProvider,
DatabaseDeleteHandler dbHandler,
FilesystemDeleteHandler fsHandler,
CacheDeleteHandler cacheHandler,
@@ -88,16 +86,16 @@
@Override
public Object apply(ProjectResource rsrc, Input input)
- throws ResourceNotFoundException, ResourceConflictException,
- OrmException, IOException, AuthException {
+ throws ResourceNotFoundException, ResourceConflictException, OrmException, IOException,
+ AuthException {
assertDeletePermission(rsrc);
assertCanDelete(rsrc, input);
if (input == null || !input.force) {
Collection<String> warnings = getWarnings(rsrc);
if (!warnings.isEmpty()) {
- throw new ResourceConflictException(String.format(
- "Project %s has open changes", rsrc.getName()));
+ throw new ResourceConflictException(
+ String.format("Project %s has open changes", rsrc.getName()));
}
}
@@ -105,8 +103,7 @@
return Response.none();
}
- public void assertDeletePermission(ProjectResource rsrc)
- throws AuthException {
+ public void assertDeletePermission(ProjectResource rsrc) throws AuthException {
if (!canDelete(rsrc)) {
throw new AuthException("not allowed to delete project");
}
@@ -116,12 +113,10 @@
CapabilityControl ctl = userProvider.get().getCapabilities();
return ctl.canAdministrateServer()
|| ctl.canPerform(pluginName + "-" + DELETE_PROJECT)
- || (ctl.canPerform(pluginName + "-" + DELETE_OWN_PROJECT)
- && rsrc.getControl().isOwner());
+ || (ctl.canPerform(pluginName + "-" + DELETE_OWN_PROJECT) && rsrc.getControl().isOwner());
}
- public void assertCanDelete(ProjectResource rsrc, Input input)
- throws ResourceConflictException {
+ public void assertCanDelete(ProjectResource rsrc, Input input) throws ResourceConflictException {
try {
pcHandler.assertCanDelete(rsrc);
dbHandler.assertCanDelete(rsrc.getControl().getProject());
@@ -131,19 +126,19 @@
}
}
- public Collection<String> getWarnings(ProjectResource rsrc)
- throws OrmException {
+ public Collection<String> getWarnings(ProjectResource rsrc) throws OrmException {
return dbHandler.getWarnings(rsrc.getControl().getProject());
}
- public void doDelete(ProjectResource rsrc, Input input) throws OrmException,
- IOException, ResourceNotFoundException, ResourceConflictException {
+ public void doDelete(ProjectResource rsrc, Input input)
+ throws OrmException, IOException, ResourceNotFoundException, ResourceConflictException {
Project project = rsrc.getControl().getProject();
boolean preserve = input != null && input.preserve;
Exception ex = null;
try {
if (!preserve
- || !cfgFactory.getFromGerritConfig(pluginName)
+ || !cfgFactory
+ .getFromGerritConfig(pluginName)
.getBoolean("hideProjectOnPreserve", false)) {
dbHandler.delete(project);
try {
@@ -159,8 +154,7 @@
ex = e;
throw e;
} finally {
- deleteLog.onDelete((IdentifiedUser) userProvider.get(),
- project.getNameKey(), input, ex);
+ deleteLog.onDelete((IdentifiedUser) userProvider.get(), project.getNameKey(), input, ex);
}
}
}
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 bc86fc6..6897a29 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HideProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/HideProject.java
@@ -31,12 +31,10 @@
import com.google.gerrit.server.project.ProjectResource;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
+import java.io.IOException;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
-import java.io.IOException;
-
@Singleton
class HideProject {
private static String DEFAULT_PARENT_FOR_DELETED_PROJECTS = "Deleted-Projects";
@@ -61,8 +59,8 @@
this.pluginName = pluginName;
}
- public void apply(ProjectResource rsrc) throws ResourceNotFoundException,
- ResourceConflictException, IOException {
+ public void apply(ProjectResource rsrc)
+ throws ResourceNotFoundException, ResourceConflictException, IOException {
try {
MetaDataUpdate md = metaDataUpdateFactory.create(rsrc.getNameKey());
@@ -75,8 +73,9 @@
}
String parentForDeletedProjects =
- cfgFactory.getFromGerritConfig(pluginName).getString(
- "parentForDeletedProjects", DEFAULT_PARENT_FOR_DELETED_PROJECTS);
+ cfgFactory
+ .getFromGerritConfig(pluginName)
+ .getString("parentForDeletedProjects", DEFAULT_PARENT_FOR_DELETED_PROJECTS);
createProjectIfMissing(parentForDeletedProjects);
p.setParentName(parentForDeletedProjects);
@@ -94,12 +93,13 @@
throws ResourceConflictException, IOException {
if (projectCache.get(new Project.NameKey(projectName)) == null) {
try {
- createProjectFactory.create(projectName).apply(
- TopLevelResource.INSTANCE, null);
- } catch (BadRequestException | UnprocessableEntityException
- | ResourceNotFoundException | ConfigInvalidException e) {
- throw new ResourceConflictException(String.format(
- "Failed to create project %s", projectName));
+ createProjectFactory.create(projectName).apply(TopLevelResource.INSTANCE, null);
+ } catch (BadRequestException
+ | UnprocessableEntityException
+ | ResourceNotFoundException
+ | ConfigInvalidException e) {
+ throw new ResourceConflictException(
+ String.format("Failed to create project %s", projectName));
}
}
}
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 3296dfb..857555e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/Module.java
@@ -24,7 +24,6 @@
import com.google.gerrit.extensions.restapi.RestApiModule;
import com.google.inject.AbstractModule;
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.DeleteTrashFolders;
@@ -35,9 +34,7 @@
@Override
protected void configure() {
- bind(LifecycleListener.class)
- .annotatedWith(UniqueAnnotations.create())
- .to(DeleteLog.class);
+ bind(LifecycleListener.class).annotatedWith(UniqueAnnotations.create()).to(DeleteLog.class);
bind(LifecycleListener.class)
.annotatedWith(UniqueAnnotations.create())
.to(DeleteTrashFolders.class);
@@ -51,14 +48,13 @@
bind(DatabaseDeleteHandler.class);
bind(FilesystemDeleteHandler.class);
bind(ProjectConfigDeleteHandler.class);
- install(new RestApiModule() {
- @Override
- protected void configure() {
- delete(PROJECT_KIND)
- .to(DeleteProject.class);
- post(PROJECT_KIND, "delete")
- .to(DeleteAction.class);
- }
- });
+ install(
+ new RestApiModule() {
+ @Override
+ protected void configure() {
+ delete(PROJECT_KIND).to(DeleteProject.class);
+ post(PROJECT_KIND, "delete").to(DeleteAction.class);
+ }
+ });
}
}
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 cb1f399..26c8710 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
@@ -45,16 +45,7 @@
import com.google.gwtorm.server.ResultSet;
import com.google.inject.Inject;
import com.google.inject.Provider;
-
import com.googlesource.gerrit.plugins.deleteproject.CannotDeleteProjectException;
-
-import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.errors.RepositoryNotFoundException;
-import org.eclipse.jgit.lib.Ref;
-import org.eclipse.jgit.lib.Repository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
@@ -63,10 +54,15 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.errors.RepositoryNotFoundException;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.Repository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class DatabaseDeleteHandler {
- private static final Logger log =
- LoggerFactory.getLogger(DatabaseDeleteHandler.class);
+ private static final Logger log = LoggerFactory.getLogger(DatabaseDeleteHandler.class);
private final ReviewDb db;
private final Provider<InternalChangeQuery> queryProvider;
@@ -80,7 +76,8 @@
private final Provider<Accessor> watchConfig;
@Inject
- public DatabaseDeleteHandler(ReviewDb db,
+ public DatabaseDeleteHandler(
+ ReviewDb db,
Provider<InternalChangeQuery> queryProvider,
GitRepositoryManager repoManager,
SubmoduleOp.Factory subOpFactory,
@@ -106,8 +103,7 @@
Collection<String> ret = Lists.newArrayList();
// Warn against open changes
- List<ChangeData> openChanges =
- queryProvider.get().byProjectOpen(project.getNameKey());
+ List<ChangeData> openChanges = queryProvider.get().byProjectOpen(project.getNameKey());
if (openChanges.iterator().hasNext()) {
ret.add(project.getName() + " has open changes");
}
@@ -137,8 +133,7 @@
}
}
- private final void deleteChanges(List<ChangeData> changeData)
- throws OrmException {
+ private final void deleteChanges(List<ChangeData> changeData) throws OrmException {
for (ChangeData cd : changeData) {
Change.Id id = cd.getId();
ResultSet<PatchSet> patchSets = null;
@@ -162,63 +157,57 @@
try {
indexer.delete(id);
} catch (IOException e) {
- log.error(
- String.format("Failed to delete change %s from index", id), e);
+ log.error(String.format("Failed to delete change %s from index", id), e);
}
}
}
- private final void deleteFromPatchSets(final ResultSet<PatchSet> patchSets)
- throws OrmException {
+ private final void deleteFromPatchSets(final ResultSet<PatchSet> patchSets) throws OrmException {
for (PatchSet patchSet : patchSets) {
accountPatchReviewStore.get().clearReviewed(patchSet.getId());
db.patchSets().delete(Collections.singleton(patchSet));
}
}
- public void assertCanDelete(Project project)
- throws CannotDeleteProjectException {
+ public void assertCanDelete(Project project) throws CannotDeleteProjectException {
Project.NameKey proj = project.getNameKey();
try (Repository repo = repoManager.openRepository(proj);
- MergeOpRepoManager orm = ormProvider.get()) {
+ MergeOpRepoManager orm = ormProvider.get()) {
Set<Branch.NameKey> branches = new HashSet<>();
- for (Ref ref : repo.getRefDatabase().getRefs(
- RefNames.REFS_HEADS).values()) {
+ for (Ref ref : repo.getRefDatabase().getRefs(RefNames.REFS_HEADS).values()) {
branches.add(new Branch.NameKey(proj, ref.getName()));
}
SubmoduleOp sub = subOpFactory.create(branches, orm);
for (Branch.NameKey b : branches) {
if (!sub.superProjectSubscriptionsForSubmoduleBranch(b).isEmpty()) {
- throw new CannotDeleteProjectException(
- "Project is subscribed by other projects.");
+ throw new CannotDeleteProjectException("Project is subscribed by other projects.");
}
}
} catch (RepositoryNotFoundException e) {
// we're trying to delete the repository,
// so this exception should not stop us
} catch (IOException e) {
- throw new CannotDeleteProjectException(
- "Project is subscribed by other projects.");
+ throw new CannotDeleteProjectException("Project is subscribed by other projects.");
}
}
public void atomicDelete(Project project) throws OrmException {
- List<ChangeData> changes =
- queryProvider.get().byProject(project.getNameKey());
+ List<ChangeData> changes = queryProvider.get().byProject(project.getNameKey());
deleteChanges(changes);
- for (AccountState a : accountQueryProvider.get()
- .byWatchedProject(project.getNameKey())) {
+ for (AccountState a : accountQueryProvider.get().byWatchedProject(project.getNameKey())) {
Account.Id accountId = a.getAccount().getId();
for (ProjectWatchKey watchKey : a.getProjectWatches().keySet()) {
if (project.getNameKey().equals(watchKey.project())) {
try {
- watchConfig.get().deleteProjectWatches(accountId,
- singleton(watchKey));
+ watchConfig.get().deleteProjectWatches(accountId, singleton(watchKey));
} catch (IOException | ConfigInvalidException e) {
- log.error("Removing watch entry for user {} in project {} failed.",
- a.getUserName(), project.getName(), e);
+ log.error(
+ "Removing watch entry for user {} in project {} failed.",
+ a.getUserName(),
+ project.getName(),
+ e);
}
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java
index 5b89ec6..96f06cc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java
@@ -13,6 +13,13 @@
// limitations under the License.
package com.googlesource.gerrit.plugins.deleteproject.fs;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.Sets;
+import com.google.gerrit.extensions.events.LifecycleListener;
+import com.google.gerrit.server.config.GerritServerConfig;
+import com.google.gerrit.server.config.RepositoryConfig;
+import com.google.gerrit.server.config.SitePaths;
+import com.google.inject.Inject;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
@@ -21,52 +28,39 @@
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Set;
import java.util.regex.Pattern;
-
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.RepositoryCache.FileKey;
import org.eclipse.jgit.util.FS;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.Sets;
-import com.google.gerrit.extensions.events.LifecycleListener;
-import com.google.gerrit.server.config.GerritServerConfig;
-import com.google.gerrit.server.config.RepositoryConfig;
-import com.google.gerrit.server.config.SitePaths;
-import com.google.inject.Inject;
-
public class DeleteTrashFolders implements LifecycleListener {
private static final Logger log = LoggerFactory.getLogger(DeleteTrashFolders.class);
/**
- * Search for name which ends with a dot, 13 digits and the string
- * ".deleted". A folder 'f' is renamed to 'f.<currentTimeMillis>.deleted'.
- * <currentTimeMillis> happens to be exactly 13 digits for commits created
- * between 2002 (before git was born) and 2285.
+ * Search for name which ends with a dot, 13 digits and the string ".deleted". A folder 'f' is
+ * renamed to 'f.<currentTimeMillis>.deleted'. <currentTimeMillis> happens to be exactly 13 digits
+ * for commits created between 2002 (before git was born) and 2285.
*/
private static final Pattern TRASH_1 = Pattern.compile(".*\\.\\d{13}.deleted");
/**
- * New trash folder name format. It adds % chars around the "deleted" string
- * and keeps the ".git" extension.
+ * New trash folder name format. It adds % chars around the "deleted" string and keeps the ".git"
+ * extension.
*/
private static final Pattern TRASH_2 = Pattern.compile(".*\\.\\d{13}.%deleted%.git");
@VisibleForTesting
static final boolean isTrashFolderName(String fName) {
- return TRASH_1.matcher(fName).matches()
- || TRASH_2.matcher(fName).matches();
+ return TRASH_1.matcher(fName).matches() || TRASH_2.matcher(fName).matches();
}
private Set<Path> repoFolders;
@Inject
- public DeleteTrashFolders(SitePaths site,
- @GerritServerConfig Config cfg,
- RepositoryConfig repositoryCfg) {
- repoFolders = Sets.newHashSet(
- site.resolve(cfg.getString("gerrit", null, "basePath")));
+ public DeleteTrashFolders(
+ SitePaths site, @GerritServerConfig Config cfg, RepositoryConfig repositoryCfg) {
+ repoFolders = Sets.newHashSet(site.resolve(cfg.getString("gerrit", null, "basePath")));
repoFolders.addAll(repositoryCfg.getAllBasePaths());
}
@@ -94,51 +88,51 @@
* @throws IOException
*/
private void recursiveDelete(Path file) throws IOException {
- Files.walkFileTree(file, new SimpleFileVisitor<Path>() {
- @Override
- public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
- throws IOException {
- Files.delete(file);
- return FileVisitResult.CONTINUE;
- }
-
- @Override
- public FileVisitResult postVisitDirectory(Path dir, IOException e)
- throws IOException {
- if (e != null) {
- throw e;
+ Files.walkFileTree(
+ file,
+ new SimpleFileVisitor<Path>() {
+ @Override
+ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
+ throws IOException {
+ Files.delete(file);
+ return FileVisitResult.CONTINUE;
}
- Files.delete(dir);
- return FileVisitResult.CONTINUE;
- }
- });
+
+ @Override
+ public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException {
+ if (e != null) {
+ throw e;
+ }
+ Files.delete(dir);
+ return FileVisitResult.CONTINUE;
+ }
+ });
}
}
-
-
@Override
public void start() {
- new Thread(new Runnable() {
- @Override
- public void run() {
- for (Path folder : repoFolders) {
- if (Files.notExists(folder)) {
- log.debug("Base path {} does not exist", folder);
- continue;
- }
- try {
- Files.walkFileTree(folder, new TrashFolderRemover());
- } catch (IOException e) {
- log.warn("Exception while trying to delete trash folders", e);
- }
- }
- }
- }, "DeleteTrashFolders").start();
+ new Thread(
+ new Runnable() {
+ @Override
+ public void run() {
+ for (Path folder : repoFolders) {
+ if (Files.notExists(folder)) {
+ log.debug("Base path {} does not exist", folder);
+ continue;
+ }
+ try {
+ Files.walkFileTree(folder, new TrashFolderRemover());
+ } catch (IOException e) {
+ log.warn("Exception while trying to delete trash folders", e);
+ }
+ }
+ }
+ },
+ "DeleteTrashFolders")
+ .start();
}
@Override
- public void stop() {
- }
+ public void stop() {}
}
-
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java
index f9e45a6..8aac2c1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java
@@ -14,23 +14,6 @@
package com.googlesource.gerrit.plugins.deleteproject.fs;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.StandardCopyOption;
-import java.nio.file.attribute.BasicFileAttributes;
-
-import org.eclipse.jgit.errors.RepositoryNotFoundException;
-import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.RepositoryCache;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.api.changes.NotifyHandling;
import com.google.gerrit.extensions.events.ProjectDeletedListener;
@@ -40,12 +23,25 @@
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.project.ProjectResource;
import com.google.inject.Inject;
-
import com.googlesource.gerrit.plugins.deleteproject.CannotDeleteProjectException;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.StandardCopyOption;
+import java.nio.file.attribute.BasicFileAttributes;
+import org.eclipse.jgit.errors.RepositoryNotFoundException;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.RepositoryCache;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class FilesystemDeleteHandler {
- private static final Logger log = LoggerFactory
- .getLogger(FilesystemDeleteHandler.class);
+ private static final Logger log = LoggerFactory.getLogger(FilesystemDeleteHandler.class);
private final GitRepositoryManager repoManager;
private final DynamicSet<ProjectDeletedListener> deletedListener;
@@ -53,7 +49,8 @@
private final String pluginName;
@Inject
- public FilesystemDeleteHandler(GitRepositoryManager repoManager,
+ public FilesystemDeleteHandler(
+ GitRepositoryManager repoManager,
DynamicSet<ProjectDeletedListener> deletedListener,
PluginConfigFactory cfgFactory,
@PluginName String pluginName) {
@@ -66,8 +63,7 @@
public void delete(Project project, boolean preserveGitRepository)
throws IOException, RepositoryNotFoundException {
// Remove from the jgit cache
- Repository repository =
- repoManager.openRepository(project.getNameKey());
+ Repository repository = repoManager.openRepository(project.getNameKey());
File repoFile = repository.getDirectory();
cleanCache(repository);
if (!preserveGitRepository) {
@@ -78,26 +74,26 @@
public void assertCanDelete(ProjectResource rsrc, boolean preserveGitRepository)
throws CannotDeleteProjectException {
if (!preserveGitRepository
- && !cfgFactory.getFromGerritConfig(pluginName).getBoolean(
- "allowDeletionOfReposWithTags", true)) {
+ && !cfgFactory
+ .getFromGerritConfig(pluginName)
+ .getBoolean("allowDeletionOfReposWithTags", true)) {
assertHasNoTags(rsrc);
}
}
- private void assertHasNoTags(ProjectResource rsrc)
- throws CannotDeleteProjectException {
+ private void assertHasNoTags(ProjectResource rsrc) throws CannotDeleteProjectException {
try (Repository repo = repoManager.openRepository(rsrc.getNameKey())) {
if (!repo.getRefDatabase().getRefs(Constants.R_TAGS).isEmpty()) {
- throw new CannotDeleteProjectException(String.format(
- "Project %s has tags", rsrc.getName()));
+ throw new CannotDeleteProjectException(
+ String.format("Project %s has tags", rsrc.getName()));
}
} catch (IOException e) {
throw new CannotDeleteProjectException(e);
}
}
- private void deleteGitRepository(final Project.NameKey project,
- final File repoFile) throws IOException {
+ private void deleteGitRepository(final Project.NameKey project, final File repoFile)
+ throws IOException {
// Delete the repository from disk
Path basePath = getBasePath(repoFile.toPath(), project);
Path trash = moveToTrash(repoFile.toPath(), basePath, project);
@@ -121,17 +117,18 @@
}
// Send an event that the repository was deleted
- ProjectDeletedListener.Event event = new ProjectDeletedListener.Event() {
- @Override
- public String getProjectName() {
- return project.get();
- }
+ ProjectDeletedListener.Event event =
+ new ProjectDeletedListener.Event() {
+ @Override
+ public String getProjectName() {
+ return project.get();
+ }
- @Override
- public NotifyHandling getNotify() {
- return NotifyHandling.NONE;
- }
- };
+ @Override
+ public NotifyHandling getNotify() {
+ return NotifyHandling.NONE;
+ }
+ };
for (ProjectDeletedListener l : deletedListener) {
try {
l.onProjectDeleted(event);
@@ -143,14 +140,14 @@
private Path getBasePath(Path repo, Project.NameKey project) {
Path projectPath = Paths.get(project.get());
- return repo.getRoot().resolve(
- repo.subpath(0, repo.getNameCount() - projectPath.getNameCount()));
+ return repo.getRoot()
+ .resolve(repo.subpath(0, repo.getNameCount() - projectPath.getNameCount()));
}
private Path moveToTrash(Path directory, Path basePath, Project.NameKey nameKey)
throws IOException {
- Path trashRepo = basePath.resolve(nameKey.get() + "."
- + System.currentTimeMillis() + ".%deleted%.git");
+ Path trashRepo =
+ basePath.resolve(nameKey.get() + "." + System.currentTimeMillis() + ".%deleted%.git");
return Files.move(directory, trashRepo, StandardCopyOption.ATOMIC_MOVE);
}
@@ -165,31 +162,31 @@
* @throws IOException
*/
private void recursiveDelete(Path file) throws IOException {
- Files.walkFileTree(file, new SimpleFileVisitor<Path>() {
- @Override
- public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
- throws IOException {
- Files.delete(file);
- return FileVisitResult.CONTINUE;
- }
+ Files.walkFileTree(
+ file,
+ new SimpleFileVisitor<Path>() {
+ @Override
+ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
+ throws IOException {
+ Files.delete(file);
+ return FileVisitResult.CONTINUE;
+ }
- @Override
- public FileVisitResult postVisitDirectory(Path dir, IOException e)
- throws IOException {
- if (e != null) {
- throw e;
- }
- Files.delete(dir);
- return FileVisitResult.CONTINUE;
- }
- });
+ @Override
+ public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException {
+ if (e != null) {
+ throw e;
+ }
+ Files.delete(dir);
+ return FileVisitResult.CONTINUE;
+ }
+ });
}
/**
- * Recursively delete the specified file and its parent files until we hit the
- * file {@code Until} or the parent file is populated. This is used when we
- * have a tree structure such as a/b/c/d.git and a/b/e.git - if we delete
- * a/b/c/d.git, we no longer need a/b/c/.
+ * Recursively delete the specified file and its parent files until we hit the file {@code Until}
+ * or the parent file is populated. This is used when we have a tree structure such as a/b/c/d.git
+ * and a/b/e.git - if we delete a/b/c/d.git, we no longer need a/b/c/.
*/
private void recursiveDeleteParent(File file, File until) throws IOException {
if (file.equals(until)) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java
index 033a395..21038e2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java
@@ -27,7 +27,6 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.googlesource.gerrit.plugins.deleteproject.CannotDeleteProjectException;
-
import java.util.List;
public class ProjectConfigDeleteHandler {
@@ -38,43 +37,43 @@
private final Provider<ListChildProjects> listChildProjectsProvider;
@Inject
- public ProjectConfigDeleteHandler(SitePaths site,
+ public ProjectConfigDeleteHandler(
+ SitePaths site,
AllProjectsNameProvider allProjectsNameProvider,
Provider<ListChildProjects> listChildProjectsProvider) {
this.site = site;
this.allProjectsName = allProjectsNameProvider.get();
this.listChildProjectsProvider = listChildProjectsProvider;
- }
+ }
- public void assertCanDelete(ProjectResource rsrc)
- throws CannotDeleteProjectException {
+ public void assertCanDelete(ProjectResource rsrc) throws CannotDeleteProjectException {
assertIsNotAllProjects(rsrc);
assertHasNoChildProjects(rsrc);
}
- private void assertIsNotAllProjects(ProjectResource rsrc)
- throws CannotDeleteProjectException {
+ private void assertIsNotAllProjects(ProjectResource rsrc) throws CannotDeleteProjectException {
Project project = rsrc.getControl().getProject();
if (project.getNameKey().equals(allProjectsName)) {
- throw new CannotDeleteProjectException("Perhaps you meant to rm -fR "
- + site.site_path);
+ throw new CannotDeleteProjectException("Perhaps you meant to rm -fR " + site.site_path);
}
}
- private void assertHasNoChildProjects(ProjectResource rsrc)
- throws CannotDeleteProjectException {
+ private void assertHasNoChildProjects(ProjectResource rsrc) throws CannotDeleteProjectException {
List<ProjectInfo> children = listChildProjectsProvider.get().apply(rsrc);
if (!children.isEmpty()) {
- String childrenString = Joiner.on(", ").join(Iterables.transform(
- children,
- new Function<ProjectInfo, String>() {
- @Override
- public String apply(ProjectInfo info) {
- return info.name;
- }
- }));
- throw new CannotDeleteProjectException("Cannot delete project because "
- + "it has children: " + childrenString);
+ String childrenString =
+ Joiner.on(", ")
+ .join(
+ Iterables.transform(
+ children,
+ new Function<ProjectInfo, String>() {
+ @Override
+ public String apply(ProjectInfo info) {
+ return info.name;
+ }
+ }));
+ throw new CannotDeleteProjectException(
+ "Cannot delete project because it has children: " + childrenString);
}
}
}