diff --git a/Documentation/dev-bazel.txt b/Documentation/dev-bazel.txt index a6f8f5f7de..ef1279aa1b 100644 --- a/Documentation/dev-bazel.txt +++ b/Documentation/dev-bazel.txt @@ -3,7 +3,7 @@ [[installation]] == Installation -You need to use Java 8 and Node.js for building gerrit. +You need to use Python 2, Java 8, and Node.js for building gerrit. You can install Bazel from the bazel.io: https://www.bazel.io/versions/master/docs/install.html diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/BatchProgramModule.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/BatchProgramModule.java index 9e5723d461..918da61a67 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/BatchProgramModule.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/BatchProgramModule.java @@ -52,7 +52,9 @@ import com.google.gerrit.server.config.DisableReverseDnsLookupProvider; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.GitReceivePackGroups; import com.google.gerrit.server.config.GitUploadPackGroups; +import com.google.gerrit.server.extensions.events.EventUtil; import com.google.gerrit.server.extensions.events.GitReferenceUpdated; +import com.google.gerrit.server.extensions.events.RevisionCreated; import com.google.gerrit.server.git.MergeUtil; import com.google.gerrit.server.git.SearchingChangeCacheImpl; import com.google.gerrit.server.git.TagCache; @@ -172,7 +174,9 @@ public class BatchProgramModule extends FactoryModule { factory(SubmitRuleEvaluator.Factory.class); bind(ChangeJson.Factory.class).toProvider(Providers.of(null)); - bind(AccountVisibility.class).toProvider(AccountVisibilityProvider.class).in(SINGLETON); + bind(EventUtil.class).toProvider(Providers.of(null)); bind(GitReferenceUpdated.class).toInstance(GitReferenceUpdated.DISABLED); + bind(RevisionCreated.class).toInstance(RevisionCreated.DISABLED); + bind(AccountVisibility.class).toProvider(AccountVisibilityProvider.class).in(SINGLETON); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AgreementSignup.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AgreementSignup.java index 669690af28..45f1159eca 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AgreementSignup.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AgreementSignup.java @@ -19,7 +19,9 @@ import com.google.gerrit.extensions.events.AgreementSignupListener; import com.google.gerrit.extensions.registration.DynamicSet; import com.google.gerrit.reviewdb.client.Account; import com.google.inject.Inject; +import com.google.inject.Singleton; +@Singleton public class AgreementSignup { private final DynamicSet listeners; private final EventUtil util; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AssigneeChanged.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AssigneeChanged.java index 2583744a30..8f8f13ed22 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AssigneeChanged.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/AssigneeChanged.java @@ -23,10 +23,12 @@ import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.sql.Timestamp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class AssigneeChanged { private static final Logger log = LoggerFactory.getLogger(AssigneeChanged.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeAbandoned.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeAbandoned.java index ef6961606c..8b8522ac5e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeAbandoned.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeAbandoned.java @@ -29,11 +29,13 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class ChangeAbandoned { private static final Logger log = LoggerFactory.getLogger(ChangeAbandoned.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeMerged.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeMerged.java index e9ae356046..217e5d67c2 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeMerged.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeMerged.java @@ -29,11 +29,13 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class ChangeMerged { private static final Logger log = LoggerFactory.getLogger(ChangeMerged.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeRestored.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeRestored.java index c25deab366..6715467569 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeRestored.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeRestored.java @@ -29,11 +29,13 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class ChangeRestored { private static final Logger log = LoggerFactory.getLogger(ChangeRestored.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeReverted.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeReverted.java index e57cbdd0cf..1e91ab3cc4 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeReverted.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ChangeReverted.java @@ -21,10 +21,12 @@ import com.google.gerrit.extensions.registration.DynamicSet; import com.google.gerrit.reviewdb.client.Change; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.sql.Timestamp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class ChangeReverted { private static final Logger log = LoggerFactory.getLogger(ChangeReverted.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/CommentAdded.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/CommentAdded.java index 77cd1a8ef3..03ad58c3d7 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/CommentAdded.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/CommentAdded.java @@ -30,12 +30,14 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class CommentAdded { private static final Logger log = LoggerFactory.getLogger(CommentAdded.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/EventUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/EventUtil.java index 95d7132749..8feeee0e6b 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/EventUtil.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/EventUtil.java @@ -34,6 +34,7 @@ import com.google.gerrit.server.query.change.ChangeData; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Provider; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import java.util.EnumSet; @@ -42,6 +43,7 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class EventUtil { private static final Logger log = LoggerFactory.getLogger(EventUtil.class); @@ -64,7 +66,7 @@ public class EventUtil { private final ChangeData.Factory changeDataFactory; private final Provider db; - private final ChangeJson changeJson; + private final ChangeJson.Factory changeJsonFactory; @Inject EventUtil( @@ -73,11 +75,11 @@ public class EventUtil { Provider db) { this.changeDataFactory = changeDataFactory; this.db = db; - this.changeJson = changeJsonFactory.create(CHANGE_OPTIONS); + this.changeJsonFactory = changeJsonFactory; } public ChangeInfo changeInfo(Change change) throws OrmException { - return changeJson.format(change); + return changeJsonFactory.create(CHANGE_OPTIONS).format(change); } public RevisionInfo revisionInfo(Project project, PatchSet ps) @@ -90,7 +92,7 @@ public class EventUtil { throws OrmException, PatchListNotAvailableException, GpgException, IOException, PermissionBackendException { ChangeData cd = changeDataFactory.create(db.get(), project, ps.getId().getParentKey()); - return changeJson.getRevisionInfo(cd, ps); + return changeJsonFactory.create(CHANGE_OPTIONS).getRevisionInfo(cd, ps); } public AccountInfo accountInfo(Account a) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/GitReferenceUpdated.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/GitReferenceUpdated.java index 2b65965c0b..be14827e4a 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/GitReferenceUpdated.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/GitReferenceUpdated.java @@ -21,11 +21,13 @@ import com.google.gerrit.extensions.registration.DynamicSet; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Project; import com.google.inject.Inject; +import com.google.inject.Singleton; import org.eclipse.jgit.lib.BatchRefUpdate; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.transport.ReceiveCommand; +@Singleton public class GitReferenceUpdated { public static final GitReferenceUpdated DISABLED = new GitReferenceUpdated() { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/HashtagsEdited.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/HashtagsEdited.java index b086beba75..1c4b43cf91 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/HashtagsEdited.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/HashtagsEdited.java @@ -24,12 +24,14 @@ import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.sql.Timestamp; import java.util.Collection; import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class HashtagsEdited { private static final Logger log = LoggerFactory.getLogger(HashtagsEdited.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/PluginEvent.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/PluginEvent.java index bd643e2020..8680ab1528 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/PluginEvent.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/PluginEvent.java @@ -17,7 +17,9 @@ package com.google.gerrit.server.extensions.events; import com.google.gerrit.extensions.events.PluginEventListener; import com.google.gerrit.extensions.registration.DynamicSet; import com.google.inject.Inject; +import com.google.inject.Singleton; +@Singleton public class PluginEvent { private final DynamicSet listeners; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java index fc6881dfea..6ffdd02d84 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java @@ -30,12 +30,14 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class ReviewerAdded { private static final Logger log = LoggerFactory.getLogger(ReviewerAdded.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerDeleted.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerDeleted.java index 28e07a96e7..1d00a50527 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerDeleted.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerDeleted.java @@ -30,12 +30,14 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class ReviewerDeleted { private static final Logger log = LoggerFactory.getLogger(ReviewerDeleted.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/RevisionCreated.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/RevisionCreated.java index 76779caa58..d2ef2d5f81 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/RevisionCreated.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/RevisionCreated.java @@ -29,14 +29,27 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class RevisionCreated { private static final Logger log = LoggerFactory.getLogger(RevisionCreated.class); + public static final RevisionCreated DISABLED = + new RevisionCreated() { + @Override + public void fire( + Change change, + PatchSet patchSet, + Account uploader, + Timestamp when, + NotifyHandling notify) {} + }; + private final DynamicSet listeners; private final EventUtil util; @@ -46,6 +59,11 @@ public class RevisionCreated { this.util = util; } + private RevisionCreated() { + this.listeners = null; + this.util = null; + } + public void fire( Change change, PatchSet patchSet, Account uploader, Timestamp when, NotifyHandling notify) { if (!listeners.iterator().hasNext()) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/TopicEdited.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/TopicEdited.java index d7e7245864..7275ced355 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/TopicEdited.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/TopicEdited.java @@ -23,10 +23,12 @@ import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.sql.Timestamp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class TopicEdited { private static final Logger log = LoggerFactory.getLogger(TopicEdited.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/VoteDeleted.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/VoteDeleted.java index 8944698f76..c377bdc54e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/VoteDeleted.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/VoteDeleted.java @@ -30,12 +30,14 @@ import com.google.gerrit.server.patch.PatchListObjectTooLargeException; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Singleton; import java.io.IOException; import java.sql.Timestamp; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Singleton public class VoteDeleted { private static final Logger log = LoggerFactory.getLogger(VoteDeleted.class);