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 2008/07/17 11:45:24 UTC

svn commit: r677549 - in /activemq/camel/trunk/camel-core/src/main/java/org/apache/camel: management/CamelNamingStrategy.java management/DefaultInstrumentationAgent.java processor/resequencer/SequenceSender.java

Author: davsclaus
Date: Thu Jul 17 02:45:24 2008
New Revision: 677549

URL: http://svn.apache.org/viewvc?rev=677549&view=rev
Log:
CAMEL-732: JMX testing for MBean already registered before registering.

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultInstrumentationAgent.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java?rev=677549&r1=677548&r2=677549&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/CamelNamingStrategy.java Thu Jul 17 02:45:24 2008
@@ -46,7 +46,6 @@
     public static final String TYPE_ROUTE = "route";
     public static final String TYPE_SERVICE = "service";
     public static final String KEY_NODE_ID = "nodeid";
-    public static final String KEY_INSTANCE = "instance";
 
     protected String domainName;
     protected String hostName = "locahost";

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultInstrumentationAgent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultInstrumentationAgent.java?rev=677549&r1=677548&r2=677549&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultInstrumentationAgent.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultInstrumentationAgent.java Thu Jul 17 02:45:24 2008
@@ -219,24 +219,36 @@
     private void registerMBeanWithServer(Object obj, ObjectName name, boolean forceRegistration)
         throws JMException {
 
-        ObjectInstance instance = null;
-        try {
-            instance = server.registerMBean(obj, name);
-        } catch (InstanceAlreadyExistsException e) {
+        // have we already registered the bean, there can be shared instances in the camel routes
+        boolean exists = server.isRegistered(name);
+        if (exists) {
             if (forceRegistration) {
+                LOG.info("ForceRegistration enabled, unregistering existing MBean");
                 server.unregisterMBean(name);
-                instance = server.registerMBean(obj, name);
             } else {
-                throw e;
+                // okay ignore we do not want to force it and it could be a shared instance
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("MBean already registered with objectname: " + name);
+                }
             }
         }
 
+        // register bean if by force or not exsists
+        ObjectInstance instance = null;
+        if (forceRegistration || !exists) {
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("Registering MBean with objectname: " + name);
+            }
+            instance = server.registerMBean(obj, name);
+        }
+
         if (instance != null) {
+            ObjectName registeredName = instance.getObjectName();
             if (LOG.isDebugEnabled()) {
-                LOG.debug("Registered objectname " + instance.getObjectName());
+                LOG.debug("Registered MBean with objectname: " + registeredName);
             }
             
-            mbeans.add(instance.getObjectName());
+            mbeans.add(registeredName);
         }
     }
 
@@ -274,7 +286,7 @@
                 createJmxConnector(hostName);
             }
         } catch (IOException ioe) {
-            LOG.warn("Could not create and start jmx connector.", ioe);
+            LOG.warn("Could not create and start JMX connector.", ioe);
         }
     }
 
@@ -308,7 +320,7 @@
         try {
             LocateRegistry.createRegistry(registryPort);
             if (LOG.isDebugEnabled()) {
-                LOG.debug("Created RMI regisry on port " + registryPort);
+                LOG.debug("Created JMXConnector RMI regisry on port " + registryPort);
             }
         } catch (RemoteException ex) {
             // The registry may had been created, we could get the registry instead
@@ -332,13 +344,13 @@
                 try {
                     cs.start();
                 } catch (IOException ioe) {
-                    LOG.warn("Could not start jmx connector thread.", ioe);
+                    LOG.warn("Could not start JMXConnector thread.", ioe);
                 }
             }
         };
-        connectorThread.setName("JMX Connector Thread [" + url + "]");
+        connectorThread.setName("Camel JMX Connector Thread [" + url + "]");
         connectorThread.start();
-        LOG.info("JMX connector thread started on " + url);
+        LOG.info("JMX Connector thread started and listening at: " + url);
     }
 
     public String getMBeanObjectDomainName() {

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java?rev=677549&r1=677548&r2=677549&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/resequencer/SequenceSender.java Thu Jul 17 02:45:24 2008
@@ -32,7 +32,7 @@
  * 
  * @author Martin Krasser
  * 
- * @version $Revision
+ * @version $Revision$
  */
 public class SequenceSender extends Thread {
 
@@ -45,8 +45,7 @@
     /**
      * Creates a new {@link SequenceSender} thread.
      * 
-     * @param processor
-     *            the processor to send re-ordered {@link Exchange}s.
+     * @param processor the processor to send re-ordered {@link Exchange}s.
      */
     public SequenceSender(Processor processor) {
         this.processor = processor;
@@ -55,8 +54,7 @@
     /**
      * Sets the {@link BlockingQueue} to take messages from.
      * 
-     * @param queue
-     *            the {@link BlockingQueue} to take messages from.
+     * @param queue the {@link BlockingQueue} to take messages from.
      */
     public void setQueue(BlockingQueue<Exchange> queue) {
         this.queue = queue;
@@ -67,15 +65,15 @@
             try {
                 Exchange exchange = queue.take();
                 if (exchange == STOP) {
-                    LOG.info("exit processing loop after cancellation");
+                    LOG.info("Exit processing loop after cancellation");
                     return;
                 }
                 processor.process(exchange);
             } catch (InterruptedException e) {
-                LOG.info("exit processing loop after interrupt");
+                LOG.info("Exit processing loop after interrupt");
                 return;
             } catch (Exception e) {
-                LOG.warn("exception during exchange processing");
+                LOG.warn("Exception during exchange processing: " + e.getMessage());
             }
         }
     }
@@ -95,7 +93,7 @@
     private static InvocationHandler createStopHandler() {
         return new InvocationHandler() {
             public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-                throw new RuntimeException("illegal method invocation on stop signal");
+                throw new RuntimeException("Illegal method invocation on stop signal");
             }
         };
     }