/* * Copyright 2016 Naver Corp. * * 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 com.navercorp.pinpoint.plugin.activemq.client; import com.navercorp.pinpoint.bootstrap.config.ExcludePathFilter; import com.navercorp.pinpoint.bootstrap.config.Filter; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; import com.navercorp.pinpoint.bootstrap.config.SkipFilter; import com.navercorp.pinpoint.common.util.StringUtils; /** * @author HyunGil Jeong */ public class ActiveMQClientPluginConfig { public static final String DEFAULT_DESTINATION_PATH_SEPARATOR = "."; private final boolean traceActiveMQClient; private final boolean traceActiveMQClientProducer; private final Boolean traceActiveMQClientConsumer; private final Filter<String> excludeDestinationFilter; public ActiveMQClientPluginConfig(ProfilerConfig config) { this.traceActiveMQClient = config.readBoolean("profiler.activemq.client.enable", true); this.traceActiveMQClientProducer = config.readBoolean("profiler.activemq.client.producer.enable", true); this.traceActiveMQClientConsumer = config.readBoolean("profiler.activemq.client.consumer.enable", true); String excludeDestinationPathSeparator = config.readString("profiler.activemq.client.destination.separator", DEFAULT_DESTINATION_PATH_SEPARATOR); if (StringUtils.isEmpty(excludeDestinationPathSeparator)) { excludeDestinationPathSeparator = DEFAULT_DESTINATION_PATH_SEPARATOR; } String excludeDestinations = config.readString("profiler.activemq.client.destination.exclude", ""); if (!excludeDestinations.isEmpty()) { this.excludeDestinationFilter = new ExcludePathFilter(excludeDestinations, excludeDestinationPathSeparator); } else { this.excludeDestinationFilter = new SkipFilter<String>(); } } public boolean isTraceActiveMQClient() { return this.traceActiveMQClient; } public boolean isTraceActiveMQClientProducer() { return this.traceActiveMQClientProducer; } public boolean isTraceActiveMQClientConsumer() { return this.traceActiveMQClientConsumer; } public Filter<String> getExcludeDestinationFilter() { return this.excludeDestinationFilter; } }