/**
* 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 java.util.Set;
import org.apache.camel.CamelContext;
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.api.management.mbean.ManagedAggregateProcessorMBean;
import org.apache.camel.model.AggregateDefinition;
import org.apache.camel.processor.aggregate.AggregateProcessor;
import org.apache.camel.spi.ManagementStrategy;
/**
* @version
*/
@ManagedResource(description = "Managed AggregateProcessor")
public class ManagedAggregateProcessor extends ManagedProcessor implements ManagedAggregateProcessorMBean {
private final AggregateProcessor processor;
public ManagedAggregateProcessor(CamelContext context, AggregateProcessor processor, AggregateDefinition definition) {
super(context, processor, definition);
this.processor = processor;
}
public void init(ManagementStrategy strategy) {
super.init(strategy);
}
public AggregateProcessor getProcessor() {
return processor;
}
@Override
public AggregateDefinition getDefinition() {
return (AggregateDefinition) super.getDefinition();
}
public String getCorrelationExpressionLanguage() {
if (getDefinition().getCorrelationExpression() != null) {
return getDefinition().getCorrelationExpression().getExpressionType().getLanguage();
} else {
return null;
}
}
public String getCorrelationExpression() {
if (getDefinition().getCorrelationExpression() != null) {
return getDefinition().getCorrelationExpression().getExpressionType().getExpression();
} else {
return null;
}
}
public long getCompletionTimeout() {
return processor.getCompletionTimeout();
}
public String getCompletionTimeoutLanguage() {
if (getDefinition().getCompletionTimeoutExpression() != null) {
return getDefinition().getCompletionTimeoutExpression().getExpressionType().getLanguage();
} else {
return null;
}
}
public String getCompletionTimeoutExpression() {
if (getDefinition().getCompletionTimeoutExpression() != null) {
return getDefinition().getCompletionTimeoutExpression().getExpressionType().getExpression();
} else {
return null;
}
}
public long getCompletionInterval() {
return processor.getCompletionInterval();
}
public int getCompletionSize() {
return processor.getCompletionSize();
}
public String getCompletionSizeExpressionLanguage() {
if (getDefinition().getCompletionSizeExpression() != null) {
return getDefinition().getCompletionSizeExpression().getExpressionType().getLanguage();
} else {
return null;
}
}
public String getCompletionSizeExpression() {
if (getDefinition().getCompletionSizeExpression() != null) {
return getDefinition().getCompletionSizeExpression().getExpressionType().getExpression();
} else {
return null;
}
}
public boolean isCompletionFromBatchConsumer() {
return processor.isCompletionFromBatchConsumer();
}
public boolean isIgnoreInvalidCorrelationKeys() {
return processor.isIgnoreInvalidCorrelationKeys();
}
public Integer getCloseCorrelationKeyOnCompletion() {
return processor.getCloseCorrelationKeyOnCompletion();
}
public boolean isParallelProcessing() {
return processor.isParallelProcessing();
}
public boolean isOptimisticLocking() {
return processor.isOptimisticLocking();
}
public boolean isEagerCheckCompletion() {
return processor.isEagerCheckCompletion();
}
@Override
public String getCompletionPredicateLanguage() {
if (getDefinition().getCompletionPredicate() != null) {
return getDefinition().getCompletionPredicate().getExpressionType().getLanguage();
} else {
return null;
}
}
public String getCompletionPredicate() {
if (getDefinition().getCompletionPredicate() != null) {
return getDefinition().getCompletionPredicate().getExpressionType().getExpression();
} else {
return null;
}
}
public boolean isDiscardOnCompletionTimeout() {
return processor.isDiscardOnCompletionTimeout();
}
public boolean isForceCompletionOnStop() {
return processor.isCompletionFromBatchConsumer();
}
public boolean isCompleteAllOnStop() {
return processor.isCompleteAllOnStop();
}
public int getInProgressCompleteExchanges() {
return processor.getInProgressCompleteExchanges();
}
public int aggregationRepositoryGroups() {
Set<String> keys = processor.getAggregationRepository().getKeys();
if (keys != null) {
return keys.size();
} else {
return 0;
}
}
public int forceCompletionOfGroup(String key) {
if (processor.getAggregateController() != null) {
return processor.getAggregateController().forceCompletionOfGroup(key);
} else {
return 0;
}
}
public int forceCompletionOfAllGroups() {
if (processor.getAggregateController() != null) {
return processor.getAggregateController().forceCompletionOfAllGroups();
} else {
return 0;
}
}
public int getClosedCorrelationKeysCacheSize() {
return processor.getClosedCorrelationKeysCacheSize();
}
public void clearClosedCorrelationKeysCache() {
processor.clearClosedCorrelationKeysCache();
}
public long getTotalIn() {
return processor.getStatistics().getTotalIn();
}
public long getTotalCompleted() {
return processor.getStatistics().getTotalCompleted();
}
public long getCompletedBySize() {
return processor.getStatistics().getCompletedBySize();
}
public long getCompletedByStrategy() {
return processor.getStatistics().getCompletedByStrategy();
}
public long getCompletedByInterval() {
return processor.getStatistics().getCompletedByInterval();
}
public long getCompletedByTimeout() {
return processor.getStatistics().getCompletedByTimeout();
}
public long getCompletedByPredicate() {
return processor.getStatistics().getCompletedByPredicate();
}
public long getCompletedByBatchConsumer() {
return processor.getStatistics().getCompletedByBatchConsumer();
}
public long getCompletedByForce() {
return processor.getStatistics().getCompletedByForce();
}
public void resetStatistics() {
processor.getStatistics().reset();
}
}