You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/12/07 10:48:53 UTC

svn commit: r1042949 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/component/timer/ camel-core/src/main/java/org/apache/camel/management/ camel-core/src/main/java/org/apache/camel/management/mbean/ camel-core/src/main/java/org/apache/cam...

Author: davsclaus
Date: Tue Dec  7 09:48:52 2010
New Revision: 1042949

URL: http://svn.apache.org/viewvc?rev=1042949&view=rev
Log:
CAMEL-3399: Using Spring JMX annotations is picked up and use without the need for implementing ManagementAware, which has been @deprecated.

Added:
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedInstance.java
Removed:
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCustomProcessor.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/JmxMBeanAssembler.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDelayer.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEventNotifier.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottler.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottlingInflightRoutePolicy.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementAware.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCustomProcessorTest.java
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java Tue Dec  7 09:48:52 2010
@@ -25,7 +25,6 @@ import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.Service;
 import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.camel.spi.ManagementAware;
 import org.springframework.jmx.export.annotation.ManagedAttribute;
 import org.springframework.jmx.export.annotation.ManagedResource;
 
@@ -35,7 +34,7 @@ import org.springframework.jmx.export.an
  * @version $Revision$
  */
 @ManagedResource(description = "Managed Timer Endpoint")
-public class TimerEndpoint extends DefaultEndpoint implements Service, ManagementAware<TimerEndpoint> {
+public class TimerEndpoint extends DefaultEndpoint implements Service {
     private String timerName;
     private Date time;
     private long period = 1000;
@@ -69,10 +68,6 @@ public class TimerEndpoint extends Defau
         return new TimerConsumer(this, processor);
     }
 
-    public Object getManagedObject(TimerEndpoint object) {
-        return this;
-    }
-
     public void start() throws Exception {
         // do nothing, the timer will be set when the first consumer will request it
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java Tue Dec  7 09:48:52 2010
@@ -49,7 +49,6 @@ import org.apache.camel.management.mbean
 import org.apache.camel.management.mbean.ManagedCamelContext;
 import org.apache.camel.management.mbean.ManagedComponent;
 import org.apache.camel.management.mbean.ManagedConsumer;
-import org.apache.camel.management.mbean.ManagedCustomProcessor;
 import org.apache.camel.management.mbean.ManagedDelayer;
 import org.apache.camel.management.mbean.ManagedEndpoint;
 import org.apache.camel.management.mbean.ManagedErrorHandler;
@@ -80,7 +79,6 @@ import org.apache.camel.processor.Delega
 import org.apache.camel.processor.ErrorHandler;
 import org.apache.camel.processor.SendProcessor;
 import org.apache.camel.processor.Throttler;
-import org.apache.camel.processor.WrapProcessor;
 import org.apache.camel.processor.interceptor.Tracer;
 import org.apache.camel.spi.BrowsableEndpoint;
 import org.apache.camel.spi.CamelContextNameStrategy;
@@ -473,8 +471,7 @@ public class DefaultManagementLifecycleS
             } else if (target instanceof SendProcessor) {
                 answer = new ManagedSendProcessor(context, (SendProcessor) target, definition);
             } else if (target instanceof ManagementAware) {
-                Object managedObject = ((ManagementAware) target).getManagedObject(processor);
-                answer = new ManagedCustomProcessor(context, managedObject, target, definition);
+                return ((ManagementAware) target).getManagedObject(processor);
             }
 
             if (answer != null) {
@@ -489,13 +486,13 @@ public class DefaultManagementLifecycleS
                 target = ((DelegateAsyncProcessor) target).getProcessor();
             } else {
                 // no delegate so we dont have any target to try next
-                target = null;
+                break;
             }
         }
 
         if (answer == null) {
             // fallback to a generic processor
-            answer = new ManagedProcessor(context, processor, definition);
+            answer = new ManagedProcessor(context, target, definition);
         }
 
         answer.setRoute(route);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/JmxMBeanAssembler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/JmxMBeanAssembler.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/JmxMBeanAssembler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/JmxMBeanAssembler.java Tue Dec  7 09:48:52 2010
@@ -23,8 +23,12 @@ import javax.management.modelmbean.Inval
 import javax.management.modelmbean.ModelMBeanInfo;
 import javax.management.modelmbean.RequiredModelMBean;
 
-import org.apache.camel.management.mbean.ManagedCustomProcessor;
+import org.apache.camel.management.mbean.ManagedInstance;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource;
+import org.springframework.jmx.export.annotation.ManagedResource;
 import org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler;
 
 /**
@@ -35,7 +39,7 @@ import org.springframework.jmx.export.as
  * @version $Revision$
  */
 public class JmxMBeanAssembler {
-
+    private final static Log LOG = LogFactory.getLog(JmxMBeanAssembler.class);
     private final MetadataMBeanInfoAssembler assembler;
     private final MBeanServer server;
 
@@ -46,15 +50,27 @@ public class JmxMBeanAssembler {
     }
 
     public RequiredModelMBean assemble(Object obj, ObjectName name) throws JMException {
-        ModelMBeanInfo mbi;
+        ModelMBeanInfo mbi = null;
+
+        // prefer to use the managed instance if it has been annotated with Spring JMX annotations
+        if (obj instanceof ManagedInstance) {
+            Object custom = ((ManagedInstance) obj).getInstance();
+            if (ObjectHelper.hasAnnotation(custom.getClass().getAnnotations(), ManagedResource.class)) {
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("Assembling MBeanInfo for: " + name.toString() + " from custom @ManagedResource object: " + custom);
+                }
+                // get the mbean info from the custom managed object
+                mbi = assembler.getMBeanInfo(custom, name.toString());
+                // and let the custom object be registered in JMX
+                obj = custom;
+            }
+        }
 
-        if (obj instanceof ManagedCustomProcessor) {
-            Object custom = ((ManagedCustomProcessor) obj).getManagedObject();
-            // get the mbean info from the custom managed object
-            mbi = assembler.getMBeanInfo(custom, name.toString());
-            // and let the custom object be registered in JMX
-            obj = custom;
-        } else {
+        if (mbi == null) {
+            // use the default provided mbean which has been annotated with Spring JMX annotations
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("Assembling MBeanInfo for: " + name.toString() + " from @ManagedResource object: " + obj);
+            }
             mbi = assembler.getMBeanInfo(obj, name.toString());
         }
 
@@ -63,8 +79,8 @@ public class JmxMBeanAssembler {
 
         try {
             mbean.setManagedResource(obj, "ObjectReference");
-        } catch (InvalidTargetObjectTypeException itotex) {
-            throw new JMException(itotex.getMessage());
+        } catch (InvalidTargetObjectTypeException e) {
+            throw new JMException(e.getMessage());
         }
 
         return mbean;

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=1042949&r1=1042948&r2=1042949&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 Tue Dec  7 09:48:52 2010
@@ -32,8 +32,7 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed CamelContext")
 public class ManagedCamelContext {
-
-    private CamelContext context;
+    private final CamelContext context;
 
     public ManagedCamelContext(CamelContext context) {
         this.context = context;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java Tue Dec  7 09:48:52 2010
@@ -27,10 +27,9 @@ import org.springframework.jmx.export.an
  * @version $Revision$
  */
 @ManagedResource(description = "Managed Component")
-public class ManagedComponent {
-
-    private Component component;
-    private String name;
+public class ManagedComponent implements ManagedInstance {
+    private final Component component;
+    private final String name;
 
     public ManagedComponent(String name, Component component) {
         this.name = name;
@@ -71,4 +70,7 @@ public class ManagedComponent {
         return component.getCamelContext().getName();
     }
 
+    public Object getInstance() {
+        return component;
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedConsumer.java Tue Dec  7 09:48:52 2010
@@ -26,7 +26,6 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed Consumer")
 public class ManagedConsumer extends ManagedService {
-
     private final Consumer consumer;
 
     public ManagedConsumer(CamelContext context, Consumer consumer) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java Tue Dec  7 09:48:52 2010
@@ -24,7 +24,6 @@ import org.springframework.jmx.export.an
 
 @ManagedResource(description = "Managed Counter")
 public abstract class ManagedCounter {
-
     protected Statistic exchangesTotal;
 
     public void init(ManagementStrategy strategy) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDelayer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDelayer.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDelayer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDelayer.java Tue Dec  7 09:48:52 2010
@@ -30,8 +30,7 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed Delayer")
 public class ManagedDelayer extends ManagedProcessor {
-
-    private Delayer delayer;
+    private final Delayer delayer;
 
     public ManagedDelayer(CamelContext context, Delayer delayer, ProcessorDefinition<?> definition) {
         super(context, delayer, definition);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java Tue Dec  7 09:48:52 2010
@@ -22,9 +22,8 @@ import org.springframework.jmx.export.an
 import org.springframework.jmx.export.annotation.ManagedResource;
 
 @ManagedResource(description = "Managed Endpoint")
-public class ManagedEndpoint {
-
-    private Endpoint endpoint;
+public class ManagedEndpoint implements ManagedInstance {
+    private final Endpoint endpoint;
 
     public ManagedEndpoint(Endpoint endpoint) {
         this.endpoint = endpoint;
@@ -52,4 +51,8 @@ public class ManagedEndpoint {
     public boolean isSingleton() {
         return endpoint.isSingleton();
     }
+
+    public Object getInstance() {
+        return endpoint;
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java Tue Dec  7 09:48:52 2010
@@ -31,10 +31,9 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed ErrorHandler")
 public class ManagedErrorHandler {
-
-    private RouteContext routeContext;
-    private Processor errorHandler;
-    private ErrorHandlerBuilder errorHandlerBuilder;
+    private final RouteContext routeContext;
+    private final Processor errorHandler;
+    private final ErrorHandlerBuilder errorHandlerBuilder;
 
     public ManagedErrorHandler(RouteContext routeContext, Processor errorHandler, ErrorHandlerBuilder builder) {
         this.routeContext = routeContext;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEventNotifier.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEventNotifier.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEventNotifier.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEventNotifier.java Tue Dec  7 09:48:52 2010
@@ -30,9 +30,8 @@ import org.apache.camel.spi.ManagementSt
  * @version $Revision$
  */
 public class ManagedEventNotifier extends NotificationBroadcasterSupport implements ManagedEventNotifierMBean {
-
-    private CamelContext context;
-    private EventNotifier eventNotifier;
+    private final CamelContext context;
+    private final EventNotifier eventNotifier;
 
     public ManagedEventNotifier(CamelContext context, EventNotifier eventNotifier) {
         this.context = context;

Added: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedInstance.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedInstance.java?rev=1042949&view=auto
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedInstance.java (added)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedInstance.java Tue Dec  7 09:48:52 2010
@@ -0,0 +1,31 @@
+/**
+ * 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;
+
+/**
+ * @version $Revision$
+ */
+public interface ManagedInstance {
+
+    /**
+     * Gets the resource which is being managed.
+     *
+     * @return the resource, such as a {@link org.apache.camel.Processor}, {@link org.apache.camel.Consumer} etc.
+     */
+    Object getInstance();
+
+}

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java Tue Dec  7 09:48:52 2010
@@ -27,7 +27,6 @@ import org.springframework.jmx.export.an
 
 @ManagedResource(description = "PerformanceCounter")
 public abstract class ManagedPerformanceCounter extends ManagedCounter implements PerformanceCounter {
-
     private Statistic exchangesCompleted;
     private Statistic exchangesFailed;
     private Statistic minProcessingTime;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java Tue Dec  7 09:48:52 2010
@@ -32,7 +32,7 @@ import org.springframework.jmx.export.an
  * @version $Revision$
  */
 @ManagedResource(description = "Managed Processor")
-public class ManagedProcessor extends ManagedPerformanceCounter {
+public class ManagedProcessor extends ManagedPerformanceCounter implements ManagedInstance {
 
     private final CamelContext context;
     private final Processor processor;
@@ -120,4 +120,7 @@ public class ManagedProcessor extends Ma
         ServiceHelper.stopService(getProcessor());
     }
 
+    public Object getInstance() {
+        return processor;
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducer.java Tue Dec  7 09:48:52 2010
@@ -26,8 +26,7 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed Producer")
 public class ManagedProducer extends ManagedService {
-
-    private Producer producer;
+    private final Producer producer;
 
     public ManagedProducer(CamelContext context, Producer producer) {
         super(context, producer);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProducerCache.java Tue Dec  7 09:48:52 2010
@@ -26,7 +26,6 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed ProducerCache")
 public class ManagedProducerCache extends ManagedService {
-
     private final ProducerCache producerCache;
 
     public ManagedProducerCache(CamelContext context, ProducerCache producerCache) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java Tue Dec  7 09:48:52 2010
@@ -31,11 +31,10 @@ import org.springframework.jmx.export.an
 
 @ManagedResource(description = "Managed Route")
 public class ManagedRoute extends ManagedPerformanceCounter {
-
     public static final String VALUE_UNKNOWN = "Unknown";
-    protected Route route;
-    protected String description;
-    protected CamelContext context;
+    protected final Route route;
+    protected final String description;
+    protected final CamelContext context;
 
     public ManagedRoute(CamelContext context, Route route) {
         this.route = route;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java Tue Dec  7 09:48:52 2010
@@ -28,8 +28,7 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed Scheduled Polling Consumer")
 public class ManagedScheduledPollConsumer extends ManagedConsumer {
-
-    private ScheduledPollConsumer consumer;
+    private final ScheduledPollConsumer consumer;
 
     public ManagedScheduledPollConsumer(CamelContext context, ScheduledPollConsumer consumer) {
         super(context, consumer);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedSendProcessor.java Tue Dec  7 09:48:52 2010
@@ -29,8 +29,7 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed SendProcessor")
 public class ManagedSendProcessor extends ManagedProcessor {
-
-    private SendProcessor processor;
+    private final SendProcessor processor;
 
     public ManagedSendProcessor(CamelContext context, SendProcessor processor, ProcessorDefinition<?> definition) {
         super(context, processor, definition);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java Tue Dec  7 09:48:52 2010
@@ -28,10 +28,9 @@ import org.springframework.jmx.export.an
 import org.springframework.jmx.export.annotation.ManagedResource;
 
 @ManagedResource(description = "Managed Service")
-public class ManagedService {
-
-    private CamelContext context;
-    private Service service;
+public class ManagedService implements ManagedInstance {
+    private final CamelContext context;
+    private final Service service;
     private Route route;
 
     public ManagedService(CamelContext context, Service service) {
@@ -145,4 +144,7 @@ public class ManagedService {
         }
     }
 
+    public Object getInstance() {
+        return service;
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottler.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottler.java Tue Dec  7 09:48:52 2010
@@ -27,8 +27,7 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed Throttler")
 public class ManagedThrottler extends ManagedProcessor {
-
-    private Throttler throttler;
+    private final Throttler throttler;
 
     public ManagedThrottler(CamelContext context, Throttler throttler, ProcessorDefinition<?> definition) {
         super(context, throttler, definition);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottlingInflightRoutePolicy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottlingInflightRoutePolicy.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottlingInflightRoutePolicy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedThrottlingInflightRoutePolicy.java Tue Dec  7 09:48:52 2010
@@ -27,7 +27,6 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed ThrottlingInflightRoutePolicy")
 public class ManagedThrottlingInflightRoutePolicy extends ManagedService {
-
     private final ThrottlingInflightRoutePolicy policy;
 
     public ManagedThrottlingInflightRoutePolicy(CamelContext context, ThrottlingInflightRoutePolicy policy) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTracer.java Tue Dec  7 09:48:52 2010
@@ -29,7 +29,6 @@ import org.springframework.jmx.export.an
  */
 @ManagedResource(description = "Managed Tracer")
 public class ManagedTracer {
-
     private final CamelContext camelContext;
     private final Tracer tracer;
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementAware.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementAware.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementAware.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementAware.java Tue Dec  7 09:48:52 2010
@@ -23,11 +23,15 @@ package org.apache.camel.spi;
  * For example various Camel components will implement this interface to provide
  * management to their endpoints and consumers.
  * <p/>
- * Camel will by default use generic management objects if objects do not implement
- * this interface. These defaults are located in <tt>org.apache.camel.management.mbean</tt>.
+ * A popular choice is to use Spring JMX annotations to decorate your object to pinpoint
+ * the JMX attributes and operations. If you do this then you do <b>not</b> need to use
+ * this interface. This interface is only if you need to be in full control of the MBean
+ * and therefore can return a {@link javax.management.MBeanInfo} object.
  *
  * @version $Revision$
+ * @deprecated use Spring JMX annotations
  */
+@Deprecated
 public interface ManagementAware<T> {
 
     /**

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Tue Dec  7 09:48:52 2010
@@ -1003,8 +1003,7 @@ public final class ObjectHelper {
     }
 
     /**
-     * Returns true if the given collection of annotations matches the given
-     * type
+     * Returns true if the given collection of annotations matches the given type
      */
     public static boolean hasAnnotation(Annotation[] annotations, Class<?> type) {
         for (Annotation annotation : annotations) {

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCustomProcessorTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCustomProcessorTest.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCustomProcessorTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCustomProcessorTest.java Tue Dec  7 09:48:52 2010
@@ -25,7 +25,6 @@ import org.apache.camel.ContextTestSuppo
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.spi.ManagementAware;
 import org.springframework.jmx.export.annotation.ManagedAttribute;
 import org.springframework.jmx.export.annotation.ManagedResource;
 
@@ -84,16 +83,10 @@ public class ManagedCustomProcessorTest 
     }
 
     // START SNIPPET: e1
-    @ManagedResource
-    public static class MyCustomProcessor implements ManagementAware<Processor>, Processor {
+    @ManagedResource("My Managed Component")
+    public static class MyCustomProcessor implements Processor {
         private String foo = "hey";
 
-        public Object getManagedObject(Processor object) {
-            // just return this as we use Spring JMX annotations to define which attributes/operations
-            // to be enlisted in JMX
-            return this;
-        }
-
         @ManagedAttribute
         public String getFoo() {
             return foo;

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Tue Dec  7 09:48:52 2010
@@ -44,7 +44,6 @@ import org.apache.camel.impl.DefaultExch
 import org.apache.camel.impl.SynchronousDelegateProducer;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
-import org.apache.camel.spi.ManagementAware;
 import org.apache.camel.util.ServiceHelper;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.jms.core.JmsOperations;
@@ -61,7 +60,7 @@ import org.springframework.transaction.P
  * @version $Revision:520964 $
  */
 @ManagedResource(description = "Managed JMS Endpoint")
-public class JmsEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware, ManagementAware<JmsEndpoint>, MultipleConsumersSupport, Service {
+public class JmsEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware, MultipleConsumersSupport, Service {
     private HeaderFilterStrategy headerFilterStrategy;
     private boolean pubSubDomain;
     private JmsBinding binding;
@@ -217,10 +216,6 @@ public class JmsEndpoint extends Default
         return configuration.createInOutTemplate(this, pubSubDomain, destinationName, configuration.getRequestTimeout());
     }
 
-    public Object getManagedObject(JmsEndpoint endpoint) {
-        return this;
-    }
-
     public boolean isMultipleConsumersSupported() {
         // only allow multiple consumers for pub sub domain (e.g. topics)
         return isPubSubDomain();

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java Tue Dec  7 09:48:52 2010
@@ -61,12 +61,6 @@ public class JmsTemporaryQueueEndpoint e
         return true;
     }
     
-    @Override
-    public Object getManagedObject(JmsEndpoint object) {
-        // We don't want to manage this temporary object, so return null
-        return null;
-    }
-
     public synchronized Destination getJmsDestination(Session session) throws JMSException {
         if (jmsDestination == null) {
             jmsDestination = createJmsDestination(session);

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java?rev=1042949&r1=1042948&r2=1042949&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java Tue Dec  7 09:48:52 2010
@@ -56,12 +56,6 @@ public class JmsTemporaryTopicEndpoint e
         return true;
     }
     
-    @Override
-    public Object getManagedObject(JmsEndpoint object) {
-        // We don't want to manage this temporary object
-        return null;
-    }
-
     public synchronized Destination getJmsDestination(Session session) throws JMSException {
         if (jmsDestination == null) {
             jmsDestination = createJmsDestination(session);