diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractor.java b/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractor.java
index 863bffc..ddb8a35 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractor.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractor.java
@@ -55,7 +55,6 @@
 
   public Set<Property> extractFrom(ChangeAttribute changeAttribute) {
     Set<Property> properties = Sets.newHashSet();
-    properties.add(propertyFactory.create("project", changeAttribute.project));
     properties.add(propertyFactory.create("branch", changeAttribute.branch));
     properties.add(propertyFactory.create("topic", changeAttribute.topic));
     properties.add(propertyFactory.create("subject", changeAttribute.subject));
@@ -125,7 +124,6 @@
 
     // New style configs for vm and soy
     properties.add(propertyFactory.create("revisionOld", refUpdateAttribute.oldRev));
-    properties.add(propertyFactory.create("project", refUpdateAttribute.project));
     properties.add(propertyFactory.create("ref", refUpdateAttribute.refName));
     return properties;
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractor.java b/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractor.java
index 6cc93da..85055e3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractor.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractor.java
@@ -175,6 +175,7 @@
 
     Set<Property> common = Sets.newHashSet();
     common.add(propertyFactory.create("event", event.getClass().getName()));
+    common.add(propertyFactory.create("project", event.getProjectNameKey().get()));
 
     if (event instanceof ChangeAbandonedEvent) {
       associations = extractFrom((ChangeAbandonedEvent) event, common);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractorTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractorTest.java
index d97f283..5fb3d85 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractorTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyAttributeExtractorTest.java
@@ -98,7 +98,6 @@
     owner.username = "testUsername";
 
     ChangeAttribute changeAttribute = new ChangeAttribute();
-    changeAttribute.project = "testProject";
     changeAttribute.branch = "testBranch";
     changeAttribute.topic = "testTopic";
     changeAttribute.subject = "testSubject";
@@ -108,9 +107,6 @@
     changeAttribute.owner = owner;
     changeAttribute.commitMessage = "Commit Message";
 
-    Property propertyProject = createMock(Property.class);
-    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
-
     Property propertyBranch = createMock(Property.class);
     expect(propertyFactory.create("branch", "testBranch")).andReturn(propertyBranch);
 
@@ -186,7 +182,6 @@
     Set<Property> actual = extractor.extractFrom(changeAttribute);
 
     Set<Property> expected = Sets.newHashSet();
-    expected.add(propertyProject);
     expected.add(propertyBranch);
     expected.add(propertyTopic);
     expected.add(propertySubject);
@@ -217,7 +212,6 @@
     owner.username = "testUsername";
 
     ChangeAttribute changeAttribute = new ChangeAttribute();
-    changeAttribute.project = "testProject";
     changeAttribute.branch = "testBranch";
     changeAttribute.topic = "testTopic";
     changeAttribute.subject = "testSubject";
@@ -228,9 +222,6 @@
     changeAttribute.owner = owner;
     changeAttribute.commitMessage = "Commit Message";
 
-    Property propertyProject = createMock(Property.class);
-    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
-
     Property propertyBranch = createMock(Property.class);
     expect(propertyFactory.create("branch", "testBranch")).andReturn(propertyBranch);
 
@@ -306,7 +297,6 @@
     Set<Property> actual = extractor.extractFrom(changeAttribute);
 
     Set<Property> expected = Sets.newHashSet();
-    expected.add(propertyProject);
     expected.add(propertyBranch);
     expected.add(propertyTopic);
     expected.add(propertySubject);
@@ -456,7 +446,6 @@
     RefUpdateAttribute refUpdateAttribute = new RefUpdateAttribute();
     refUpdateAttribute.newRev = "1234567891123456789212345678931234567894";
     refUpdateAttribute.oldRev = "9876543211987654321298765432139876543214";
-    refUpdateAttribute.project = "testProject";
     refUpdateAttribute.refName = "testRef";
 
     Property propertyRevision = createMock(Property.class);
@@ -471,9 +460,6 @@
     expect(propertyFactory.create("revision-old", "9876543211987654321298765432139876543214"))
         .andReturn(propertyRevisionOld2);
 
-    Property propertyProject = createMock(Property.class);
-    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
-
     Property propertyRef = createMock(Property.class);
     expect(propertyFactory.create("ref", "testRef")).andReturn(propertyRef);
 
@@ -487,7 +473,6 @@
     expected.add(propertyRevision);
     expected.add(propertyRevisionOld);
     expected.add(propertyRevisionOld2);
-    expected.add(propertyProject);
     expected.add(propertyRef);
     assertEquals("Properties do not match", expected, actual);
   }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractorTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractorTest.java
index 7255f43..b13bb4b 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractorTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/its/base/util/PropertyExtractorTest.java
@@ -22,6 +22,7 @@
 import com.google.gerrit.extensions.config.FactoryModule;
 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.client.Project.NameKey;
 import com.google.gerrit.server.data.AccountAttribute;
 import com.google.gerrit.server.data.ApprovalAttribute;
@@ -59,6 +60,8 @@
                 "com.googlesource.gerrit.plugins."
                     + "its.base.util.PropertyExtractorTest$DummyEvent"))
         .andReturn(property1);
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
 
     replayMocks();
 
@@ -93,12 +96,17 @@
     Property propertyReason = createMock(Property.class);
     expect(propertyFactory.create("reason", "testReason")).andReturn(propertyReason);
 
+    event.project = new Project.NameKey("testProject");
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
+
     changeAttribute.project = "testProject";
     changeAttribute.number = 176;
     patchSetAttribute.revision = "testRevision";
     patchSetAttribute.number = 3;
 
     Set<Property> common = Sets.newHashSet();
+    common.add(propertyProject);
     common.add(propertyChange);
     common.add(propertySubmitter);
     common.add(propertyPatchSet);
@@ -128,12 +136,17 @@
     expect(propertyAttributeExtractor.extractFrom(patchSetAttribute))
         .andReturn(Sets.newHashSet(propertyPatchSet));
 
+    event.project = new Project.NameKey("testProject");
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
+
     changeAttribute.project = "testProject";
     changeAttribute.number = 176;
     patchSetAttribute.revision = "testRevision";
     patchSetAttribute.number = 3;
 
     Set<Property> common = Sets.newHashSet();
+    common.add(propertyProject);
     common.add(propertyChange);
     common.add(propertySubmitter);
     common.add(propertyPatchSet);
@@ -166,12 +179,17 @@
     Property propertyReason = createMock(Property.class);
     expect(propertyFactory.create("reason", "testReason")).andReturn(propertyReason);
 
+    event.project = new Project.NameKey("testProject");
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
+
     changeAttribute.project = "testProject";
     changeAttribute.number = 176;
     patchSetAttribute.revision = "testRevision";
     patchSetAttribute.number = 3;
 
     Set<Property> common = Sets.newHashSet();
+    common.add(propertyProject);
     common.add(propertyChange);
     common.add(propertySubmitter);
     common.add(propertyPatchSet);
@@ -205,12 +223,17 @@
     Property propertyComment = createMock(Property.class);
     expect(propertyFactory.create("comment", "testComment")).andReturn(propertyComment);
 
+    event.project = new Project.NameKey("testProject");
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
+
     changeAttribute.project = "testProject";
     changeAttribute.number = 176;
     patchSetAttribute.revision = "testRevision";
     patchSetAttribute.number = 3;
 
     Set<Property> common = Sets.newHashSet();
+    common.add(propertyProject);
     common.add(propertyChange);
     common.add(propertySubmitter);
     common.add(propertyPatchSet);
@@ -255,12 +278,17 @@
     Property propertyComment = createMock(Property.class);
     expect(propertyFactory.create("comment", "testComment")).andReturn(propertyComment);
 
+    event.project = new Project.NameKey("testProject");
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
+
     changeAttribute.project = "testProject";
     changeAttribute.number = 176;
     patchSetAttribute.revision = "testRevision";
     patchSetAttribute.number = 3;
 
     Set<Property> common = Sets.newHashSet();
+    common.add(propertyProject);
     common.add(propertyChange);
     common.add(propertySubmitter);
     common.add(propertyPatchSet);
@@ -292,12 +320,17 @@
     expect(propertyAttributeExtractor.extractFrom(patchSetAttribute))
         .andReturn(Sets.newHashSet(propertyPatchSet));
 
+    event.project = new Project.NameKey("testProject");
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject);
+
     changeAttribute.project = "testProject";
     changeAttribute.number = 176;
     patchSetAttribute.revision = "testRevision";
     patchSetAttribute.number = 3;
 
     Set<Property> common = Sets.newHashSet();
+    common.add(propertyProject);
     common.add(propertyChange);
     common.add(propertySubmitter);
     common.add(propertyPatchSet);
@@ -320,10 +353,14 @@
     expect(propertyAttributeExtractor.extractFrom(refUpdateAttribute))
         .andReturn(Sets.newHashSet(propertyRefUpdated));
 
+    Property propertyProject = createMock(Property.class);
+    expect(propertyFactory.create("project", "testProject")).andReturn(propertyProject).anyTimes();
+
     refUpdateAttribute.project = "testProject";
     refUpdateAttribute.newRev = "testRevision";
 
     Set<Property> common = Sets.newHashSet();
+    common.add(propertyProject);
     common.add(propertySubmitter);
     common.add(propertyRefUpdated);
 
@@ -434,7 +471,7 @@
 
     @Override
     public NameKey getProjectNameKey() {
-      return null;
+      return new Project.NameKey("testProject");
     }
   }
 }
