001/* 002 * The contents of this file are subject to the terms of the Common Development and 003 * Distribution License (the License). You may not use this file except in compliance with the 004 * License. 005 * 006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the 007 * specific language governing permission and limitations under the License. 008 * 009 * When distributing Covered Software, include this CDDL Header Notice in each file and include 010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL 011 * Header, with the fields enclosed by brackets [] replaced by your own identifying 012 * information: "Portions Copyright [year] [name of copyright owner]". 013 * 014 * Copyright 2008-2009 Sun Microsystems, Inc. 015 * Portions copyright 2013 ForgeRock AS. 016 */ 017package org.forgerock.opendj.server.core; 018 019/** 020 * An object that registers to be notified of events generated by a 021 * {@link DataProviderConnection} object. Data provider events may be triggered 022 * as a result of: 023 * <ul> 024 * <li>The data provider connection being closed. 025 * <li>An operational error. For example, a proxy data provider might lose 026 * connectivity with the remote server. 027 * <li>A configuration change. For example, a data provider may be disabled, or 028 * have a new base DN added. 029 * <li>An administrative action. For example, a data provider may be temporarily 030 * disabled during an import or restore from backup. 031 * </ul> 032 * In the case of configuration changes, the data provider will only notify its 033 * listeners once the configuration change has been applied. If a listener 034 * wishes to validate configuration changes before they are applied to a data 035 * provider then the listener should use the registration methods provided by 036 * {@code DataProviderCfg}. 037 */ 038public interface DataProviderEventListener { 039 040 /** 041 * The data provider has changed state due to an operational error, 042 * configuration change, or an administrative action. 043 * <p> 044 * Implementations should examine the provided {@link DataProviderEvent} in 045 * order to determine how the data provider has changed. 046 * 047 * @param event 048 * The data provider event. 049 */ 050 void handleDataProviderEvent(DataProviderEvent event); 051 052}