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/9eadc03d
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9eadc03d
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9eadc03d

Branch: refs/heads/master
Commit: 9eadc03d4139596c85ffbdcdbd247ddb62fad808
Parents: 93c30b8
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Jul 22 10:44:53 2015 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Jul 22 10:44:53 2015 +0200

----------------------------------------------------------------------
 .../management/mbean/ManagedRollbackMBean.java  | 32 ++++++++++++
 .../DefaultManagementObjectStrategy.java        |  4 ++
 .../camel/management/mbean/ManagedRollback.java | 51 ++++++++++++++++++++
 3 files changed, 87 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9eadc03d/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java
 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java
new file mode 100644
index 0000000..481a16a
--- /dev/null
+++ 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java
@@ -0,0 +1,32 @@
+/**
+ * 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 ManagedRollbackMBean extends ManagedProcessorMBean {
+
+    @ManagedAttribute(description = "Message to use in rollback exception")
+    String getMessage();
+
+    @ManagedAttribute(description = "Mark the transaction for rollback only 
(cannot be overruled to commit)")
+    Boolean isMarkRollbackOnly();
+
+    @ManagedAttribute(description = "Mark only last sub transaction for 
rollback only")
+    Boolean isMarkRollbackOnlyLast();
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/9eadc03d/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 c049d43..2f5ad21 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
@@ -60,6 +60,7 @@ import org.apache.camel.management.mbean.ManagedRemoveHeaders;
 import org.apache.camel.management.mbean.ManagedRemoveProperties;
 import org.apache.camel.management.mbean.ManagedRemoveProperty;
 import org.apache.camel.management.mbean.ManagedResequencer;
+import org.apache.camel.management.mbean.ManagedRollback;
 import org.apache.camel.management.mbean.ManagedRoute;
 import org.apache.camel.management.mbean.ManagedRoutingSlip;
 import org.apache.camel.management.mbean.ManagedSamplingThrottler;
@@ -101,6 +102,7 @@ import org.apache.camel.processor.RemoveHeadersProcessor;
 import org.apache.camel.processor.RemovePropertiesProcessor;
 import org.apache.camel.processor.RemovePropertyProcessor;
 import org.apache.camel.processor.Resequencer;
+import org.apache.camel.processor.RollbackProcessor;
 import org.apache.camel.processor.RoutingSlip;
 import org.apache.camel.processor.SamplingThrottler;
 import org.apache.camel.processor.SendDynamicProcessor;
@@ -273,6 +275,8 @@ public class DefaultManagementObjectStrategy implements 
ManagementObjectStrategy
                 answer = new ManagedSamplingThrottler(context, 
(SamplingThrottler) target, definition);
             } else if (target instanceof Resequencer) {
                 answer = new ManagedResequencer(context, (Resequencer) target, 
definition);
+            } else if (target instanceof RollbackProcessor) {
+                answer = new ManagedRollback(context, (RollbackProcessor) 
target, definition);
             } else if (target instanceof StreamResequencer) {
                 answer = new ManagedResequencer(context, (StreamResequencer) 
target, definition);
             } else if (target instanceof SetBodyProcessor) {

http://git-wip-us.apache.org/repos/asf/camel/blob/9eadc03d/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRollback.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRollback.java
 
b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRollback.java
new file mode 100644
index 0000000..6342590
--- /dev/null
+++ 
b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRollback.java
@@ -0,0 +1,51 @@
+/**
+ * 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.api.management.ManagedResource;
+import org.apache.camel.api.management.mbean.ManagedRollbackMBean;
+import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.processor.RollbackProcessor;
+
+/**
+ * @version 
+ */
+@ManagedResource(description = "Managed Rollback")
+public class ManagedRollback extends ManagedProcessor implements 
ManagedRollbackMBean {
+    private final RollbackProcessor processor;
+
+    public ManagedRollback(CamelContext context, RollbackProcessor processor, 
ProcessorDefinition<?> definition) {
+        super(context, processor, definition);
+        this.processor = processor;
+    }
+
+    @Override
+    public String getMessage() {
+        return processor.getMessage();
+    }
+
+    @Override
+    public Boolean isMarkRollbackOnly() {
+        return processor.isMarkRollbackOnly();
+    }
+
+    @Override
+    public Boolean isMarkRollbackOnlyLast() {
+        return processor.isMarkRollbackOnlyLast();
+    }
+}

Reply via email to