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.api.management.mbean;
018
019import org.apache.camel.api.management.ManagedAttribute;
020
021public interface ManagedErrorHandlerMBean {
022
023    @ManagedAttribute(description = "Camel ID")
024    String getCamelId();
025
026    @ManagedAttribute(description = "Camel ManagementName")
027    String getCamelManagementName();
028
029    @ManagedAttribute(description = "Does the error handler support redelivery")
030    boolean isSupportRedelivery();
031
032    @ManagedAttribute(description = "Is this error handler a dead letter channel")
033    boolean isDeadLetterChannel();
034
035    @ManagedAttribute(description = "When a message is moved to dead letter channel is it the original message or recent message")
036    boolean isDeadLetterUseOriginalMessage();
037
038    @ManagedAttribute(description = "When a message is moved to dead letter channel is it the original message body or recent message body")
039    boolean isDeadLetterUseOriginalBody();
040
041    @ManagedAttribute(description = "Does this error handler handle new exceptions which may occur during error handling")
042    boolean isDeadLetterHandleNewException();
043
044    @ManagedAttribute(description = "Does this error handler support transactions")
045    boolean isSupportTransactions();
046
047    @ManagedAttribute(description = "Endpoint Uri for the dead letter channel where dead message is move to", mask = true)
048    String getDeadLetterChannelEndpointUri();
049
050    @ManagedAttribute(description = "Number of Exchanges scheduled for redelivery (waiting to be redelivered in the future)")
051    Integer getPendingRedeliveryCount();
052
053    @ManagedAttribute(description = "RedeliveryPolicy for maximum redeliveries")
054    Integer getMaximumRedeliveries();
055
056    @ManagedAttribute(description = "RedeliveryPolicy for maximum redeliveries")
057    void setMaximumRedeliveries(Integer maximum);
058
059    @ManagedAttribute(description = "RedeliveryPolicy for maximum redelivery delay")
060    Long getMaximumRedeliveryDelay();
061
062    @ManagedAttribute(description = "RedeliveryPolicy for maximum redelivery delay")
063    void setMaximumRedeliveryDelay(Long delay);
064
065    @ManagedAttribute(description = "RedeliveryPolicy for redelivery delay")
066    Long getRedeliveryDelay();
067
068    @ManagedAttribute(description = "RedeliveryPolicy for redelivery delay")
069    void setRedeliveryDelay(Long delay);
070
071    @ManagedAttribute(description = "RedeliveryPolicy for backoff multiplier")
072    Double getBackOffMultiplier();
073
074    @ManagedAttribute(description = "RedeliveryPolicy for backoff multiplier")
075    void setBackOffMultiplier(Double multiplier);
076
077    @ManagedAttribute(description = "RedeliveryPolicy for collision avoidance factor")
078    Double getCollisionAvoidanceFactor();
079
080    @ManagedAttribute(description = "RedeliveryPolicy for collision avoidance factor")
081    void setCollisionAvoidanceFactor(Double factor);
082
083    @ManagedAttribute(description = "RedeliveryPolicy for collision avoidance percent")
084    Double getCollisionAvoidancePercent();
085
086    @ManagedAttribute(description = "RedeliveryPolicy for collision avoidance percent")
087    void setCollisionAvoidancePercent(Double percent);
088
089    @ManagedAttribute(description = "RedeliveryPolicy for delay pattern")
090    String getDelayPattern();
091
092    @ManagedAttribute(description = "RedeliveryPolicy for delay pattern")
093    void setDelayPattern(String pattern);
094
095    @ManagedAttribute(description = "RedeliveryPolicy for logging level when retries exhausted")
096    String getRetriesExhaustedLogLevel();
097
098    @ManagedAttribute(description = "RedeliveryPolicy for logging level when retries exhausted")
099    void setRetriesExhaustedLogLevel(String level);
100
101    @ManagedAttribute(description = "RedeliveryPolicy for logging level when attempting retry")
102    String getRetryAttemptedLogLevel();
103
104    @ManagedAttribute(description = "RedeliveryPolicy for logging level when attempting retry")
105    void setRetryAttemptedLogLevel(String level);
106
107    @ManagedAttribute(description = "RedeliveryPolicy for logging stack traces")
108    Boolean getLogStackTrace();
109
110    @ManagedAttribute(description = "RedeliveryPolicy for logging stack traces")
111    void setLogStackTrace(Boolean log);
112
113    @ManagedAttribute(description = "RedeliveryPolicy for logging redelivery stack traces")
114    Boolean getLogRetryStackTrace();
115
116    @ManagedAttribute(description = "RedeliveryPolicy for logging redelivery stack traces")
117    void setLogRetryStackTrace(Boolean log);
118
119    @ManagedAttribute(description = "RedeliveryPolicy for logging handled exceptions")
120    Boolean getLogHandled();
121
122    @ManagedAttribute(description = "RedeliveryPolicy for logging handled exceptions")
123    void setLogHandled(Boolean log);
124
125    @ManagedAttribute(description = "RedeliveryPolicy for logging new exceptions")
126    Boolean getLogNewException();
127
128    @ManagedAttribute(description = "RedeliveryPolicy for logging new exceptions")
129    void setLogNewException(Boolean log);
130
131    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted with message history")
132    Boolean getLogExhaustedMessageHistory();
133
134    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted with message history")
135    void setLogExhaustedMessageHistory(Boolean log);
136
137    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted with message history")
138    Boolean getLogExhaustedMessageBody();
139
140    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted with message body")
141    void setLogExhaustedMessageBody(Boolean log);
142
143    @ManagedAttribute(description = "RedeliveryPolicy for logging handled and continued exceptions")
144    Boolean getLogContinued();
145
146    @ManagedAttribute(description = "RedeliveryPolicy for logging handled and continued exceptions")
147    void setLogContinued(Boolean log);
148
149    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted exceptions")
150    Boolean getLogExhausted();
151
152    @ManagedAttribute(description = "RedeliveryPolicy for logging exhausted exceptions")
153    void setLogExhausted(Boolean log);
154
155    @ManagedAttribute(description = "RedeliveryPolicy for using collision avoidance")
156    Boolean getUseCollisionAvoidance();
157
158    @ManagedAttribute(description = "RedeliveryPolicy for using collision avoidance")
159    void setUseCollisionAvoidance(Boolean avoidance);
160
161    @ManagedAttribute(description = "RedeliveryPolicy for using exponential backoff")
162    Boolean getUseExponentialBackOff();
163
164    @ManagedAttribute(description = "RedeliveryPolicy for using exponential backoff")
165    void setUseExponentialBackOff(Boolean backoff);
166
167    @ManagedAttribute(description = "RedeliveryPolicy for allow redelivery while stopping")
168    Boolean getAllowRedeliveryWhileStopping();
169
170    @ManagedAttribute(description = "RedeliveryPolicy for allow redelivery while stopping")
171    void setAllowRedeliveryWhileStopping(Boolean allow);
172
173}