Serialize Project.NameKey correctly
The ProjectNameKeySerializer() was not used for serialization
which introduced a diff in the serialized project names in the
mq payload when compared to the events produced by the
stream-events command.
Project names should consistantly been serialized as:
{
...
"project":"system/jenkins/ops"
...
}
But ended up in some cases as:
{
...
"project":{"name":"system/jenkins/ops"}
...
}
Change-Id: I9d00deae35f015ebd149b0260bd7dca79fc8fc94
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/GsonProvider.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/GsonProvider.java
index fcc4e26..680248e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/GsonProvider.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/GsonProvider.java
@@ -15,6 +15,8 @@
package com.googlesource.gerrit.plugins.rabbitmq.message;
import com.google.common.base.Supplier;
+import com.google.gerrit.reviewdb.client.Project;
+import com.google.gerrit.server.events.ProjectNameKeySerializer;
import com.google.gerrit.server.events.SupplierSerializer;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -24,6 +26,9 @@
@Override
public Gson get() {
- return new GsonBuilder().registerTypeAdapter(Supplier.class, new SupplierSerializer()).create();
+ return new GsonBuilder()
+ .registerTypeAdapter(Supplier.class, new SupplierSerializer())
+ .registerTypeAdapter(Project.NameKey.class, new ProjectNameKeySerializer())
+ .create();
}
}