use of com.google.gerrit.server.events.Event in project gerrit by GerritCodeReview.
the class StreamEvents method writeEvents.
private void writeEvents() {
int processed = 0;
while (processed < BATCH_SIZE) {
if (Thread.interrupted() || stdout.checkError()) {
// The other side either requested a shutdown by calling our
// destroy() above, or it closed the stream and is no longer
// accepting output. Either way terminate this instance.
//
eventListenerRegistration.remove();
flush();
onExit(0);
return;
}
if (dropped) {
write(new DroppedOutputEvent());
dropped = false;
}
final Event event = poll();
if (event == null) {
break;
}
write(event);
processed++;
}
flush();
if (BATCH_SIZE <= processed) {
//
synchronized (taskLock) {
task = pool.submit(writer);
}
}
}
use of com.google.gerrit.server.events.Event in project gerrit by GerritCodeReview.
the class StreamEvents method start.
@Override
public void start(final Environment env) throws IOException {
try {
parseCommandLine();
} catch (UnloggedFailure e) {
String msg = e.getMessage();
if (!msg.endsWith("\n")) {
msg += "\n";
}
err.write(msg.getBytes(UTF_8));
err.flush();
onExit(1);
return;
}
stdout = toPrintWriter(out);
eventListenerRegistration = eventListeners.add(new UserScopedEventListener() {
@Override
public void onEvent(final Event event) {
if (subscribedToEvents.isEmpty() || subscribedToEvents.contains(event.getType())) {
offer(event);
}
}
@Override
public CurrentUser getUser() {
return currentUser;
}
});
gson = new GsonBuilder().registerTypeAdapter(Supplier.class, new SupplierSerializer()).registerTypeAdapter(Project.NameKey.class, new ProjectNameKeySerializer()).create();
}
Aggregations