/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2013 ForgeRock AS. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * http://forgerock.org/license/CDDLv1.0.html * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at http://forgerock.org/license/CDDLv1.0.html * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" */ package org.forgerock.openidm.smartevent; /** * Publish smart events * * Events can be used both for * monitoring/low level events * application level * events * */ public class Publisher { /** * For events that mark/span the beginning and end of something, call this * method to mark the beginning of the event window. Upon reaching the end * of the event window, end() SHOULD be called on the returned EventEntry, * even in failure condiitons. For example call end() in a try/finally; or * at the very least the EventEntry should be unreferenced so it gets * garbage collected. Event entries where end() was not called do not * qualify for inclusion in statistics and may not be in the event history. * * @param eventName * the object representing the hierarchical event name and its * context. See <code>Name.get()</code> * @param payload * Optional payload to send so target subscribers (and * monitoring) can act upon it * @param context * Optional context information to send so target subscribers * (and monitoring) can act upon it */ public final static EventEntry start(Name eventName, Object payload, Object context) { return eventName.publisherImpl.start(eventName, payload, context); } // TDOO: support sending of events without start/end relationship // public final static void send(Name eventName, Object payload, Object // context) { // } }