blob: ad4fba296f1f62741df475c1ac13beacfd77e8a0 [file] [log] [blame]
/**
* 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.camel.management.mbean;
import javax.management.NotificationBroadcasterSupport;
import org.apache.camel.CamelContext;
import org.apache.camel.LoggingLevel;
import org.apache.camel.processor.interceptor.Tracer;
import org.apache.camel.spi.ManagementStrategy;
import org.apache.camel.util.ObjectHelper;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedNotification;
import org.springframework.jmx.export.annotation.ManagedNotifications;
import org.springframework.jmx.export.annotation.ManagedResource;
/**
* @version
*/
@ManagedResource(description = "Managed Tracer")
@ManagedNotifications(@ManagedNotification(name = "javax.management.Notification",
description = "Fine grained trace events",
notificationTypes = {"TraceNotification"}))
public class ManagedTracer extends NotificationBroadcasterSupport implements ManagedTracerMXBean {
private final CamelContext camelContext;
private final Tracer tracer;
private JMXNotificationTraceEventHandler jmxTraceHandler;
public ManagedTracer(CamelContext camelContext, Tracer tracer) {
this.camelContext = camelContext;
this.tracer = tracer;
this.jmxTraceHandler = new JMXNotificationTraceEventHandler(tracer);
this.jmxTraceHandler.setNotificationBroadcaster(this);
if (this.tracer.getTraceHandler() == null) {
this.tracer.setTraceHandler(this.jmxTraceHandler);
}
}
public void init(ManagementStrategy strategy) {
// do nothing
}
public CamelContext getContext() {
return camelContext;
}
public Tracer getTracer() {
return tracer;
}
@ManagedAttribute(description = "Tracer enabled")
public boolean getEnabled() {
return tracer.isEnabled();
}
@ManagedAttribute(description = "Tracer enabled")
public void setEnabled(boolean enabled) {
tracer.setEnabled(enabled);
}
@ManagedAttribute(description = "Additional destination Uri")
public String getDestinationUri() {
return tracer.getDestinationUri();
}
@ManagedAttribute(description = "Additional destination Uri")
public void setDestinationUri(String uri) {
if (ObjectHelper.isEmpty(uri)) {
tracer.setDestinationUri(null);
} else {
tracer.setDestinationUri(uri);
}
}
@ManagedAttribute(description = "Logging Name")
public String getLogName() {
return tracer.getLogName();
}
@ManagedAttribute(description = "Using Jpa")
public boolean getUseJpa() {
return tracer.isUseJpa();
}
@ManagedAttribute(description = "Logging Name")
public void setLogName(String logName) {
tracer.setLogName(logName);
}
@ManagedAttribute(description = "Logging Level")
public String getLogLevel() {
return tracer.getLogLevel().name();
}
@ManagedAttribute(description = "Logging Level")
public void setLogLevel(String logLevel) {
tracer.setLogLevel(LoggingLevel.valueOf(logLevel));
}
@ManagedAttribute(description = "Log Stacktrace")
public boolean getLogStackTrace() {
return tracer.isLogStackTrace();
}
@ManagedAttribute(description = "Log Stacktrace")
public void setLogStackTrace(boolean logStackTrace) {
tracer.setLogStackTrace(logStackTrace);
}
@ManagedAttribute(description = "Trace Interceptors")
public boolean getTraceInterceptors() {
return tracer.isTraceInterceptors();
}
@ManagedAttribute(description = "Trace Interceptors")
public void setTraceInterceptors(boolean traceInterceptors) {
tracer.setTraceInterceptors(traceInterceptors);
}
@ManagedAttribute(description = "Trace Exceptions")
public boolean getTraceExceptions() {
return tracer.isTraceExceptions();
}
@ManagedAttribute(description = "Trace Exceptions")
public void setTraceExceptions(boolean traceExceptions) {
tracer.setTraceExceptions(traceExceptions);
}
@ManagedAttribute(description = "Trace Out Exchanges")
public boolean getTraceOutExchanges() {
return tracer.isTraceOutExchanges();
}
@ManagedAttribute(description = "Trace Out Exchanges")
public void setTraceOutExchanges(boolean traceOutExchanges) {
tracer.setTraceOutExchanges(traceOutExchanges);
}
@ManagedAttribute(description = "Formatter show body")
public boolean getFormatterShowBody() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowBody();
}
@ManagedAttribute(description = "Formatter show body")
public void setFormatterShowBody(boolean showBody) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowBody(showBody);
}
@ManagedAttribute(description = "Formatter show body type")
public boolean getFormatterShowBodyType() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowBodyType();
}
@ManagedAttribute(description = "Formatter show body type")
public void setFormatterShowBodyType(boolean showBodyType) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowBodyType(showBodyType);
}
@ManagedAttribute(description = "Formatter show out body")
public boolean getFormatterShowOutBody() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowOutBody();
}
@ManagedAttribute(description = "Formatter show out body")
public void setFormatterShowOutBody(boolean showOutBody) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowOutBody(showOutBody);
}
@ManagedAttribute(description = "Formatter show out body type")
public boolean getFormatterShowOutBodyType() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowOutBodyType();
}
@ManagedAttribute(description = "Formatter show out body type")
public void setFormatterShowOutBodyType(boolean showOutBodyType) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowOutBodyType(showOutBodyType);
}
@ManagedAttribute(description = "Formatter show breadcrumb")
public boolean getFormatterShowBreadCrumb() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowBreadCrumb();
}
@ManagedAttribute(description = "Formatter show breadcrumb")
public void setFormatterShowBreadCrumb(boolean showBreadCrumb) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowBreadCrumb(showBreadCrumb);
}
@ManagedAttribute(description = "Formatter show exchange id")
public boolean getFormatterShowExchangeId() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowExchangeId();
}
@ManagedAttribute(description = "Formatter show exchange id")
public void setFormatterShowExchangeId(boolean showExchangeId) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowExchangeId(showExchangeId);
}
@ManagedAttribute(description = "Formatter show headers")
public boolean getFormatterShowHeaders() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowHeaders();
}
@ManagedAttribute(description = "Formatter show headers")
public void setFormatterShowHeaders(boolean showHeaders) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowHeaders(showHeaders);
}
@ManagedAttribute(description = "Formatter show out headers")
public boolean getFormatterShowOutHeaders() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowOutHeaders();
}
@ManagedAttribute(description = "Formatter show out headers")
public void setFormatterShowOutHeaders(boolean showOutHeaders) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowOutHeaders(showOutHeaders);
}
@ManagedAttribute(description = "Formatter show properties")
public boolean getFormatterShowProperties() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowProperties();
}
@ManagedAttribute(description = "Formatter show properties")
public void setFormatterShowProperties(boolean showProperties) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowProperties(showProperties);
}
@ManagedAttribute(description = "Formatter show node")
public boolean getFormatterShowNode() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowNode();
}
@ManagedAttribute(description = "Formatter show node")
public void setFormatterShowNode(boolean showNode) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowNode(showNode);
}
@ManagedAttribute(description = "Formatter show exchange pattern")
public boolean getFormatterShowExchangePattern() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowExchangePattern();
}
@ManagedAttribute(description = "Formatter show exchange pattern")
public void setFormatterShowExchangePattern(boolean showExchangePattern) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowExchangePattern(showExchangePattern);
}
@ManagedAttribute(description = "Formatter show exception")
public boolean getFormatterShowException() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowException();
}
@ManagedAttribute(description = "Formatter show exception")
public void setFormatterShowException(boolean showException) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowException(showException);
}
@ManagedAttribute(description = "Formatter show route id")
public boolean getFormatterShowRouteId() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowRouteId();
}
@ManagedAttribute(description = "Formatter show route id")
public void setFormatterShowRouteId(boolean showRouteId) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowRouteId(showRouteId);
}
@ManagedAttribute(description = "Formatter breadcrumb length")
public int getFormatterBreadCrumbLength() {
if (tracer.getDefaultTraceFormatter() == null) {
return 0;
}
return tracer.getDefaultTraceFormatter().getBreadCrumbLength();
}
@ManagedAttribute(description = "Formatter breadcrumb length")
public void setFormatterBreadCrumbLength(int breadCrumbLength) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setBreadCrumbLength(breadCrumbLength);
}
@ManagedAttribute(description = "Formatter show short exchange id")
public boolean getFormatterShowShortExchangeId() {
if (tracer.getDefaultTraceFormatter() == null) {
return false;
}
return tracer.getDefaultTraceFormatter().isShowShortExchangeId();
}
@ManagedAttribute(description = "Formatter show short exchange id")
public void setFormatterShowShortExchangeId(boolean showShortExchangeId) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setShowShortExchangeId(showShortExchangeId);
}
@ManagedAttribute(description = "Formatter node length")
public int getFormatterNodeLength() {
if (tracer.getDefaultTraceFormatter() == null) {
return 0;
}
return tracer.getDefaultTraceFormatter().getNodeLength();
}
@ManagedAttribute(description = "Formatter node length")
public void setFormatterNodeLength(int nodeLength) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setNodeLength(nodeLength);
}
@ManagedAttribute(description = "Formatter max chars")
public int getFormatterMaxChars() {
if (tracer.getDefaultTraceFormatter() == null) {
return 0;
}
return tracer.getDefaultTraceFormatter().getMaxChars();
}
@ManagedAttribute(description = "Formatter max chars")
public void setFormatterMaxChars(int maxChars) {
if (tracer.getDefaultTraceFormatter() == null) {
return;
}
tracer.getDefaultTraceFormatter().setMaxChars(maxChars);
}
@ManagedAttribute(description = "Should trace events be sent as jmx notifications")
public boolean isJmxTraceNotifications() {
return this.tracer.isJmxTraceNotifications();
}
@ManagedAttribute
public void setJmxTraceNotifications(boolean jmxTraceNotifications) {
this.tracer.setJmxTraceNotifications(jmxTraceNotifications);
}
@ManagedAttribute(description = "Maximum size of a message body for trace notification")
public int getTraceBodySize() {
return this.tracer.getTraceBodySize();
}
@ManagedAttribute
public void setTraceBodySize(int traceBodySize) {
this.tracer.setTraceBodySize(traceBodySize);
}
}