/*
* 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.internal.ds;
import org.wso2.carbon.event.output.adapter.core.MessageType;
import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterService;
import org.wso2.carbon.event.processor.manager.core.EventManagementService;
import org.wso2.carbon.event.publisher.core.EventPublisherService;
import org.wso2.carbon.event.publisher.core.config.OutputMapperFactory;
import org.wso2.carbon.event.publisher.core.internal.CarbonEventPublisherManagementService;
import org.wso2.carbon.event.publisher.core.internal.CarbonEventPublisherService;
import org.wso2.carbon.event.publisher.core.internal.type.json.JSONOutputMapperFactory;
import org.wso2.carbon.event.publisher.core.internal.type.map.MapOutputMapperFactory;
import org.wso2.carbon.event.publisher.core.internal.type.text.TextOutputMapperFactory;
import org.wso2.carbon.event.publisher.core.internal.type.wso2event.WSO2EventOutputMapperFactory;
import org.wso2.carbon.event.publisher.core.internal.type.xml.XMLOutputMapperFactory;
import org.wso2.carbon.event.stream.core.EventStreamService;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.service.RegistryService;
import org.wso2.carbon.utils.ConfigurationContextService;
import java.util.Collections;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
public class EventPublisherServiceValueHolder {
private static OutputEventAdapterService outputEventAdapterService;
private static CarbonEventPublisherService carbonEventPublisherService;
private static EventStreamService eventStreamService;
private static RegistryService registryService;
private static CarbonEventPublisherManagementService carbonEventPublisherManagementService;
private static EventManagementService eventManagementService;
private static ConcurrentHashMap<String, OutputMapperFactory> mappingFactoryMap = new ConcurrentHashMap<String, OutputMapperFactory>();
public static Set<String> outputEventAdapterTypes = Collections.newSetFromMap(new ConcurrentHashMap<String, Boolean>());
private static ConfigurationContextService configurationContextService;
private static boolean globalStatisticsEnabled = false;
static {
mappingFactoryMap.put(MessageType.MAP, new MapOutputMapperFactory());
mappingFactoryMap.put(MessageType.TEXT, new TextOutputMapperFactory());
mappingFactoryMap.put(MessageType.WSO2EVENT, new WSO2EventOutputMapperFactory());
mappingFactoryMap.put(MessageType.XML, new XMLOutputMapperFactory());
mappingFactoryMap.put(MessageType.JSON, new JSONOutputMapperFactory());
}
private EventPublisherServiceValueHolder() {
}
public static CarbonEventPublisherService getCarbonEventPublisherService() {
return carbonEventPublisherService;
}
public static void registerPublisherService(EventPublisherService eventPublisherService) {
EventPublisherServiceValueHolder.carbonEventPublisherService = (CarbonEventPublisherService) eventPublisherService;
}
public static void registerEventAdapterService(
OutputEventAdapterService eventAdapterService) {
EventPublisherServiceValueHolder.outputEventAdapterService = eventAdapterService;
}
public static OutputEventAdapterService getOutputEventAdapterService() {
return EventPublisherServiceValueHolder.outputEventAdapterService;
}
public static void setRegistryService(RegistryService registryService) {
EventPublisherServiceValueHolder.registryService = registryService;
}
public static CarbonEventPublisherManagementService getCarbonEventPublisherManagementService() {
return carbonEventPublisherManagementService;
}
public static void registerPublisherManagementService(CarbonEventPublisherManagementService eventPublisherManagementService) {
EventPublisherServiceValueHolder.carbonEventPublisherManagementService = eventPublisherManagementService;
}
public static void registerEventManagementService(EventManagementService eventManagementService) {
EventPublisherServiceValueHolder.eventManagementService = eventManagementService;
}
public static void unSetRegistryService() {
EventPublisherServiceValueHolder.registryService = null;
}
public static RegistryService getRegistryService() {
return EventPublisherServiceValueHolder.registryService;
}
public static Registry getRegistry(int tenantId) throws RegistryException {
return registryService.getConfigSystemRegistry(tenantId);
}
public static ConcurrentHashMap<String, OutputMapperFactory> getMappingFactoryMap() {
return mappingFactoryMap;
}
public static EventManagementService getEventManagementService() {
return eventManagementService;
}
public static void registerEventStreamService(EventStreamService eventStreamService) {
EventPublisherServiceValueHolder.eventStreamService = eventStreamService;
}
public static EventStreamService getEventStreamService() {
return EventPublisherServiceValueHolder.eventStreamService;
}
public static void setConfigurationContextService(ConfigurationContextService configurationContextService) {
EventPublisherServiceValueHolder.configurationContextService = configurationContextService;
}
public static ConfigurationContextService getConfigurationContextService() {
return configurationContextService;
}
public static Set<String> getOutputEventAdapterTypes() {
return outputEventAdapterTypes;
}
public static void addOutputEventAdapterType(String outputEventAdapterType) {
EventPublisherServiceValueHolder.outputEventAdapterTypes.add(outputEventAdapterType);
}
public static void removeOutputEventAdapterType(String outputEventAdapterType) {
EventPublisherServiceValueHolder.outputEventAdapterTypes.remove(outputEventAdapterType);
}
public static void setGlobalStatisticsEnabled(boolean globalStatisticsEnabled) {
EventPublisherServiceValueHolder.globalStatisticsEnabled = globalStatisticsEnabled;
}
public static boolean isGlobalStatisticsEnabled() {
return globalStatisticsEnabled;
}
}