Repository: camel Updated Branches: refs/heads/master 473d1b28b -> 0b246429b
CAMEL-8526: Add more EIP as specialized mbeans Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/93c30b89 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/93c30b89 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/93c30b89 Branch: refs/heads/master Commit: 93c30b89166a3f9ea17d4c57057acfb7eb4a8778 Parents: 473d1b2 Author: Claus Ibsen <davscl...@apache.org> Authored: Wed Jul 22 10:36:59 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Wed Jul 22 10:36:59 2015 +0200 ---------------------------------------------------------------------- .../mbean/ManagedIdempotentConsumerMBean.java | 13 +++++ .../api/management/mbean/ManagedLogMBean.java | 35 ++++++++++++ .../DefaultManagementObjectStrategy.java | 4 ++ .../mbean/ManagedIdempotentConsumer.java | 20 +++++++ .../camel/management/mbean/ManagedLog.java | 60 ++++++++++++++++++++ .../apache/camel/processor/LogProcessor.java | 8 +++ .../idempotent/IdempotentConsumer.java | 16 ++++++ .../java/org/apache/camel/util/CamelLogger.java | 4 ++ 8 files changed, 160 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java index 5001486..4b2cd11 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java +++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java @@ -21,6 +21,18 @@ import org.apache.camel.api.management.ManagedOperation; public interface ManagedIdempotentConsumerMBean extends ManagedProcessorMBean { + @ManagedAttribute(description = "Whether to eagerly add the key to the idempotent repository or wait until the exchange is complete") + Boolean isEager(); + + @ManagedAttribute(description = "Whether to complete the idempotent consumer eager or when the exchange is done") + Boolean isCompletionEager(); + + @ManagedAttribute(description = "whether to skip duplicates or not") + Boolean isSkipDuplicate(); + + @ManagedAttribute(description = "whether to remove or keep the key on failure") + Boolean isRemoveOnFailure(); + @ManagedAttribute(description = "Current count of duplicate Messages") long getDuplicateMessageCount(); @@ -29,4 +41,5 @@ public interface ManagedIdempotentConsumerMBean extends ManagedProcessorMBean { @ManagedOperation(description = "Clear the repository containing Messages") void clear(); + } http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java new file mode 100644 index 0000000..3915535 --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java @@ -0,0 +1,35 @@ +/** + * 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.api.management.mbean; + +import org.apache.camel.api.management.ManagedAttribute; + +public interface ManagedLogMBean extends ManagedProcessorMBean { + + @ManagedAttribute(description = "The log message (uses simple language)") + String getMessage(); + + @ManagedAttribute(description = "The logging level") + String getLoggingLevel(); + + @ManagedAttribute(description = "The name of the logger") + String getLogName(); + + @ManagedAttribute(description = "To use slf4j marker") + String getMarker(); + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java index a86f6c2..c049d43 100644 --- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java @@ -47,6 +47,7 @@ import org.apache.camel.management.mbean.ManagedErrorHandler; import org.apache.camel.management.mbean.ManagedEventNotifier; import org.apache.camel.management.mbean.ManagedFilter; import org.apache.camel.management.mbean.ManagedIdempotentConsumer; +import org.apache.camel.management.mbean.ManagedLog; import org.apache.camel.management.mbean.ManagedLoop; import org.apache.camel.management.mbean.ManagedMulticast; import org.apache.camel.management.mbean.ManagedPollEnricher; @@ -89,6 +90,7 @@ import org.apache.camel.processor.DynamicRouter; import org.apache.camel.processor.Enricher; import org.apache.camel.processor.ErrorHandler; import org.apache.camel.processor.FilterProcessor; +import org.apache.camel.processor.LogProcessor; import org.apache.camel.processor.LoopProcessor; import org.apache.camel.processor.MulticastProcessor; import org.apache.camel.processor.Pipeline; @@ -257,6 +259,8 @@ public class DefaultManagementObjectStrategy implements ManagementObjectStrategy answer = new ManagedRoutingSlip(context, (RoutingSlip) target, definition); } else if (target instanceof FilterProcessor) { answer = new ManagedFilter(context, (FilterProcessor) target, definition); + } else if (target instanceof LogProcessor) { + answer = new ManagedLog(context, (LogProcessor) target, definition); } else if (target instanceof LoopProcessor) { answer = new ManagedLoop(context, (LoopProcessor) target, definition); } else if (target instanceof RecipientList) { http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java index f1e5170..c74ca08 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedIdempotentConsumer.java @@ -35,6 +35,26 @@ public class ManagedIdempotentConsumer extends ManagedProcessor implements Manag } @Override + public Boolean isEager() { + return getProcessor().isEager(); + } + + @Override + public Boolean isCompletionEager() { + return getProcessor().isCompletionEager(); + } + + @Override + public Boolean isSkipDuplicate() { + return getProcessor().isSkipDuplicate(); + } + + @Override + public Boolean isRemoveOnFailure() { + return getProcessor().isRemoveOnFailure(); + } + + @Override public long getDuplicateMessageCount() { return getProcessor().getDuplicateMessageCount(); } http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLog.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLog.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLog.java new file mode 100644 index 0000000..242e9d0 --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedLog.java @@ -0,0 +1,60 @@ +/** + * 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 org.apache.camel.CamelContext; +import org.apache.camel.LoggingLevel; +import org.apache.camel.api.management.ManagedResource; +import org.apache.camel.api.management.mbean.ManagedLogMBean; +import org.apache.camel.model.ProcessorDefinition; +import org.apache.camel.processor.LogProcessor; +import org.slf4j.Marker; + +/** + * @version + */ +@ManagedResource(description = "Managed Log") +public class ManagedLog extends ManagedProcessor implements ManagedLogMBean { + private final LogProcessor processor; + + public ManagedLog(CamelContext context, LogProcessor processor, ProcessorDefinition<?> definition) { + super(context, processor, definition); + this.processor = processor; + } + + @Override + public String getMessage() { + return processor.getExpression().toString(); + } + + @Override + public String getLoggingLevel() { + LoggingLevel level = processor.getLogger().getLevel(); + return level != null ? level.name() : null; + } + + @Override + public String getLogName() { + return processor.getLogger().getLog().getName(); + } + + @Override + public String getMarker() { + Marker marker = processor.getLogger().getMarker(); + return marker != null ? marker.getName() : null; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java index 6038825..2304afc 100644 --- a/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java +++ b/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java @@ -79,6 +79,14 @@ public class LogProcessor extends ServiceSupport implements AsyncProcessor, Trac this.id = id; } + public Expression getExpression() { + return expression; + } + + public CamelLogger getLogger() { + return logger; + } + @Override protected void doStart() throws Exception { // noop http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java index 1faab20..e28a214 100644 --- a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java +++ b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java @@ -184,6 +184,22 @@ public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor ServiceHelper.stopServices(processor); } + public boolean isEager() { + return eager; + } + + public boolean isCompletionEager() { + return completionEager; + } + + public boolean isSkipDuplicate() { + return skipDuplicate; + } + + public boolean isRemoveOnFailure() { + return removeOnFailure; + } + /** * Resets the duplicate message counter to <code>0L</code>. */ http://git-wip-us.apache.org/repos/asf/camel/blob/93c30b89/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java b/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java index 1787bd7..65b9683 100644 --- a/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java +++ b/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java @@ -131,6 +131,10 @@ public class CamelLogger { this.log = LoggerFactory.getLogger(logName); } + public Marker getMarker() { + return marker; + } + public void setMarker(Marker marker) { this.marker = marker; }