Search in sources :

Example 1 with Event

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);
        }
    }
}
Also used : Event(com.google.gerrit.server.events.Event)

Example 2 with Event

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();
}
Also used : Project(com.google.gerrit.reviewdb.client.Project) ProjectNameKeySerializer(com.google.gerrit.server.events.ProjectNameKeySerializer) GsonBuilder(com.google.gson.GsonBuilder) SupplierSerializer(com.google.gerrit.server.events.SupplierSerializer) Event(com.google.gerrit.server.events.Event) Supplier(com.google.common.base.Supplier) UserScopedEventListener(com.google.gerrit.common.UserScopedEventListener)

Aggregations

Event (com.google.gerrit.server.events.Event)2 Supplier (com.google.common.base.Supplier)1 UserScopedEventListener (com.google.gerrit.common.UserScopedEventListener)1 Project (com.google.gerrit.reviewdb.client.Project)1 ProjectNameKeySerializer (com.google.gerrit.server.events.ProjectNameKeySerializer)1 SupplierSerializer (com.google.gerrit.server.events.SupplierSerializer)1 GsonBuilder (com.google.gson.GsonBuilder)1