All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.esbtools.eventhandler.Notification Maven / Gradle / Ivy

/*
 *  Copyright 2015 esbtools Contributors and/or its affiliates.
 *
 *  This file is part of esbtools.
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see .
 */

package org.esbtools.eventhandler;

import java.util.Collection;
import java.util.concurrent.Future;

/**
 * Represents something potentially significant that has happened which is intended to eventually
 * publish documents as a part of "handling" or "processing" this notification and its corresponding
 * {@link DocumentEvent}s.
 *
 * 

Notifications are meant to be the place for business logic to be applied around interesting * data changes, where the result of that change applied to that business logic is one or more * documents to be asynchronously published. * *

For example, if you have user data you wish to share asynchronously with some interested * consumers, once a user was inserted or updated you would capture that change as a notification. * Then, implement a notification to capture the business logic around what, if any, documents * should be published as a result of that change. * * @see DocumentEvent */ public interface Notification { /** * Immediately returns with a {@link Future} representing the collection of * {@link DocumentEvent}s this notification should produce. * *

This method is expected to never throw an exception. Failures should be captured in the * returned {@code Future}. */ Future> toDocumentEvents(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy