/* * Copyright (C) 2005-2008 Jive Software. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jivesoftware.openfire.component; import org.jivesoftware.util.ModificationNotAllowedException; /** * Listener that will be alerted when an external component is disabled/enabled, * the port is changed or configuration about an external component is modified.<p> * * All listeners of the event will be alerted. Moreover, listeners have the chance * to deny a change from happening. If a single listener denied the operation then * it will not be allowed. * * @author Gaston Dombiak */ public interface ExternalComponentManagerListener { /** * Notification indicating whether the service is being enabled or disabled. The * listener may throw an exception to not allow the change from taking place. * * @param enabled true if the service is being enabled. * @throws ModificationNotAllowedException if the operation was denied. */ void serviceEnabled(boolean enabled) throws ModificationNotAllowedException; /** * Notification indicating that the port used by external components is being * modified. The listener may throw an exception to not allow the change from * taking place. * * @param newPort new default secret being set. * @throws ModificationNotAllowedException if the operation was denied. */ void portChanged(int newPort) throws ModificationNotAllowedException; /** * Notification indicating that the default secret is being modified. The * listener may throw an exception to not allow the change from taking place. * * @param newSecret new default secret being set. * @throws ModificationNotAllowedException if the operation was denied. */ void defaultSecretChanged(String newSecret) throws ModificationNotAllowedException; /** * Notification indicating that the permission policy is being modified. See * {@link ExternalComponentManager.PermissionPolicy} for more information. The * listener may throw an exception to not allow the change from taking place. * * @param newPolicy new permission policy being set. * @throws ModificationNotAllowedException if the operation was denied. */ void permissionPolicyChanged(ExternalComponentManager.PermissionPolicy newPolicy) throws ModificationNotAllowedException; /** * Notification indicating that a new component was allowed to connect using a * given configuration. The listener may throw an exception to not allow the * change from taking place. * * @param subdomain subdomain of the added component. * @param configuration configuration for the external component. * @throws ModificationNotAllowedException if the operation was denied. */ void componentAllowed(String subdomain, ExternalComponentConfiguration configuration) throws ModificationNotAllowedException; /** * Notification indicating that a component was blocked to connect to the server. * The listener may throw an exception to not allow the change from taking place. * * @param subdomain subdomain of the blocked component. * @throws ModificationNotAllowedException if the operation was denied. */ void componentBlocked(String subdomain) throws ModificationNotAllowedException; /** * Notification indicating that the configuration of a component, that was either * blocked or allowed to connect, is being deleted. The listener may throw an exception * to not allow the change from taking place. * * @param subdomain subdomain of the component. * @param newSecret new secret being set for the component. * @throws ModificationNotAllowedException if the operation was denied. */ void componentSecretUpdated(String subdomain, String newSecret) throws ModificationNotAllowedException; /** * Notification indicating that the configuration of a component, that was either * blocked or allowed to connect, is being deleted. The listener may throw an * exception to not allow the change from taking place. * * @param subdomain subdomain of the component. * @throws ModificationNotAllowedException if the operation was denied. */ void componentConfigurationDeleted(String subdomain) throws ModificationNotAllowedException; }