001/**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.camel.management.mbean;
018
019import java.util.List;
020
021import org.apache.camel.CamelContext;
022import org.apache.camel.api.management.ManagedResource;
023import org.apache.camel.api.management.mbean.BacklogTracerEventMessage;
024import org.apache.camel.api.management.mbean.ManagedBacklogTracerMBean;
025import org.apache.camel.processor.interceptor.BacklogTracer;
026import org.apache.camel.spi.ManagementStrategy;
027
028@ManagedResource(description = "Managed BacklogTracer")
029public class ManagedBacklogTracer implements ManagedBacklogTracerMBean {
030    private final CamelContext camelContext;
031    private final BacklogTracer backlogTracer;
032
033    public ManagedBacklogTracer(CamelContext camelContext, BacklogTracer backlogTracer) {
034        this.camelContext = camelContext;
035        this.backlogTracer = backlogTracer;
036    }
037
038    public void init(ManagementStrategy strategy) {
039        // do nothing
040    }
041
042    public CamelContext getContext() {
043        return camelContext;
044    }
045
046    public BacklogTracer getBacklogTracer() {
047        return backlogTracer;
048    }
049
050    public boolean getEnabled() {
051        return backlogTracer.isEnabled();
052    }
053
054    public String getCamelId() {
055        return camelContext.getName();
056    }
057
058    public String getCamelManagementName() {
059        return camelContext.getManagementName();
060    }
061
062    public void setEnabled(boolean enabled) {
063        backlogTracer.setEnabled(enabled);
064    }
065
066    public boolean isEnabled() {
067        return backlogTracer.isEnabled();
068    }
069
070    public int getBacklogSize() {
071        return backlogTracer.getBacklogSize();
072    }
073
074    public void setBacklogSize(int backlogSize) {
075        backlogTracer.setBacklogSize(backlogSize);
076    }
077
078    public boolean isRemoveOnDump() {
079        return backlogTracer.isRemoveOnDump();
080    }
081
082    public void setRemoveOnDump(boolean removeOnDump) {
083        backlogTracer.setRemoveOnDump(removeOnDump);
084    }
085
086    public void setTracePattern(String pattern) {
087        backlogTracer.setTracePattern(pattern);
088    }
089
090    public String getTracePattern() {
091        return backlogTracer.getTracePattern();
092    }
093
094    public void setTraceFilter(String predicate) {
095        backlogTracer.setTraceFilter(predicate);
096    }
097
098    public String getTraceFilter() {
099        return backlogTracer.getTraceFilter();
100    }
101
102    public long getTraceCounter() {
103        return backlogTracer.getTraceCounter();
104    }
105
106    public void resetTraceCounter() {
107        backlogTracer.resetTraceCounter();
108    }
109
110    public int getBodyMaxChars() {
111        return backlogTracer.getBodyMaxChars();
112    }
113
114    public void setBodyMaxChars(int bodyMaxChars) {
115        backlogTracer.setBodyMaxChars(bodyMaxChars);
116    }
117
118    public boolean isBodyIncludeStreams() {
119        return backlogTracer.isBodyIncludeStreams();
120    }
121
122    public void setBodyIncludeStreams(boolean bodyIncludeStreams) {
123        backlogTracer.setBodyIncludeStreams(bodyIncludeStreams);
124    }
125
126    public boolean isBodyIncludeFiles() {
127        return backlogTracer.isBodyIncludeFiles();
128    }
129
130    public void setBodyIncludeFiles(boolean bodyIncludeFiles) {
131        backlogTracer.setBodyIncludeFiles(bodyIncludeFiles);
132    }
133
134    public List<BacklogTracerEventMessage> dumpTracedMessages(String nodeOrRouteId) {
135        return backlogTracer.dumpTracedMessages(nodeOrRouteId);
136    }
137
138    public List<BacklogTracerEventMessage> dumpAllTracedMessages() {
139        return backlogTracer.dumpAllTracedMessages();
140    }
141
142    public String dumpTracedMessagesAsXml(String nodeOrRouteId) {
143        return backlogTracer.dumpTracedMessagesAsXml(nodeOrRouteId);
144    }
145
146    public String dumpAllTracedMessagesAsXml() {
147        return backlogTracer.dumpAllTracedMessagesAsXml();
148    }
149
150    public void clear() {
151        backlogTracer.clear();
152    }
153}