/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.synapse.config;
import org.apache.synapse.Mediator;
import org.apache.synapse.Startup;
import org.apache.synapse.commons.executors.PriorityExecutor;
import org.apache.synapse.eventing.SynapseEventSource;
import org.apache.synapse.core.axis2.ProxyService;
import org.apache.synapse.endpoints.Endpoint;
import org.apache.synapse.inbound.InboundEndpoint;
import org.apache.synapse.rest.API;
/**
* An implementation of this interface can be registered with the SynapseConfiguration to receive
* configuration update events. Whenever a new item is added to the configuration or an existing
* item is removed the events defined in this interface will be fired.
*/
public interface SynapseObserver {
/** Event fired when a new sequence is added to the configuration
*
* @param sequence the Sequence mediator added to the configuration
*/
public void sequenceAdded(Mediator sequence);
/** Event fired when an existing sequence is removed from the configuration
*
* @param sequence the Sequence removed from the configuration
*/
public void sequenceRemoved(Mediator sequence);
/** Event fired when a new sequence template is added to the configuration
*
* @param template the Sequence mediator added to the configuration
*/
public void sequenceTemplateAdded(Mediator template);
/** Event fired when an existing sequence template is removed from the configuration
*
* @param template the Sequence removed from the configuration
*/
public void sequenceTemplateRemoved(Mediator template);
/** Event fired when an entry is added to the configuration
*
* @param entry the Entry added to the configuration
*/
public void entryAdded(Entry entry);
/** Event fired when an entry is removed from the configuration
*
* @param entry the Entry removed from the configuration
*/
public void entryRemoved(Entry entry);
/** Event fired when an endpoint is added to the configuration
*
* @param endpoint the Endpoint added to the configuration
*/
public void endpointAdded(Endpoint endpoint);
/** Event fired when an endpoint is removed from the configuration
*
* @param endpoint the Endpoint removed from the configuration
*/
public void endpointRemoved(Endpoint endpoint);
/** Event fired when a proxy service is added to the configuration
*
* @param proxy the ProxyService added to the configuration
*/
public void proxyServiceAdded(ProxyService proxy);
/** Event fired when a proxy service is removed from the configuration
*
* @param proxy the ProxyService removed from the configuration
*/
public void proxyServiceRemoved(ProxyService proxy);
/** Event fired when a api is added to the configuration
*
* @param api the API added to the configuration
*/
public void apiAdded(API api);
/** Event fired when a API is removed from the configuration
*
* @param api the API removed from the configuration
*/
public void apiRemoved(API api);
/** Event fired when a API is updated in the configuration
*
* @param api the API updated in the configuration
*/
public void apiUpdated(API api);
/** Event fired when a Inbound Endpoint is added to the configuration
*
* @param inboundEndpoint the Inbound Endpoint added to the configuration
*/
public void inboundEndpointAdded(InboundEndpoint inboundEndpoint);
/** Event fired when a Inbound Endpoint is removed to the configuration
*
* @param inboundEndpoint the Inbound Endpoint removed to the configuration
*/
public void inboundEndpointRemoved(InboundEndpoint inboundEndpoint);
/** Event fired when a Inbound Endpoint is updated in the configuration
*
* @param inboundEndpoint the Inbound Endpoint updated in the configuration
*/
public void inboundEndpointUpdated(InboundEndpoint inboundEndpoint);
/** Event fired when a startup is added to the configuration
*
* @param startup the Startup added to the configuration
*/
public void startupAdded(Startup startup);
/** Event fired when a startup is removed from the configuration
*
* @param startup the Startup removed from the configuration
*/
public void startupRemoved(Startup startup);
/** Event fired when an event source is added to the configuration
*
* @param eventSource the SynapseEventSource added to the configuration
*/
public void eventSourceAdded(SynapseEventSource eventSource);
/** Event fired when an event source is removed from the configuration
*
* @param eventSource the SynapseEventSource removed from the configuration
*/
public void eventSourceRemoved(SynapseEventSource eventSource);
/** Event fired when a priority executor is added to the configuration
*
* @param exec the PriorityExecutor added to the configuration
*/
public void priorityExecutorAdded(PriorityExecutor exec);
/** Event fired when a priority executor is removed from the configuration
*
* @param exec the PriorityExecutor removed from the configuration
*/
public void priorityExecutorRemoved(PriorityExecutor exec);
}