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.Set;
020
021import org.apache.camel.CamelContext;
022import org.apache.camel.api.management.ManagedResource;
023import org.apache.camel.api.management.mbean.ManagedAggregateProcessorMBean;
024import org.apache.camel.model.AggregateDefinition;
025import org.apache.camel.processor.aggregate.AggregateProcessor;
026
027@ManagedResource(description = "Managed AggregateProcessor")
028public class ManagedAggregateProcessor extends ManagedProcessor implements ManagedAggregateProcessorMBean {
029
030    public ManagedAggregateProcessor(CamelContext context, AggregateProcessor processor, AggregateDefinition definition) {
031        super(context, processor, definition);
032    }
033
034    @Override
035    public AggregateProcessor getProcessor() {
036        return (AggregateProcessor) super.getProcessor();
037    }
038
039    @Override
040    public AggregateDefinition getDefinition() {
041        return (AggregateDefinition) super.getDefinition();
042    }
043
044    @Override
045    public String getCorrelationExpressionLanguage() {
046        if (getDefinition().getCorrelationExpression() != null) {
047            return getDefinition().getCorrelationExpression().getExpressionType().getLanguage();
048        } else {
049            return null;
050        }
051    }
052
053    @Override
054    public String getCorrelationExpression() {
055        if (getDefinition().getCorrelationExpression() != null) {
056            return getDefinition().getCorrelationExpression().getExpressionType().getExpression();
057        } else {
058            return null;
059        }
060    }
061
062    @Override
063    public long getCompletionTimeout() {
064        return getProcessor().getCompletionTimeout();
065    }
066
067    @Override
068    public String getCompletionTimeoutLanguage() {
069        if (getDefinition().getCompletionTimeoutExpression() != null) {
070            return getDefinition().getCompletionTimeoutExpression().getExpressionType().getLanguage();
071        } else {
072            return null;
073        }
074    }
075
076    @Override
077    public String getCompletionTimeoutExpression() {
078        if (getDefinition().getCompletionTimeoutExpression() != null) {
079            return getDefinition().getCompletionTimeoutExpression().getExpressionType().getExpression();
080        } else {
081            return null;
082        }
083    }
084
085    @Override
086    public long getCompletionInterval() {
087        return getProcessor().getCompletionInterval();
088    }
089
090    @Override
091    public long getCompletionTimeoutCheckerInterval() {
092        return getProcessor().getCompletionTimeoutCheckerInterval();
093    }
094
095    @Override
096    public int getCompletionSize() {
097        return getProcessor().getCompletionSize();
098    }
099
100    @Override
101    public String getCompletionSizeExpressionLanguage() {
102        if (getDefinition().getCompletionSizeExpression() != null) {
103            return getDefinition().getCompletionSizeExpression().getExpressionType().getLanguage();
104        } else {
105            return null;
106        }
107    }
108
109    @Override
110    public String getCompletionSizeExpression() {
111        if (getDefinition().getCompletionSizeExpression() != null) {
112            return getDefinition().getCompletionSizeExpression().getExpressionType().getExpression();
113        } else {
114            return null;
115        }
116    }
117
118    @Override
119    public boolean isCompletionFromBatchConsumer() {
120        return getProcessor().isCompletionFromBatchConsumer();
121    }
122
123    @Override
124    public boolean isCompletionOnNewCorrelationGroup() {
125        return getProcessor().isCompletionOnNewCorrelationGroup();
126    }
127
128    @Override
129    public boolean isIgnoreInvalidCorrelationKeys() {
130        return getProcessor().isIgnoreInvalidCorrelationKeys();
131    }
132
133    @Override
134    public Integer getCloseCorrelationKeyOnCompletion() {
135        return getProcessor().getCloseCorrelationKeyOnCompletion();
136    }
137
138    @Override
139    public boolean isParallelProcessing() {
140        return getProcessor().isParallelProcessing();
141    }
142
143    @Override
144    public boolean isOptimisticLocking() {
145        return getProcessor().isOptimisticLocking();
146    }
147
148    @Override
149    public boolean isEagerCheckCompletion() {
150        return getProcessor().isEagerCheckCompletion();
151    }
152
153    @Override
154    public String getCompletionPredicateLanguage() {
155        if (getDefinition().getCompletionPredicate() != null) {
156            return getDefinition().getCompletionPredicate().getExpressionType().getLanguage();
157        } else {
158            return null;
159        }
160    }
161
162    @Override
163    public String getCompletionPredicate() {
164        if (getDefinition().getCompletionPredicate() != null) {
165            return getDefinition().getCompletionPredicate().getExpressionType().getExpression();
166        } else {
167            return null;
168        }
169    }
170
171    @Override
172    public boolean isDiscardOnCompletionTimeout() {
173        return getProcessor().isDiscardOnCompletionTimeout();
174    }
175
176    @Override
177    public boolean isForceCompletionOnStop() {
178        return getProcessor().isCompletionFromBatchConsumer();
179    }
180
181    @Override
182    public boolean isCompleteAllOnStop() {
183        return getProcessor().isCompleteAllOnStop();
184    }
185
186    @Override
187    public int getInProgressCompleteExchanges() {
188        return getProcessor().getInProgressCompleteExchanges();
189    }
190
191    @Override
192    public int aggregationRepositoryGroups() {
193        Set<String> keys = getProcessor().getAggregationRepository().getKeys();
194        if (keys != null) {
195            return keys.size();
196        } else {
197            return 0;
198        }
199    }
200
201    @Override
202    public int forceCompletionOfGroup(String key) {
203        if (getProcessor().getAggregateController() != null) {
204            return getProcessor().getAggregateController().forceCompletionOfGroup(key);
205        } else {
206            return 0;
207        }
208    }
209
210    @Override
211    public int forceCompletionOfAllGroups() {
212        if (getProcessor().getAggregateController() != null) {
213            return getProcessor().getAggregateController().forceCompletionOfAllGroups();
214        } else {
215            return 0;
216        }
217    }
218
219    @Override
220    public int forceDiscardingOfGroup(String key) {
221        if (getProcessor().getAggregateController() != null) {
222            return getProcessor().getAggregateController().forceDiscardingOfGroup(key);
223        } else {
224            return 0;
225        }
226    }
227
228    @Override
229    public int forceDiscardingOfAllGroups() {
230        if (getProcessor().getAggregateController() != null) {
231            return getProcessor().getAggregateController().forceDiscardingOfAllGroups();
232        } else {
233            return 0;
234        }
235    }
236
237    @Override
238    public int getClosedCorrelationKeysCacheSize() {
239        return getProcessor().getClosedCorrelationKeysCacheSize();
240    }
241
242    @Override
243    public void clearClosedCorrelationKeysCache() {
244        getProcessor().clearClosedCorrelationKeysCache();
245    }
246
247    @Override
248    public long getTotalIn() {
249        return getProcessor().getStatistics().getTotalIn();
250    }
251
252    @Override
253    public long getTotalCompleted() {
254        return getProcessor().getStatistics().getTotalCompleted();
255    }
256
257    @Override
258    public long getCompletedBySize() {
259        return getProcessor().getStatistics().getCompletedBySize();
260    }
261
262    @Override
263    public long getCompletedByStrategy() {
264        return getProcessor().getStatistics().getCompletedByStrategy();
265    }
266
267    @Override
268    public long getCompletedByInterval() {
269        return getProcessor().getStatistics().getCompletedByInterval();
270    }
271
272    @Override
273    public long getCompletedByTimeout() {
274        return getProcessor().getStatistics().getCompletedByTimeout();
275    }
276
277    @Override
278    public long getCompletedByPredicate() {
279        return getProcessor().getStatistics().getCompletedByPredicate();
280    }
281
282    @Override
283    public long getCompletedByBatchConsumer() {
284        return getProcessor().getStatistics().getCompletedByBatchConsumer();
285    }
286
287    @Override
288    public long getCompletedByForce() {
289        return getProcessor().getStatistics().getCompletedByForce();
290    }
291
292    @Override
293    public long getDiscarded() {
294        return getProcessor().getStatistics().getDiscarded();
295    }
296
297    @Override
298    public void resetStatistics() {
299        getProcessor().getStatistics().reset();
300    }
301}