Add listener interface for usage data published events

Introduces a new event which allows to publish usage data of projects.
An example could be the sizes of the repositories in the file system.

Change-Id: I9a9773c3358f5b8a45db2ec8ba29b8a8ea6c3589
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Adrian Görler <adrian.goerler@sap.com>
This commit is contained in:
Stefan Lay
2014-05-28 13:45:25 +02:00
parent 6c9da6d836
commit 310d77d1ad
3 changed files with 51 additions and 0 deletions

View File

@@ -401,6 +401,10 @@ Project deletion
+
Update of HEAD on a project
* `com.google.gerrit.extensions.events.UsageDataPublishedListener`:
+
Publication of usage data
[[stream-events]]
== Sending Events to the Events Stream

View File

@@ -0,0 +1,45 @@
// Copyright (C) 2014 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.extensions.events;
import com.google.gerrit.extensions.annotations.ExtensionPoint;
import java.sql.Timestamp;
import java.util.List;
/** Notified when usage data is published */
@ExtensionPoint
public interface UsageDataPublishedListener {
public interface Event {
MetaData getMetaData();
Timestamp getInstant();
List<Data> getData();
}
public interface Data {
long getValue();
String getProjectName();
}
public interface MetaData {
public String getName();
public String getUnitName();
public String getUnitSymbol();
public String getDescription();
}
void onUsageDataPublished(Event event);
}

View File

@@ -27,6 +27,7 @@ import com.google.gerrit.extensions.events.HeadUpdatedListener;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.extensions.events.NewProjectCreatedListener;
import com.google.gerrit.extensions.events.ProjectDeletedListener;
import com.google.gerrit.extensions.events.UsageDataPublishedListener;
import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.extensions.registration.DynamicSet;
@@ -255,6 +256,7 @@ public class GerritGlobalModule extends FactoryModule {
DynamicSet.setOf(binder(), NewProjectCreatedListener.class);
DynamicSet.setOf(binder(), ProjectDeletedListener.class);
DynamicSet.setOf(binder(), HeadUpdatedListener.class);
DynamicSet.setOf(binder(), UsageDataPublishedListener.class);
DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(ChangeCache.class);
DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(MergeabilityChecker.class);
DynamicSet.bind(binder(), GitReferenceUpdatedListener.class)