/* * Copyright (c) 2015, 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.admin; import org.apache.axis2.AxisFault; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.core.AbstractAdmin; import org.wso2.carbon.databridge.commons.Attribute; import org.wso2.carbon.databridge.commons.StreamDefinition; import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterConfiguration; import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterSchema; import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterService; import org.wso2.carbon.event.output.adapter.core.Property; import org.wso2.carbon.event.output.adapter.core.exception.OutputEventAdapterException; import org.wso2.carbon.event.output.adapter.core.exception.TestConnectionNotSupportedException; import org.wso2.carbon.event.publisher.admin.internal.PropertyAttributeTypeConstants; import org.wso2.carbon.event.publisher.admin.internal.ds.EventPublisherAdminServiceValueHolder; import org.wso2.carbon.event.publisher.core.EventPublisherService; import org.wso2.carbon.event.publisher.core.config.EventOutputProperty; 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.config.EventPublisherConstants; import org.wso2.carbon.event.publisher.core.config.mapping.*; import org.wso2.carbon.event.publisher.core.exception.EventPublisherConfigurationException; import java.util.*; public class EventPublisherAdminService extends AbstractAdmin { private static Log log = LogFactory.getLog(EventPublisherAdminService.class); public EventPublisherConfigurationInfoDto[] getAllActiveEventPublisherConfigurations() throws AxisFault { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); // get event publisher configurations List<EventPublisherConfiguration> eventPublisherConfigurationList; eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(); if (eventPublisherConfigurationList != null) { // create event publisher configuration details array EventPublisherConfigurationInfoDto[] eventPublisherConfigurationInfoDtoArray = new EventPublisherConfigurationInfoDto[eventPublisherConfigurationList.size()]; for (int index = 0; index < eventPublisherConfigurationInfoDtoArray.length; index++) { EventPublisherConfiguration eventPublisherConfiguration = eventPublisherConfigurationList.get(index); String eventPublisherName = eventPublisherConfiguration.getEventPublisherName(); String mappingType = eventPublisherConfiguration.getOutputMapping().getMappingType(); String outputEventAdapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType(); String streamNameWithVersion = eventPublisherConfiguration.getFromStreamName() + ":" + eventPublisherConfiguration.getFromStreamVersion(); eventPublisherConfigurationInfoDtoArray[index] = new EventPublisherConfigurationInfoDto(); eventPublisherConfigurationInfoDtoArray[index].setEventPublisherName(eventPublisherName); eventPublisherConfigurationInfoDtoArray[index].setMessageFormat(mappingType); eventPublisherConfigurationInfoDtoArray[index].setOutputAdapterType(outputEventAdapterType); eventPublisherConfigurationInfoDtoArray[index].setInputStreamId(streamNameWithVersion); eventPublisherConfigurationInfoDtoArray[index].setEnableStats(eventPublisherConfiguration.isStatisticsEnabled()); eventPublisherConfigurationInfoDtoArray[index].setEnableTracing(eventPublisherConfiguration.isTracingEnabled()); eventPublisherConfigurationInfoDtoArray[index].setEditable(eventPublisherConfiguration.isEditable()); eventPublisherConfigurationInfoDtoArray[index].setEnableProcessing(eventPublisherConfiguration.isProcessingEnabled()); } Arrays.sort(eventPublisherConfigurationInfoDtoArray, new Comparator() { @Override public int compare(Object o1, Object o2) { return ((EventPublisherConfigurationInfoDto) o1).getEventPublisherName().compareTo(((EventPublisherConfigurationInfoDto) o2).getEventPublisherName()); } }); return eventPublisherConfigurationInfoDtoArray; } else { return new EventPublisherConfigurationInfoDto[0]; } } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } public EventPublisherConfigurationInfoDto[] getAllStreamSpecificActiveEventPublisherConfigurations( String streamId) throws AxisFault { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); // get event publisher configurations List<EventPublisherConfiguration> eventPublisherConfigurationList; eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(streamId); if (eventPublisherConfigurationList != null) { // create event publisher configuration details array EventPublisherConfigurationInfoDto[] eventPublisherConfigurationInfoDtoArray = new EventPublisherConfigurationInfoDto[eventPublisherConfigurationList.size()]; for (int index = 0; index < eventPublisherConfigurationInfoDtoArray.length; index++) { EventPublisherConfiguration eventPublisherConfiguration = eventPublisherConfigurationList.get(index); String eventPublisherName = eventPublisherConfiguration.getEventPublisherName(); String mappingType = eventPublisherConfiguration.getOutputMapping().getMappingType(); String outputEventAdapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType(); eventPublisherConfigurationInfoDtoArray[index] = new EventPublisherConfigurationInfoDto(); eventPublisherConfigurationInfoDtoArray[index].setEventPublisherName(eventPublisherName); eventPublisherConfigurationInfoDtoArray[index].setMessageFormat(mappingType); eventPublisherConfigurationInfoDtoArray[index].setOutputAdapterType(outputEventAdapterType); eventPublisherConfigurationInfoDtoArray[index].setEnableStats(eventPublisherConfiguration.isStatisticsEnabled()); eventPublisherConfigurationInfoDtoArray[index].setEnableTracing(eventPublisherConfiguration.isTracingEnabled()); eventPublisherConfigurationInfoDtoArray[index].setEditable(eventPublisherConfiguration.isEditable()); eventPublisherConfigurationInfoDtoArray[index].setEnableProcessing(eventPublisherConfiguration.isProcessingEnabled()); } Arrays.sort(eventPublisherConfigurationInfoDtoArray, new Comparator() { @Override public int compare(Object o1, Object o2) { return ((EventPublisherConfigurationInfoDto) o1).getEventPublisherName().compareTo(((EventPublisherConfigurationInfoDto) o2).getEventPublisherName()); } }); return eventPublisherConfigurationInfoDtoArray; } else { return new EventPublisherConfigurationInfoDto[0]; } } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } public EventPublisherConfigurationFileDto[] getAllInactiveEventPublisherConfigurations() throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); List<EventPublisherConfigurationFile> eventPublisherConfigurationFileList = eventPublisherService.getAllInactiveEventPublisherConfigurations(); if (eventPublisherConfigurationFileList != null) { // create event publisher file details array EventPublisherConfigurationFileDto[] eventPublisherFileDtoArray = new EventPublisherConfigurationFileDto[eventPublisherConfigurationFileList.size()]; for (int index = 0; index < eventPublisherFileDtoArray.length; index++) { EventPublisherConfigurationFile eventPublisherConfigurationFile = eventPublisherConfigurationFileList.get(index); String fileName = eventPublisherConfigurationFile.getFileName(); String eventPublisherName = eventPublisherConfigurationFile.getEventPublisherName(); String statusMsg = eventPublisherConfigurationFile.getDeploymentStatusMessage(); if (eventPublisherConfigurationFile.getDependency() != null) { statusMsg = statusMsg + " [Dependency: " + eventPublisherConfigurationFile.getDependency() + "]"; } eventPublisherFileDtoArray[index] = new EventPublisherConfigurationFileDto(fileName, eventPublisherName, statusMsg); } Arrays.sort(eventPublisherFileDtoArray, new Comparator() { @Override public int compare(Object o1, Object o2) { return ((EventPublisherConfigurationFileDto) o1).getFileName().compareTo(((EventPublisherConfigurationFileDto) o2).getFileName()); } }); return eventPublisherFileDtoArray; } else { return new EventPublisherConfigurationFileDto[0]; } } public EventPublisherConfigurationDto getActiveEventPublisherConfiguration( String eventPublisherName) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { EventPublisherConfiguration eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration(eventPublisherName); if (eventPublisherConfiguration != null) { EventPublisherConfigurationDto eventPublisherConfigurationDto = new EventPublisherConfigurationDto(); eventPublisherConfigurationDto.setEventPublisherName(eventPublisherConfiguration.getEventPublisherName()); String streamNameWithVersion = eventPublisherConfiguration.getFromStreamName() + ":" + eventPublisherConfiguration.getFromStreamVersion(); eventPublisherConfigurationDto.setFromStreamNameWithVersion(streamNameWithVersion); eventPublisherConfigurationDto.setStreamDefinition(getStreamAttributes(eventPublisherService.getStreamDefinition(streamNameWithVersion))); OutputEventAdapterConfiguration toAdapterConfiguration = eventPublisherConfiguration.getToAdapterConfiguration(); if (toAdapterConfiguration != null) { OutputEventAdapterService outputEventAdapterService = EventPublisherAdminServiceValueHolder.getOutputEventAdapterService(); OutputEventAdapterSchema outputEventAdapterSchema = outputEventAdapterService.getOutputEventAdapterSchema(toAdapterConfiguration.getType()); OutputAdapterConfigurationDto toAdapterConfigurationDto = new OutputAdapterConfigurationDto(); toAdapterConfigurationDto.setEventAdapterType(toAdapterConfiguration.getType()); toAdapterConfigurationDto.setSupportedMessageFormats( outputEventAdapterSchema.getSupportedMessageFormats(). toArray(new String[outputEventAdapterSchema.getSupportedMessageFormats().size()])); toAdapterConfigurationDto.setUsageTips(outputEventAdapterSchema.getUsageTips()); Map<String, String> outputAdapterProperties = new HashMap<String, String>(); outputAdapterProperties.putAll(toAdapterConfiguration.getStaticProperties()); outputAdapterProperties.putAll(eventPublisherConfiguration.getToAdapterDynamicProperties()); DetailOutputAdapterPropertyDto[] detailOutputAdapterStaticPropertyDtos = getPropertyConfigurations(outputAdapterProperties, outputEventAdapterSchema.getStaticPropertyList()); DetailOutputAdapterPropertyDto[] detailOutputAdapterDynamicPropertyDtos = getPropertyConfigurations(outputAdapterProperties, outputEventAdapterSchema.getDynamicPropertyList()); toAdapterConfigurationDto.setOutputEventAdapterStaticProperties(detailOutputAdapterStaticPropertyDtos); toAdapterConfigurationDto.setOutputEventAdapterDynamicProperties(detailOutputAdapterDynamicPropertyDtos); eventPublisherConfigurationDto.setToAdapterConfigurationDto(toAdapterConfigurationDto); } if (eventPublisherConfiguration.getOutputMapping().getMappingType().equals(EventPublisherConstants.EF_JSON_MAPPING_TYPE)) { JSONOutputMapping jsonOutputMapping = (JSONOutputMapping) eventPublisherConfiguration.getOutputMapping(); JSONOutputMappingDto jsonOutputMappingDto = new JSONOutputMappingDto(); jsonOutputMappingDto.setMappingText(jsonOutputMapping.getMappingText()); jsonOutputMappingDto.setRegistryResource(jsonOutputMapping.isRegistryResource()); jsonOutputMappingDto.setCacheTimeoutDuration(jsonOutputMapping.getCacheTimeoutDuration()); eventPublisherConfigurationDto.setJsonOutputMappingDto(jsonOutputMappingDto); eventPublisherConfigurationDto.setCustomMappingEnabled(jsonOutputMapping.isCustomMappingEnabled()); eventPublisherConfigurationDto.setMessageFormat(EventPublisherConstants.EF_JSON_MAPPING_TYPE); } else if (eventPublisherConfiguration.getOutputMapping().getMappingType().equals(EventPublisherConstants.EF_XML_MAPPING_TYPE)) { XMLOutputMapping xmlOutputMapping = (XMLOutputMapping) eventPublisherConfiguration.getOutputMapping(); XMLOutputMappingDto xmlOutputMappingDto = new XMLOutputMappingDto(); xmlOutputMappingDto.setMappingXMLText(xmlOutputMapping.getMappingXMLText()); xmlOutputMappingDto.setRegistryResource(xmlOutputMapping.isRegistryResource()); xmlOutputMappingDto.setCacheTimeoutDuration(xmlOutputMapping.getCacheTimeoutDuration()); eventPublisherConfigurationDto.setCustomMappingEnabled(xmlOutputMapping.isCustomMappingEnabled()); eventPublisherConfigurationDto.setXmlOutputMappingDto(xmlOutputMappingDto); eventPublisherConfigurationDto.setMessageFormat(EventPublisherConstants.EF_XML_MAPPING_TYPE); } else if (eventPublisherConfiguration.getOutputMapping().getMappingType().equals(EventPublisherConstants.EF_TEXT_MAPPING_TYPE)) { TextOutputMapping textOutputMapping = (TextOutputMapping) eventPublisherConfiguration.getOutputMapping(); TextOutputMappingDto textOutputMappingDto = new TextOutputMappingDto(); textOutputMappingDto.setMappingText(textOutputMapping.getMappingText()); textOutputMappingDto.setRegistryResource(textOutputMapping.isRegistryResource()); textOutputMappingDto.setCacheTimeoutDuration(textOutputMapping.getCacheTimeoutDuration()); eventPublisherConfigurationDto.setTextOutputMappingDto(textOutputMappingDto); eventPublisherConfigurationDto.setCustomMappingEnabled(textOutputMapping.isCustomMappingEnabled()); eventPublisherConfigurationDto.setMessageFormat(EventPublisherConstants.EF_TEXT_MAPPING_TYPE); } else if (eventPublisherConfiguration.getOutputMapping().getMappingType().equals(EventPublisherConstants.EF_MAP_MAPPING_TYPE)) { MapOutputMapping mapOutputMapping = (MapOutputMapping) eventPublisherConfiguration.getOutputMapping(); MapOutputMappingDto mapOutputMappingDto = new MapOutputMappingDto(); List<EventOutputProperty> outputPropertyList = mapOutputMapping.getOutputPropertyConfiguration(); if (outputPropertyList != null && outputPropertyList.size() > 0) { EventMappingPropertyDto[] eventMappingPropertyDtos = new EventMappingPropertyDto[outputPropertyList.size()]; int index = 0; for (EventOutputProperty eventOutputProperty : outputPropertyList) { eventMappingPropertyDtos[index] = new EventMappingPropertyDto(); eventMappingPropertyDtos[index].setName(eventOutputProperty.getName()); eventMappingPropertyDtos[index].setValueOf(eventOutputProperty.getValueOf()); index++; } mapOutputMappingDto.setEventMappingProperties(eventMappingPropertyDtos); } eventPublisherConfigurationDto.setMapOutputMappingDto(mapOutputMappingDto); eventPublisherConfigurationDto.setCustomMappingEnabled(mapOutputMapping.isCustomMappingEnabled()); eventPublisherConfigurationDto.setMessageFormat(EventPublisherConstants.EF_MAP_MAPPING_TYPE); } else if (eventPublisherConfiguration.getOutputMapping().getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE)) { WSO2EventOutputMapping wso2EventOutputMapping = (WSO2EventOutputMapping) eventPublisherConfiguration.getOutputMapping(); WSO2EventOutputMappingDto wso2EventOutputMappingDto = new WSO2EventOutputMappingDto(); List<EventOutputProperty> metaOutputPropertyList = wso2EventOutputMapping.getMetaWSO2EventOutputPropertyConfiguration(); List<EventOutputProperty> correlationOutputPropertyList = wso2EventOutputMapping.getCorrelationWSO2EventOutputPropertyConfiguration(); List<EventOutputProperty> payloadOutputPropertyList = wso2EventOutputMapping.getPayloadWSO2EventOutputPropertyConfiguration(); wso2EventOutputMappingDto.setMetaWSO2EventMappingProperties(getEventPropertyDtoArray(metaOutputPropertyList)); wso2EventOutputMappingDto.setCorrelationWSO2EventMappingProperties(getEventPropertyDtoArray(correlationOutputPropertyList)); wso2EventOutputMappingDto.setPayloadWSO2EventMappingProperties(getEventPropertyDtoArray(payloadOutputPropertyList)); wso2EventOutputMappingDto.setOutputStreamName(wso2EventOutputMapping.getToEventName()); wso2EventOutputMappingDto.setOutputStreamVersion(wso2EventOutputMapping.getToEventVersion()); eventPublisherConfigurationDto.setCustomMappingEnabled(wso2EventOutputMapping.isCustomMappingEnabled()); eventPublisherConfigurationDto.setWso2EventOutputMappingDto(wso2EventOutputMappingDto); eventPublisherConfigurationDto.setMessageFormat(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE); } return eventPublisherConfigurationDto; } } catch (EventPublisherConfigurationException ex) { log.error(ex.getMessage(), ex); throw new AxisFault(ex.getMessage()); } return null; } public String getActiveEventPublisherConfigurationContent(String eventPublisherName) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { return eventPublisherService.getActiveEventPublisherConfigurationContent(eventPublisherName); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } public String getInactiveEventPublisherConfigurationContent(String fileName) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { String eventPublisherConfigurationFile = eventPublisherService.getInactiveEventPublisherConfigurationContent(fileName); return eventPublisherConfigurationFile.trim(); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } public boolean undeployActiveEventPublisherConfiguration(String eventPublisherName) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { eventPublisherService.undeployActiveEventPublisherConfiguration(eventPublisherName); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public boolean undeployInactiveEventPublisherConfiguration(String fileName) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { eventPublisherService.undeployInactiveEventPublisherConfiguration(fileName); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public boolean editActiveEventPublisherConfiguration(String eventPublisherConfiguration, String eventPublisherName) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { eventPublisherService.editActiveEventPublisherConfiguration(eventPublisherConfiguration, eventPublisherName); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public boolean editInactiveEventPublisherConfiguration( String eventPublisherConfiguration, String fileName) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { eventPublisherService.editInactiveEventPublisherConfiguration(eventPublisherConfiguration, fileName); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public boolean deployEventPublisherConfiguration(String eventPublisherConfigXml) throws AxisFault { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); eventPublisherService.deployEventPublisherConfiguration(eventPublisherConfigXml); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public boolean deployWSO2EventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, EventMappingPropertyDto[] metaData, EventMappingPropertyDto[] correlationData, EventMappingPropertyDto[] payloadData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, boolean mappingEnabled, String toStreamNameWithVersion) throws AxisFault { if (checkEventPublisherValidity(eventPublisherName)) { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); EventPublisherConfiguration eventPublisherConfiguration = new EventPublisherConfiguration(); eventPublisherConfiguration.setProcessEnabled(true); eventPublisherConfiguration.setEventPublisherName(eventPublisherName); String[] fromStreamProperties = streamNameWithVersion.split(":"); eventPublisherConfiguration.setFromStreamName(fromStreamProperties[0]); eventPublisherConfiguration.setFromStreamVersion(fromStreamProperties[1]); StreamDefinition streamDefinition = eventPublisherService.getStreamDefinition(streamNameWithVersion); constructOutputAdapterRelatedConfigs(eventPublisherName, eventAdapterType, outputPropertyConfiguration, eventPublisherConfiguration, EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE); WSO2EventOutputMapping wso2EventOutputMapping = new WSO2EventOutputMapping(); wso2EventOutputMapping.setCustomMappingEnabled(mappingEnabled); List<String> outputEventAttributes = new ArrayList<String>(); if (mappingEnabled) { if (metaData != null && metaData.length != 0) { for (EventMappingPropertyDto wso2EventOutputPropertyConfiguration : metaData) { EventOutputProperty eventOutputProperty = new EventOutputProperty(wso2EventOutputPropertyConfiguration.getName(), wso2EventOutputPropertyConfiguration.getValueOf(), PropertyAttributeTypeConstants.STRING_ATTRIBUTE_TYPE_MAP.get(getPropertyAttributeDataType(wso2EventOutputPropertyConfiguration.getValueOf(), streamDefinition))); wso2EventOutputMapping.addMetaWSO2EventOutputPropertyConfiguration(eventOutputProperty); outputEventAttributes.add(wso2EventOutputPropertyConfiguration.getValueOf()); } } if (correlationData != null && correlationData.length != 0) { for (EventMappingPropertyDto wso2EventOutputPropertyConfiguration : correlationData) { EventOutputProperty eventOutputProperty = new EventOutputProperty(wso2EventOutputPropertyConfiguration.getName(), wso2EventOutputPropertyConfiguration.getValueOf(), PropertyAttributeTypeConstants.STRING_ATTRIBUTE_TYPE_MAP.get(getPropertyAttributeDataType(wso2EventOutputPropertyConfiguration.getValueOf(), streamDefinition))); wso2EventOutputMapping.addCorrelationWSO2EventOutputPropertyConfiguration(eventOutputProperty); outputEventAttributes.add(wso2EventOutputPropertyConfiguration.getValueOf()); } } if (payloadData != null && payloadData.length != 0) { for (EventMappingPropertyDto wso2EventOutputPropertyConfiguration : payloadData) { EventOutputProperty eventOutputProperty = new EventOutputProperty(wso2EventOutputPropertyConfiguration.getName(), wso2EventOutputPropertyConfiguration.getValueOf(), PropertyAttributeTypeConstants.STRING_ATTRIBUTE_TYPE_MAP.get(getPropertyAttributeDataType(wso2EventOutputPropertyConfiguration.getValueOf(), streamDefinition))); wso2EventOutputMapping.addPayloadWSO2EventOutputPropertyConfiguration(eventOutputProperty); outputEventAttributes.add(wso2EventOutputPropertyConfiguration.getValueOf()); } } String[] toStreamProperties = toStreamNameWithVersion.split(":"); wso2EventOutputMapping.setToEventName(toStreamProperties[0]); wso2EventOutputMapping.setToEventVersion(toStreamProperties[1]); } eventPublisherConfiguration.setOutputMapping(wso2EventOutputMapping); eventPublisherService.deployEventPublisherConfiguration(eventPublisherConfiguration); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } else { throw new AxisFault(eventPublisherName + " is already registered for this tenant"); } return true; } // Deprecated method public boolean deployTextEventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, String textData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, String dataFrom, boolean mappingEnabled) throws AxisFault { return deployCacheableTextEventPublisherConfiguration(eventPublisherName, streamNameWithVersion, eventAdapterType, textData, outputPropertyConfiguration, dataFrom, PropertyAttributeTypeConstants.DEFAULT_REGISTRY_RESOURCE_CACHE_TIMEOUT, mappingEnabled); } public boolean deployCacheableTextEventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, String textData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, String dataFrom, long cacheTimeoutDuration, boolean mappingEnabled) throws AxisFault { if (checkEventPublisherValidity(eventPublisherName)) { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); EventPublisherConfiguration eventPublisherConfiguration = new EventPublisherConfiguration(); eventPublisherConfiguration.setProcessEnabled(true); eventPublisherConfiguration.setEventPublisherName(eventPublisherName); String[] fromStreamProperties = streamNameWithVersion.split(":"); eventPublisherConfiguration.setFromStreamName(fromStreamProperties[0]); eventPublisherConfiguration.setFromStreamVersion(fromStreamProperties[1]); constructOutputAdapterRelatedConfigs(eventPublisherName, eventAdapterType, outputPropertyConfiguration, eventPublisherConfiguration, EventPublisherConstants.EF_TEXT_MAPPING_TYPE); TextOutputMapping textOutputMapping = new TextOutputMapping(); textOutputMapping.setCustomMappingEnabled(mappingEnabled); textOutputMapping.setRegistryResource(validateRegistrySource(dataFrom)); textOutputMapping.setMappingText(textData); textOutputMapping.setCacheTimeoutDuration(cacheTimeoutDuration); List<String> outputEventAttributes = new ArrayList<String>(); if (mappingEnabled) { if (dataFrom.equalsIgnoreCase("registry") && !textData.contains(EventPublisherConstants.TEMPLATE_EVENT_ATTRIBUTE_PREFIX) || textData.indexOf(EventPublisherConstants.TEMPLATE_EVENT_ATTRIBUTE_POSTFIX) < 0) { textData = eventPublisherService.getRegistryResourceContent(textData); } outputEventAttributes = getOutputMappingPropertyList(textData); } eventPublisherConfiguration.setOutputMapping(textOutputMapping); eventPublisherService.deployEventPublisherConfiguration(eventPublisherConfiguration); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } else { throw new AxisFault(eventPublisherName + " is already registered for this tenant"); } return true; } // Deprecated method public boolean deployXmlEventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, String textData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, String dataFrom, boolean mappingEnabled) throws AxisFault { return deployCacheableXmlEventPublisherConfiguration(eventPublisherName, streamNameWithVersion, eventAdapterType, textData, outputPropertyConfiguration, dataFrom, PropertyAttributeTypeConstants.DEFAULT_REGISTRY_RESOURCE_CACHE_TIMEOUT, mappingEnabled); } public boolean deployCacheableXmlEventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, String textData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, String dataFrom, long cacheTimeoutDuration, boolean mappingEnabled) throws AxisFault { if (checkEventPublisherValidity(eventPublisherName)) { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); EventPublisherConfiguration eventPublisherConfiguration = new EventPublisherConfiguration(); eventPublisherConfiguration.setProcessEnabled(true); eventPublisherConfiguration.setEventPublisherName(eventPublisherName); String[] fromStreamProperties = streamNameWithVersion.split(":"); eventPublisherConfiguration.setFromStreamName(fromStreamProperties[0]); eventPublisherConfiguration.setFromStreamVersion(fromStreamProperties[1]); constructOutputAdapterRelatedConfigs(eventPublisherName, eventAdapterType, outputPropertyConfiguration, eventPublisherConfiguration, EventPublisherConstants.EF_XML_MAPPING_TYPE); XMLOutputMapping xmlOutputMapping = new XMLOutputMapping(); xmlOutputMapping.setCustomMappingEnabled(mappingEnabled); List<String> outputEventAttributes = new ArrayList<String>(); if (mappingEnabled) { xmlOutputMapping.setMappingXMLText(textData); xmlOutputMapping.setRegistryResource(validateRegistrySource(dataFrom)); xmlOutputMapping.setCacheTimeoutDuration(cacheTimeoutDuration); outputEventAttributes = getOutputMappingPropertyList(textData); } eventPublisherConfiguration.setOutputMapping(xmlOutputMapping); eventPublisherService.deployEventPublisherConfiguration(eventPublisherConfiguration); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } else { throw new AxisFault(eventPublisherName + " is already registered for this tenant"); } return true; } public boolean deployMapEventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, EventMappingPropertyDto[] mapData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, boolean mappingEnabled) throws AxisFault { if (checkEventPublisherValidity(eventPublisherName)) { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); EventPublisherConfiguration eventPublisherConfiguration = new EventPublisherConfiguration(); eventPublisherConfiguration.setProcessEnabled(true); eventPublisherConfiguration.setEventPublisherName(eventPublisherName); String[] fromStreamProperties = streamNameWithVersion.split(":"); eventPublisherConfiguration.setFromStreamName(fromStreamProperties[0]); eventPublisherConfiguration.setFromStreamVersion(fromStreamProperties[1]); constructOutputAdapterRelatedConfigs(eventPublisherName, eventAdapterType, outputPropertyConfiguration, eventPublisherConfiguration, EventPublisherConstants.EF_MAP_MAPPING_TYPE); MapOutputMapping mapOutputMapping = new MapOutputMapping(); mapOutputMapping.setCustomMappingEnabled(mappingEnabled); List<String> outputEventAttributes = new ArrayList<String>(); if (mappingEnabled) { if (mapData != null && mapData.length != 0) { for (EventMappingPropertyDto eventOutputPropertyConfiguration : mapData) { EventOutputProperty eventOutputProperty = new EventOutputProperty(eventOutputPropertyConfiguration.getName(), eventOutputPropertyConfiguration.getValueOf()); mapOutputMapping.addOutputPropertyConfiguration(eventOutputProperty); outputEventAttributes.add(eventOutputPropertyConfiguration.getValueOf()); } } } eventPublisherConfiguration.setOutputMapping(mapOutputMapping); eventPublisherService.deployEventPublisherConfiguration(eventPublisherConfiguration); } catch (EventPublisherConfigurationException ex) { log.error(ex.getMessage(), ex); throw new AxisFault(ex.getMessage()); } } else { throw new AxisFault(eventPublisherName + " is already registered for this tenant"); } return true; } // Deprecated method public boolean deployJsonEventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, String textData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, String dataFrom, boolean mappingEnabled) throws AxisFault { return deployCacheableJsonEventPublisherConfiguration(eventPublisherName, streamNameWithVersion, eventAdapterType, textData, outputPropertyConfiguration, dataFrom, PropertyAttributeTypeConstants.DEFAULT_REGISTRY_RESOURCE_CACHE_TIMEOUT, mappingEnabled); } public boolean deployCacheableJsonEventPublisherConfiguration(String eventPublisherName, String streamNameWithVersion, String eventAdapterType, String jsonData, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, String dataFrom, long cacheTimeoutDuration, boolean mappingEnabled) throws AxisFault { if (checkEventPublisherValidity(eventPublisherName)) { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); EventPublisherConfiguration eventPublisherConfiguration = new EventPublisherConfiguration(); eventPublisherConfiguration.setProcessEnabled(true); eventPublisherConfiguration.setEventPublisherName(eventPublisherName); String[] fromStreamProperties = streamNameWithVersion.split(":"); eventPublisherConfiguration.setFromStreamName(fromStreamProperties[0]); eventPublisherConfiguration.setFromStreamVersion(fromStreamProperties[1]); constructOutputAdapterRelatedConfigs(eventPublisherName, eventAdapterType, outputPropertyConfiguration, eventPublisherConfiguration, EventPublisherConstants.EF_JSON_MAPPING_TYPE); JSONOutputMapping jsonOutputMapping = new JSONOutputMapping(); jsonOutputMapping.setCustomMappingEnabled(mappingEnabled); List<String> outputEventAttributes = new ArrayList<String>(); if (mappingEnabled) { jsonOutputMapping.setRegistryResource(validateRegistrySource(dataFrom)); jsonOutputMapping.setMappingText(jsonData); jsonOutputMapping.setCacheTimeoutDuration(cacheTimeoutDuration); outputEventAttributes = getOutputMappingPropertyList(jsonData); } eventPublisherConfiguration.setOutputMapping(jsonOutputMapping); eventPublisherService.deployEventPublisherConfiguration(eventPublisherConfiguration); } catch (EventPublisherConfigurationException ex) { log.error(ex.getMessage(), ex); throw new AxisFault(ex.getMessage()); } } else { throw new AxisFault(eventPublisherName + " is already registered for this tenant"); } return true; } public boolean setStatisticsEnabled(String eventPublisherName, boolean flag) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { eventPublisherService.setStatisticsEnabled(eventPublisherName, flag); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public boolean setTracingEnabled(String eventPublisherName, boolean flag) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { eventPublisherService.setTraceEnabled(eventPublisherName, flag); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public boolean setProcessingEnabled(String eventPublisherName, boolean flag) throws AxisFault { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); try { eventPublisherService.setProcessEnabled(eventPublisherName, flag); } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } public OutputAdapterConfigurationDto getOutputAdapterConfigurationSchema(String adopterType) { OutputEventAdapterService outputEventAdapterService = EventPublisherAdminServiceValueHolder.getOutputEventAdapterService(); OutputEventAdapterSchema outputEventAdapterSchema = outputEventAdapterService.getOutputEventAdapterSchema(adopterType); OutputAdapterConfigurationDto outputAdapterConfigurationDto = new OutputAdapterConfigurationDto(); outputAdapterConfigurationDto.setOutputEventAdapterStaticProperties(getPropertyConfigurations(null, outputEventAdapterSchema.getStaticPropertyList())); outputAdapterConfigurationDto.setOutputEventAdapterDynamicProperties(getPropertyConfigurations(null, outputEventAdapterSchema.getDynamicPropertyList())); outputAdapterConfigurationDto.setEventAdapterType(adopterType); outputAdapterConfigurationDto.setSupportedMessageFormats( outputEventAdapterSchema.getSupportedMessageFormats(). toArray(new String[outputEventAdapterSchema.getSupportedMessageFormats().size()])); outputAdapterConfigurationDto.setUsageTips(outputEventAdapterSchema.getUsageTips()); return outputAdapterConfigurationDto; } public String[] getAllOutputAdapterTypes() { OutputEventAdapterService outputEventAdapterService = EventPublisherAdminServiceValueHolder.getOutputEventAdapterService(); List<String> outputEventAdapters = outputEventAdapterService.getOutputEventAdapterTypes(); if (outputEventAdapters == null) { return new String[0]; } else { Collections.sort(outputEventAdapters); String[] types = new String[outputEventAdapters.size()]; return outputEventAdapters.toArray(types); } } // Private Methods private void constructOutputAdapterRelatedConfigs(String eventPublisherName, String eventAdapterType, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, EventPublisherConfiguration eventPublisherConfiguration, String messageFormat) { OutputEventAdapterConfiguration outputEventAdapterConfiguration = new OutputEventAdapterConfiguration(); outputEventAdapterConfiguration.setName(eventPublisherName); outputEventAdapterConfiguration.setType(eventAdapterType); outputEventAdapterConfiguration.setMessageFormat(messageFormat); outputEventAdapterConfiguration.setStaticProperties(new HashMap<String, String>()); eventPublisherConfiguration.setToAdapterDynamicProperties(new HashMap<String, String>()); // add output message property configuration to the map if (outputPropertyConfiguration != null && outputPropertyConfiguration.length != 0) { for (BasicOutputAdapterPropertyDto eventPublisherProperty : outputPropertyConfiguration) { if (!eventPublisherProperty.getValue().trim().equals("")) { if (eventPublisherProperty.isStatic()) { outputEventAdapterConfiguration.getStaticProperties().put(eventPublisherProperty.getKey().trim(), eventPublisherProperty.getValue().trim()); } else { eventPublisherConfiguration.getToAdapterDynamicProperties().put(eventPublisherProperty.getKey().trim(), eventPublisherProperty.getValue().trim()); } } } } eventPublisherConfiguration.setToAdapterConfiguration(outputEventAdapterConfiguration); } private EventMappingPropertyDto[] getEventPropertyDtoArray( List<EventOutputProperty> eventOutputPropertyList) { if (eventOutputPropertyList != null && eventOutputPropertyList.size() > 0) { EventMappingPropertyDto[] eventMappingPropertyDtos = new EventMappingPropertyDto[eventOutputPropertyList.size()]; int index = 0; Iterator<EventOutputProperty> outputPropertyIterator = eventOutputPropertyList.iterator(); while (outputPropertyIterator.hasNext()) { EventOutputProperty eventOutputProperty = outputPropertyIterator.next(); eventMappingPropertyDtos[index] = new EventMappingPropertyDto(eventOutputProperty.getName(), eventOutputProperty.getValueOf(), eventOutputProperty.getType().toString().toLowerCase()); index++; } return eventMappingPropertyDtos; } return null; } private DetailOutputAdapterPropertyDto[] getPropertyConfigurations(Map<String, String> messageProperties, List<Property> propertyList) { if (propertyList != null && propertyList.size() > 0) { DetailOutputAdapterPropertyDto[] detailOutputAdapterPropertyDtoArray = new DetailOutputAdapterPropertyDto[propertyList.size()]; int index = 0; for (Property property : propertyList) { // create output event property String value = null; if (messageProperties != null) { value = messageProperties.get(property.getPropertyName()); } detailOutputAdapterPropertyDtoArray[index] = new DetailOutputAdapterPropertyDto(property.getPropertyName(), value); // set output event property parameters detailOutputAdapterPropertyDtoArray[index].setSecured(property.isSecured()); detailOutputAdapterPropertyDtoArray[index].setRequired(property.isRequired()); detailOutputAdapterPropertyDtoArray[index].setDisplayName(property.getDisplayName()); detailOutputAdapterPropertyDtoArray[index].setDefaultValue(property.getDefaultValue()); detailOutputAdapterPropertyDtoArray[index].setHint(property.getHint()); detailOutputAdapterPropertyDtoArray[index].setOptions(property.getOptions()); index++; } return detailOutputAdapterPropertyDtoArray; } return new DetailOutputAdapterPropertyDto[0]; } private String getStreamAttributes(StreamDefinition streamDefinition) { List<Attribute> metaAttributeList = streamDefinition.getMetaData(); List<Attribute> correlationAttributeList = streamDefinition.getCorrelationData(); List<Attribute> payloadAttributeList = streamDefinition.getPayloadData(); String attributes = ""; if (metaAttributeList != null) { for (Attribute attribute : metaAttributeList) { attributes += PropertyAttributeTypeConstants.PROPERTY_META_PREFIX + attribute.getName() + " " + attribute.getType().toString().toLowerCase() + ", \n"; } } if (correlationAttributeList != null) { for (Attribute attribute : correlationAttributeList) { attributes += PropertyAttributeTypeConstants.PROPERTY_CORRELATION_PREFIX + attribute.getName() + " " + attribute.getType().toString().toLowerCase() + ", \n"; } } if (payloadAttributeList != null) { for (Attribute attribute : payloadAttributeList) { attributes += attribute.getName() + " " + attribute.getType().toString().toLowerCase() + ", \n"; } } if (!attributes.equals("")) { return attributes.substring(0, attributes.lastIndexOf(",")); } else { return attributes; } } private List<String> getOutputMappingPropertyList(String mappingText) { List<String> mappingTextList = new ArrayList<String>(); String text = mappingText; mappingTextList.clear(); while (text.contains("{{") && text.indexOf("}}") > 0) { String property = text.substring(text.indexOf("{{") + 2, text.indexOf("}}")); if (property != null && !property.startsWith(PropertyAttributeTypeConstants.ARBITRARY_MAP_PREFIX)) { // Do not consider arbitrary map properties for validation mappingTextList.add(property); } text = text.substring(text.indexOf("}}") + 2); } return mappingTextList; } private boolean checkEventPublisherValidity(String eventPublisherName) throws AxisFault { try { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); List<EventPublisherConfiguration> eventPublisherConfigurationList = null; eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(); Iterator eventPublisherConfigurationIterator = eventPublisherConfigurationList.iterator(); while (eventPublisherConfigurationIterator.hasNext()) { EventPublisherConfiguration eventPublisherConfiguration = (EventPublisherConfiguration) eventPublisherConfigurationIterator.next(); if (eventPublisherConfiguration.getEventPublisherName().equalsIgnoreCase(eventPublisherName)) { return false; } } } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } return true; } private boolean validateRegistrySource(String fromData) { return !fromData.equalsIgnoreCase("inline"); } private String getPropertyAttributeDataType(String propertyName, StreamDefinition streamDefinition) throws AxisFault { if (propertyName != null) { List<Attribute> metaDataList = streamDefinition.getMetaData(); if (metaDataList != null) { for (Attribute attribute : metaDataList) { if (propertyName.equalsIgnoreCase(PropertyAttributeTypeConstants.PROPERTY_META_PREFIX + attribute.getName())) { return attribute.getType().toString().toLowerCase(); } } } List<Attribute> correlationDataList = streamDefinition.getCorrelationData(); if (correlationDataList != null) { for (Attribute attribute : correlationDataList) { if (propertyName.equalsIgnoreCase(PropertyAttributeTypeConstants.PROPERTY_CORRELATION_PREFIX + attribute.getName())) { return attribute.getType().toString().toLowerCase(); } } } List<Attribute> payloadDataList = streamDefinition.getPayloadData(); if (payloadDataList != null) { for (Attribute attribute : payloadDataList) { if (propertyName.equalsIgnoreCase(attribute.getName())) { return attribute.getType().toString().toLowerCase(); } } } } throw new AxisFault("Output Stream attributes are not matching with input stream definition"); } public void testPublisherConnection(String eventPublisherName, String eventAdapterType, BasicOutputAdapterPropertyDto[] outputPropertyConfiguration, String messageFormat) throws AxisFault { try { EventPublisherConfiguration eventPublisherConfiguration = new EventPublisherConfiguration(); constructOutputAdapterRelatedConfigs(eventPublisherName, eventAdapterType, outputPropertyConfiguration, eventPublisherConfiguration, messageFormat); EventPublisherAdminServiceValueHolder.getOutputEventAdapterService() .testConnection(eventPublisherConfiguration.getToAdapterConfiguration()); } catch (TestConnectionNotSupportedException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } catch (OutputEventAdapterException e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } catch (Throwable e) { log.error(e.getMessage(), e); throw new AxisFault(e.getMessage()); } } public boolean isPublisherEditable(String eventPublisherName) { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); List<EventPublisherConfiguration> eventPublisherConfigurationList = null; boolean isEditable = false; try { eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(); Iterator eventReceiverConfigurationIterator = eventPublisherConfigurationList.iterator(); while (eventReceiverConfigurationIterator.hasNext()) { EventPublisherConfiguration eventPublisherConfiguration = (EventPublisherConfiguration) eventReceiverConfigurationIterator.next(); if (eventPublisherConfiguration.getEventPublisherName().equalsIgnoreCase(eventPublisherName)) { isEditable = eventPublisherConfiguration.isEditable(); } } } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); } return isEditable; } public boolean isPublisherStatisticsEnabled(String eventPublisherName) { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); List<EventPublisherConfiguration> eventPublisherConfigurationList = null; boolean isStatisticsEnabled = false; try { eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(); Iterator eventReceiverConfigurationIterator = eventPublisherConfigurationList.iterator(); while (eventReceiverConfigurationIterator.hasNext()) { EventPublisherConfiguration eventPublisherConfiguration = (EventPublisherConfiguration) eventReceiverConfigurationIterator.next(); if (eventPublisherConfiguration.getEventPublisherName().equalsIgnoreCase(eventPublisherName)) { isStatisticsEnabled = eventPublisherConfiguration.isStatisticsEnabled(); } } } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); } return isStatisticsEnabled; } public boolean isPublisherProcessingEnabled(String eventPublisherName) { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); List<EventPublisherConfiguration> eventPublisherConfigurationList = null; boolean isProcessEnabled = true; try { eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(); Iterator eventReceiverConfigurationIterator = eventPublisherConfigurationList.iterator(); while (eventReceiverConfigurationIterator.hasNext()) { EventPublisherConfiguration eventPublisherConfiguration = (EventPublisherConfiguration) eventReceiverConfigurationIterator.next(); if (eventPublisherConfiguration.getEventPublisherName().equalsIgnoreCase(eventPublisherName)) { isProcessEnabled = eventPublisherConfiguration.isProcessingEnabled(); } } } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); } return isProcessEnabled; } public boolean isPublisherTraceEnabled(String eventPublisherName) { EventPublisherService eventPublisherService = EventPublisherAdminServiceValueHolder.getEventPublisherService(); List<EventPublisherConfiguration> eventPublisherConfigurationList = null; boolean isTraceEnabled = false; try { eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(); Iterator eventReceiverConfigurationIterator = eventPublisherConfigurationList.iterator(); while (eventReceiverConfigurationIterator.hasNext()) { EventPublisherConfiguration eventPublisherConfiguration = (EventPublisherConfiguration) eventReceiverConfigurationIterator.next(); if (eventPublisherConfiguration.getEventPublisherName().equalsIgnoreCase(eventPublisherName)) { isTraceEnabled = eventPublisherConfiguration.isTracingEnabled(); } } } catch (EventPublisherConfigurationException e) { log.error(e.getMessage(), e); } return isTraceEnabled; } }