/*
* Copyright (c) 2005 - 2014, WSO2 Inc. (http://www.wso2.org) 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.wso2.carbon.event.publisher.core;
import org.wso2.carbon.databridge.commons.StreamDefinition;
import org.wso2.carbon.event.publisher.core.config.EventPublisherConfiguration;
import org.wso2.carbon.event.publisher.core.config.EventPublisherConfigurationFile;
import org.wso2.carbon.event.publisher.core.exception.EventPublisherConfigurationException;
import java.util.List;
public interface EventPublisherService {
/**
* Method used to add a new event publisher configuration
*
* @param eventPublisherConfiguration
* @throws EventPublisherConfigurationException
*/
public void deployEventPublisherConfiguration(
EventPublisherConfiguration eventPublisherConfiguration)
throws EventPublisherConfigurationException;
/**
* Method used to add a new event publisher configuration by passing in the xml configuration
*
* @param eventPublisherConfigXml
* @throws EventPublisherConfigurationException
*/
public void deployEventPublisherConfiguration(
String eventPublisherConfigXml)
throws EventPublisherConfigurationException;
/**
* This method used to un-deploy the active event publisher configuration from filesystem
*
* @param eventPublisherName
* @throws EventPublisherConfigurationException
*/
public void undeployActiveEventPublisherConfiguration(String eventPublisherName)
throws EventPublisherConfigurationException;
/**
* Method used to undeploy inactive event publisher configuration file from filesystem
*
* @param fileName
* @throws EventPublisherConfigurationException
*/
public void undeployInactiveEventPublisherConfiguration(String fileName)
throws EventPublisherConfigurationException;
/**
* Method used to get edit the inactive event publisher configuration info
*
* @param eventPublisherConfiguration
* @param fileName
* @throws EventPublisherConfigurationException
*/
public void editInactiveEventPublisherConfiguration(
String eventPublisherConfiguration,
String fileName)
throws EventPublisherConfigurationException;
/**
* Method used to edit the active event publisher configuration info
*
* @param eventPublisherConfiguration
* @param eventPublisherName
* @throws EventPublisherConfigurationException
*/
public void editActiveEventPublisherConfiguration(String eventPublisherConfiguration,
String eventPublisherName)
throws EventPublisherConfigurationException;
/**
* Method used to get the active event publisher configuration as an object
*
* @param eventPublisherName
* @return
* @throws EventPublisherConfigurationException
*/
public EventPublisherConfiguration getActiveEventPublisherConfiguration(
String eventPublisherName)
throws EventPublisherConfigurationException;
/**
* This method used to get all the active event publisher configuration objects
*
* @return
* @throws EventPublisherConfigurationException
*/
public List<EventPublisherConfiguration> getAllActiveEventPublisherConfigurations()
throws EventPublisherConfigurationException;
public List<EventPublisherConfiguration> getAllActiveEventPublisherConfigurations(
String streamId)
throws EventPublisherConfigurationException;
/**
* This method used to get all inactive event publisher configuration file objects
*
* @return
*/
public List<EventPublisherConfigurationFile> getAllInactiveEventPublisherConfigurations();
/**
* Method used to get the inactive event publisher configuration xml as a string
*
* @param filename
* @return
* @throws EventPublisherConfigurationException
*/
public String getInactiveEventPublisherConfigurationContent(String filename)
throws EventPublisherConfigurationException;
/**
* Method used to get the active event publisher configuration xml as a string
*
* @param eventPublisherName
* @return
* @throws EventPublisherConfigurationException
*/
public String getActiveEventPublisherConfigurationContent(String eventPublisherName)
throws EventPublisherConfigurationException;
/**
* Method used to get the specific stream definition for a given streamId
*
* @param streamNameWithVersion
* @return
* @throws EventPublisherConfigurationException
*/
public StreamDefinition getStreamDefinition(String streamNameWithVersion)
throws EventPublisherConfigurationException;
/**
* Method used to get the resource from the registry
*
* @param resourcePath
* @return
* @throws EventPublisherConfigurationException
*/
public String getRegistryResourceContent(String resourcePath)
throws EventPublisherConfigurationException;
/**
* Method used to enable/disable the statistics for an event publisher
*
* @param eventPublisherName the event publisher name to which statistics collecting state should be changed
* @throws EventPublisherConfigurationException
*/
public void setStatisticsEnabled(String eventPublisherName, boolean statisticsEnabled)
throws EventPublisherConfigurationException;
/**
* Method used to enable/disable the tracing for an event publisher
*
* @param eventPublisherName the event publisher name to which tracing state should be changed
* @param traceEnabled
*/
public void setTraceEnabled(String eventPublisherName, boolean traceEnabled)
throws EventPublisherConfigurationException;
/**
* Method used to enable/disable the processing for an event publisher
*
* @param eventPublisherName the event publisher name to which tracing state should be changed
* @param processingEnabled
*/
public void setProcessEnabled(String eventPublisherName, boolean processingEnabled)
throws EventPublisherConfigurationException;
/**
* Returns the Event Publisher Name as in the given {@code eventPublisherConfigXml}.
*
* @param eventPublisherConfigXml Event Publisher Configuration, in XML format.
* @return The name of the Event Publisher, as given in the {@code eventPublisherConfigXml}
* @throws EventPublisherConfigurationException
*/
public String getEventPublisherName(String eventPublisherConfigXml)
throws EventPublisherConfigurationException;
}