Fix example how plugins can react on changes in project config
The example didn't handle the case that on project creation a zero
ObjectId is provided as old ObjectId.
RefNames.REFS_CONFIG has to be used instead of
GitRepositoryManager.REF_CONFIG which doesn't exist anymore.
Change-Id: Ic42ca72a126b70ff0b452e5150e2d1e3c916c73c
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/Documentation/dev-plugins.txt b/Documentation/dev-plugins.txt
index 9402885..aeba57f 100644
--- a/Documentation/dev-plugins.txt
+++ b/Documentation/dev-plugins.txt
@@ -746,18 +746,14 @@
@Override
public void onGitReferenceUpdated(Event event) {
- if (event.getRefName().equals(GitRepositoryManager.REF_CONFIG)) {
+ if (event.getRefName().equals(RefNames.REFS_CONFIG)) {
Project.NameKey p = new Project.NameKey(event.getProjectName());
try {
- ProjectConfig oldCfg =
- ProjectConfig.read(metaDataUpdateFactory.create(p),
- ObjectId.fromString(event.getOldObjectId()));
- ProjectConfig newCfg =
- ProjectConfig.read(metaDataUpdateFactory.create(p),
- ObjectId.fromString(event.getNewObjectId()));
+ ProjectConfig oldCfg = parseConfig(p, event.getOldObjectId());
+ ProjectConfig newCfg = parseConfig(p, event.getNewObjectId());
- if (!oldCfg.getProject().getSubmitType().equals(
- newCfg.getProject().getSubmitType())) {
+ if (oldCfg != null && newCfg != null
+ && !oldCfg.getProject().getSubmitType().equals(newCfg.getProject().getSubmitType())) {
// submit type has changed
...
}
@@ -766,6 +762,15 @@
}
}
}
+
+ private ProjectConfig parseConfig(Project.NameKey p, String idStr)
+ throws IOException, ConfigInvalidException, RepositoryNotFoundException {
+ ObjectId id = ObjectId.fromString(idStr);
+ if (ObjectId.zeroId().equals(id)) {
+ return null;
+ }
+ return ProjectConfig.read(metaDataUpdateFactory.create(p), id);
+ }
}
----