camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ningji...@apache.org
Subject svn commit: r1446851 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/api/management/mbean/ main/java/org/apache/camel/management/mbean/ test/java/org/apache/camel/management/
Date Sat, 16 Feb 2013 08:29:59 GMT
Author: ningjiang
Date: Sat Feb 16 08:29:58 2013
New Revision: 1446851

URL: http://svn.apache.org/r1446851
Log:
CAMEL-6080 Camel Context supports to change the properties through JMX with thanks to Preben

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextPropertiesTest.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java?rev=1446851&r1=1446850&r2=1446851&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
Sat Feb 16 08:29:58 2013
@@ -42,6 +42,26 @@ public interface ManagedCamelContextMBea
     @ManagedAttribute(description = "Camel Properties")
     Map<String, String> getProperties();
 
+    /**
+     * Gets the value of a CamelContext property name
+     *
+     * @param name the name of the property
+     * @return String the value of the property
+     * @throws Exception is thrown if error occurred
+     */
+    @ManagedOperation(description = "Get the value of a Camel property")
+    String getProperty(String name) throws Exception;
+    
+    /**
+     * Sets the value of a CamelContext property name
+     *
+     * @param name the name of the property
+     * @param value the new value of the property
+     * @throws Exception is thrown if error occurred
+     */
+    @ManagedOperation(description = "Set the value of a Camel property")
+    void setProperty(String name, String value) throws Exception;
+    
     @ManagedAttribute(description = "Tracing")
     Boolean getTracing();
 
@@ -140,5 +160,5 @@ public interface ManagedCamelContextMBea
      */
     @ManagedOperation(description = "Removes endpoints by the given pattern")
     int removeEndpoints(String pattern) throws Exception;
-
+    
 }
\ No newline at end of file

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java?rev=1446851&r1=1446850&r2=1446851&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
Sat Feb 16 08:29:58 2013
@@ -86,6 +86,16 @@ public class ManagedCamelContext extends
         }
         return context.getProperties();
     }
+    
+    @Override
+    public String getProperty(String name) throws Exception {
+        return context.getProperty(name);
+    }
+
+    @Override
+    public void setProperty(String name, String value) throws Exception {
+        context.getProperties().put(name, value);
+    }
 
     public Boolean getTracing() {
         return context.isTracing();

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextPropertiesTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextPropertiesTest.java?rev=1446851&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextPropertiesTest.java
(added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextPropertiesTest.java
Sat Feb 16 08:29:58 2013
@@ -0,0 +1,79 @@
+/**
+ * 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;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+
+/**
+ * @version 
+ */
+public class ManagedCamelContextPropertiesTest extends ManagementTestSupport {
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        // to force a different management name than the camel id
+        context.getManagementNameStrategy().setNamePattern("19-#name#");
+        return context;
+    }
+
+    public void testGetSetProperties() throws Exception {
+        MBeanServer mbeanServer = getMBeanServer();
+
+        ObjectName on = ObjectName.getInstance("org.apache.camel:context=localhost/19-camel-1,type=context,name=\"camel-1\"");
+
+        assertTrue("Should be registered", mbeanServer.isRegistered(on));
+        String name = (String) mbeanServer.getAttribute(on, "CamelId");
+        assertEquals("camel-1", name);
+
+
+        // invoke operations
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedBodiesReceived("Hello World");
+
+        template.sendBody("direct:start", "Hello World");
+        assertMockEndpointsSatisfied();
+
+        mbeanServer.invoke(on, "setProperty", new String[]{Exchange.LOG_DEBUG_BODY_MAX_CHARS,
"-1"}, new String[]{"java.lang.String", "java.lang.String"});
+        mbeanServer.invoke(on, "setProperty", new String[]{Exchange.LOG_DEBUG_BODY_STREAMS,
"true"}, new String[]{"java.lang.String", "java.lang.String"});
+
+        Object invoke = mbeanServer.invoke(on, "getProperty", new String[]{Exchange.LOG_DEBUG_BODY_MAX_CHARS},
new String[]{"java.lang.String"});
+        assertEquals("-1", invoke);
+
+        invoke = mbeanServer.invoke(on, "getProperty", new String[]{Exchange.LOG_DEBUG_BODY_STREAMS},
new String[]{"java.lang.String"});
+        assertEquals("true", invoke);
+
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start").to("mock:result");
+
+            }
+        };
+    }
+
+}



Mime
View raw message