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 [EMAIL PROTECTED] SequenceSender} thread.
      * 
-     * @param processor
-     *            the processor to send re-ordered [EMAIL PROTECTED] 
Exchange}s.
+     * @param processor the processor to send re-ordered [EMAIL PROTECTED] 
Exchange}s.
      */
     public SequenceSender(Processor processor) {
         this.processor = processor;
@@ -55,8 +54,7 @@
     /**
      * Sets the [EMAIL PROTECTED] BlockingQueue} to take messages from.
      * 
-     * @param queue
-     *            the [EMAIL PROTECTED] BlockingQueue} to take messages from.
+     * @param queue the [EMAIL PROTECTED] 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");
             }
         };
     }


Reply via email to