Follow upstream's switch to memoization of Event properties

Gerrit core switched to memoized properties in

  2605168713139277fafa809f9fe0f98f4715f117

. To allow compilation against latest master, we follow this lead.

Change-Id: I99a237e696dbee8c8df936dda358783b28814dae
diff --git a/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java b/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java
index af075c9..1f257bf 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java
@@ -28,6 +28,8 @@
 import com.google.gerrit.extensions.restapi.BadRequestException;
 import com.google.gerrit.extensions.restapi.ResourceConflictException;
 import com.google.gerrit.server.config.PluginConfigFactory;
+import com.google.gerrit.server.data.AccountAttribute;
+import com.google.gerrit.server.data.RefUpdateAttribute;
 import com.google.gerrit.server.events.RefUpdatedEvent;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.gerrit.server.project.CreateBranch;
@@ -84,24 +86,26 @@
       }
 
       try (RevWalk revWalk = new RevWalk(git)) {
+        RefUpdateAttribute refUpdate = event.refUpdate.get();
         if (cfg.getFromGerritConfig(pluginName).getBoolean("createTag",
             false)) {
           TagBuilder tag = new TagBuilder();
+          AccountAttribute submitter = event.submitter.get();
           tag.setTagger(
-              new PersonIdent(event.submitter.name, event.submitter.email));
+              new PersonIdent(submitter.name, submitter.email));
           tag.setObjectId(revWalk
-              .parseCommit(ObjectId.fromString(event.refUpdate.oldRev)));
+              .parseCommit(ObjectId.fromString(refUpdate.oldRev)));
           String update = "Non-fast-forward update to";
-          if (event.refUpdate.newRev.equals(ObjectId.zeroId().getName())) {
+          if (refUpdate.newRev.equals(ObjectId.zeroId().getName())) {
             update = "Deleted";
           }
           String type = "branch";
           String fullMessage = "";
-          if (event.refUpdate.refName.startsWith(R_TAGS)) {
+          if (refUpdate.refName.startsWith(R_TAGS)) {
             type = "tag";
             try {
               RevTag origTag =
-                  revWalk.parseTag(ObjectId.fromString(event.refUpdate.oldRev));
+                  revWalk.parseTag(ObjectId.fromString(refUpdate.oldRev));
               SimpleDateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy ZZZZ");
               PersonIdent taggerIdent = origTag.getTaggerIdent();
               String tagger =
@@ -117,7 +121,7 @@
               log.warn("Unable to read original tag details", e);
             }
           }
-          tag.setMessage(update + " " + type + " " + event.refUpdate.refName + fullMessage);
+          tag.setMessage(update + " " + type + " " + refUpdate.refName + fullMessage);
           tag.setTag(backupRef);
 
           ObjectInserter inserter = git.newObjectInserter();
@@ -152,7 +156,7 @@
           // We need to parse the commit to ensure if it's a tag, we get the
           // commit the tag points to!
           input.revision = ObjectId.toString(
-              revWalk.parseCommit(ObjectId.fromString(event.refUpdate.oldRev))
+              revWalk.parseCommit(ObjectId.fromString(refUpdate.oldRev))
                   .getId());
 
           try {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java b/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java
index 0ca08f4..0188990 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java
@@ -31,6 +31,7 @@
 import com.google.gerrit.reviewdb.client.Project;
 import com.google.gerrit.server.CurrentUser;
 import com.google.gerrit.server.config.PluginConfigFactory;
+import com.google.gerrit.server.data.RefUpdateAttribute;
 import com.google.gerrit.server.events.Event;
 import com.google.gerrit.server.events.RefUpdatedEvent;
 import com.google.gerrit.server.git.GitRepositoryManager;
@@ -117,7 +118,7 @@
    * @return True if a new ref, otherwise False.
    */
   private boolean isNewRef(RefUpdatedEvent event) {
-    return event.refUpdate.oldRev.equals(ObjectId.zeroId().getName());
+    return event.refUpdate.get().oldRev.equals(ObjectId.zeroId().getName());
   }
 
   /**
@@ -127,10 +128,11 @@
    * @return True if a ref deletion, otherwise False.
    */
   private boolean isRefDeleted(RefUpdatedEvent event) {
-    if (event.refUpdate.newRev.equals(ObjectId.zeroId().getName())) {
+    RefUpdateAttribute refUpdate = event.refUpdate.get();
+    if (refUpdate.newRev.equals(ObjectId.zeroId().getName())) {
       log.info(String.format(
           "Ref Deleted: project [%s] refname [%s] old object id [%s]",
-          event.getProjectNameKey().toString(), event.getRefName(), event.refUpdate.oldRev));
+          event.getProjectNameKey().toString(), event.getRefName(), refUpdate.oldRev));
       return true;
     }
     return false;
@@ -149,12 +151,11 @@
       // attempting a check would cause a MissingObjectException.
       return false;
     }
+    RefUpdateAttribute refUpdate = event.refUpdate.get();
     try (Repository repo = repoManager.openRepository(project.getNameKey())) {
       try (RevWalk walk = new RevWalk(repo)) {
-        RevCommit oldCommit =
-            walk.parseCommit(repo.resolve(event.refUpdate.oldRev));
-        RevCommit newCommit =
-            walk.parseCommit(repo.resolve(event.refUpdate.newRev));
+        RevCommit oldCommit = walk.parseCommit(repo.resolve(refUpdate.oldRev));
+        RevCommit newCommit = walk.parseCommit(repo.resolve(refUpdate.newRev));
         return !walk.isMergedInto(oldCommit, newCommit);
       }
     }