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