Document how plugins can react on changes in project.config
Change-Id: I6360a1ff7ac754a08dc21006a201e80473294003 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
@@ -744,6 +744,50 @@ Project owners can edit the project configuration by fetching the
|
|||||||
`refs/meta/config` branch, editing the `<plugin-name>.config` file and
|
`refs/meta/config` branch, editing the `<plugin-name>.config` file and
|
||||||
pushing the commit back.
|
pushing the commit back.
|
||||||
|
|
||||||
|
React on changes in project configuration
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
If a plugin wants to react on changes in the project configuration, it
|
||||||
|
can implement a `GitReferenceUpdatedListener` and filter on events for
|
||||||
|
the `refs/meta/config` branch:
|
||||||
|
|
||||||
|
[source,java]
|
||||||
|
----
|
||||||
|
public class MyListener implements GitReferenceUpdatedListener {
|
||||||
|
|
||||||
|
private final MetaDataUpdate.Server metaDataUpdateFactory;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
MyListener(MetaDataUpdate.Server metaDataUpdateFactory) {
|
||||||
|
this.metaDataUpdateFactory = metaDataUpdateFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGitReferenceUpdated(Event event) {
|
||||||
|
if (event.getRefName().equals(GitRepositoryManager.REF_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()));
|
||||||
|
|
||||||
|
if (!oldCfg.getProject().getSubmitType().equals(
|
||||||
|
newCfg.getProject().getSubmitType())) {
|
||||||
|
// submit type has changed
|
||||||
|
...
|
||||||
|
}
|
||||||
|
} catch (IOException | ConfigInvalidException e) {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
[[capabilities]]
|
[[capabilities]]
|
||||||
Plugin Owned Capabilities
|
Plugin Owned Capabilities
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user