[hornetq-commits] JBoss hornetq SVN: r9801 - in branches/hornetq-416: src/main/org/hornetq/core/management/impl and 5 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Oct 20 10:00:19 EDT 2010


Author: gaohoward
Date: 2010-10-20 10:00:18 -0400 (Wed, 20 Oct 2010)
New Revision: 9801

Modified:
   branches/hornetq-416/src/main/org/hornetq/api/jms/management/JMSServerControl.java
   branches/hornetq-416/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java
   branches/hornetq-416/src/main/org/hornetq/core/server/HornetQServer.java
   branches/hornetq-416/src/main/org/hornetq/core/server/ServerSession.java
   branches/hornetq-416/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
   branches/hornetq-416/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java
   branches/hornetq-416/src/main/org/hornetq/jms/client/HornetQConnection.java
   branches/hornetq-416/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java
   branches/hornetq-416/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java
Log:
more management operations


Modified: branches/hornetq-416/src/main/org/hornetq/api/jms/management/JMSServerControl.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/api/jms/management/JMSServerControl.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/api/jms/management/JMSServerControl.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -251,4 +251,23 @@
     */
    @Operation(desc = "List all JMS consumers associated to a JMS Connection")
    String listConsumersAsJSON(@Parameter(desc = "a connection ID", name = "connectionID") String connectionID) throws Exception;
+   
+   /**
+    * Lists all addresses to which the designated server session has sent messages.
+    */
+   @Operation(desc = "Lists all addresses to which the designated session has sent messages", impact = MBeanOperationInfo.INFO)
+   String[] listTargetDestinations(@Parameter(desc = "a session ID", name = "sessionID") String sessionID) throws Exception;
+   
+   /**
+    * Returns the last sent message's ID from the given session to an address.
+    */
+   @Operation(desc = "Returns the last sent message's ID from the given session to an address", impact = MBeanOperationInfo.INFO)
+   String getLastSentMessageID(@Parameter(desc = "session name", name = "sessionID") String sessionID,
+                               @Parameter(desc = "address", name = "address") String address) throws Exception;
+   
+   /**
+    * Gets the session's creation time.
+    */
+   @Operation(desc = "Gets the sessions creation time", impact = MBeanOperationInfo.INFO)
+   String getSessionCreationTime(@Parameter(desc = "session name", name = "sessionID") String sessionID) throws Exception;
 }

Modified: branches/hornetq-416/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -1755,4 +1755,13 @@
       }
    }
 
+   public String[] listTargetAddresses(String sessionID)
+   {
+      ServerSession session = server.getSessionByID(sessionID);
+      if (session != null) {
+         return session.getTargetAddresses();
+      }
+      return new String[0];
+   }
+
 }

Modified: branches/hornetq-416/src/main/org/hornetq/core/server/HornetQServer.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/core/server/HornetQServer.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/core/server/HornetQServer.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -159,4 +159,6 @@
    void deployBridge(BridgeConfiguration config) throws Exception;
 
    void destroyBridge(String name) throws Exception;
+
+   ServerSession getSessionByID(String sessionID);
 }

Modified: branches/hornetq-416/src/main/org/hornetq/core/server/ServerSession.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/core/server/ServerSession.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/core/server/ServerSession.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -117,4 +117,10 @@
    void addMetaData(String key, String data);
 
    String getMetaData(String key);
+
+   String[] getTargetAddresses();
+
+   String getLastSentMessageID(String address);
+
+   long getCreationTime();
 }

Modified: branches/hornetq-416/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -1513,6 +1513,11 @@
                                     });
       
    }
+
+   public ServerSession getSessionByID(String sessionName)
+   {
+      return sessions.get(sessionName);
+   }
    
 
    // Inner classes

Modified: branches/hornetq-416/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -19,6 +19,7 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -65,6 +66,7 @@
 import org.hornetq.spi.core.protocol.RemotingConnection;
 import org.hornetq.spi.core.protocol.SessionCallback;
 import org.hornetq.utils.TypedProperties;
+import org.hornetq.utils.UUID;
 
 /*
  * Session implementation 
@@ -139,6 +141,10 @@
    
    private Map<String, String> metaData;
 
+   private Map<SimpleString, UUID> targetAddressInfos = new HashMap<SimpleString, UUID>();
+   
+   private long creationTime = System.currentTimeMillis();
+
    // Constructors ---------------------------------------------------------------------------------
 
    public ServerSessionImpl(final String name,
@@ -1181,6 +1187,8 @@
       }
 
       postOffice.route(msg, routingContext, direct);
+      
+      targetAddressInfos.put(msg.getAddress(), msg.getUserID());
 
       routingContext.clear();
    }
@@ -1203,5 +1211,29 @@
       }
       return data;
    }
+   
+   public String[] getTargetAddresses()
+   {
+      Map<SimpleString, UUID> copy = new HashMap<SimpleString, UUID>(targetAddressInfos);
+      Iterator<SimpleString> iter = copy.keySet().iterator();
+      int num = copy.keySet().size();
+      String[] addresses = new String[num];
+      int i = 0;
+      while (iter.hasNext())
+      {
+         addresses[i] = iter.next().toString();
+         i++;
+      }
+      return addresses;
+   }
 
+   public String getLastSentMessageID(String address)
+   {
+      return targetAddressInfos.get(SimpleString.toSimpleString(address)).toString();
+   }
+
+   public long getCreationTime()
+   {
+      return this.creationTime;
+   }
 }

Modified: branches/hornetq-416/src/main/org/hornetq/jms/client/HornetQConnection.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/jms/client/HornetQConnection.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/jms/client/HornetQConnection.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -586,6 +586,7 @@
 
    private void addSessionMetaData(ClientSession session) throws HornetQException
    {
+      session.addMetaData("jms-session", "");
       if (clientID != null)
       {
          session.addMetaData("jms-client-id", clientID);

Modified: branches/hornetq-416/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java
===================================================================
--- branches/hornetq-416/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -34,6 +34,7 @@
 import org.hornetq.api.core.TransportConfiguration;
 import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.jms.management.ConnectionFactoryControl;
+import org.hornetq.api.jms.management.DestinationControl;
 import org.hornetq.api.jms.management.JMSQueueControl;
 import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.api.jms.management.TopicControl;
@@ -43,7 +44,6 @@
 import org.hornetq.core.server.ServerSession;
 import org.hornetq.jms.client.HornetQDestination;
 import org.hornetq.jms.client.HornetQQueue;
-import org.hornetq.jms.client.HornetQTopic;
 import org.hornetq.jms.server.JMSServerManager;
 import org.hornetq.spi.core.protocol.RemotingConnection;
 import org.hornetq.utils.json.JSONArray;
@@ -744,7 +744,7 @@
 
          for (ServerSession session : sessions)
          {
-            if (session.getMetaData("jms-client-id") != null)
+            if (session.getMetaData("jms-session") != null)
             {
                jmsSessions.put(session.getConnectionID(), session);
             }
@@ -936,4 +936,55 @@
       }
       return list;
    }
+
+   public String[] listTargetDestinations(String sessionID) throws Exception
+   {
+      String[] addresses = server.getHornetQServer().getHornetQServerControl().listTargetAddresses(sessionID);
+      Map<String, DestinationControl> allDests = new HashMap<String, DestinationControl>();
+      
+      Object[] queueControls = server.getHornetQServer().getManagementService().getResources(JMSQueueControl.class);
+      for (int i = 0; i < queueControls.length; i++)
+      {
+         JMSQueueControl queueControl = (JMSQueueControl)queueControls[i];
+         allDests.put(queueControl.getAddress(), queueControl);
+      }
+      
+      Object[] topicControls = server.getHornetQServer().getManagementService().getResources(TopicControl.class);
+      for (int i = 0; i < topicControls.length; i++)
+      {
+         TopicControl topicControl = (TopicControl)topicControls[i];
+         allDests.put(topicControl.getAddress(), topicControl);
+      }
+      
+      List<String> destinations = new ArrayList<String>();
+      for (int i = 0; i < addresses.length; i++)
+      {
+         DestinationControl control = allDests.get(addresses[i]);
+         if (control != null)
+         {
+            destinations.add(control.getAddress());
+         }
+      }
+      return destinations.toArray(new String[0]);
+   }
+
+   public String getLastSentMessageID(String sessionID, String address) throws Exception
+   {
+      ServerSession session = server.getHornetQServer().getSessionByID(sessionID);
+      if (session != null)
+      {
+         return session.getLastSentMessageID(address);
+      }
+      return null;
+   }
+
+   public String getSessionCreationTime(String sessionID) throws Exception
+   {
+      ServerSession session = server.getHornetQServer().getSessionByID(sessionID);
+      if (session != null)
+      {
+         return String.valueOf(session.getCreationTime());
+      }
+      return null;
+   }
 }

Modified: branches/hornetq-416/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java
===================================================================
--- branches/hornetq-416/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java	2010-10-20 11:26:32 UTC (rev 9800)
+++ branches/hornetq-416/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java	2010-10-20 14:00:18 UTC (rev 9801)
@@ -21,14 +21,12 @@
 import javax.jms.Session;
 
 import org.hornetq.api.core.TransportConfiguration;
-import org.hornetq.api.core.management.Parameter;
 import org.hornetq.api.core.management.ResourceNames;
 import org.hornetq.api.jms.HornetQJMSClient;
 import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.security.Role;
 import org.hornetq.jms.client.HornetQConnectionFactory;
-import org.hornetq.jms.client.HornetQDestination;
 import org.hornetq.jms.client.HornetQQueue;
 
 /**
@@ -285,6 +283,21 @@
             return (Boolean)proxy.invokeOperation("createTopic", name, jndiBinding);
          }
 
+         public String[] listTargetDestinations(String sessionID) throws Exception
+         {
+            return null;
+         }
+
+         public String getLastSentMessageID(String sessionID, String address) throws Exception
+         {
+            return null;
+         }
+
+         public String getSessionCreationTime(String sessionID) throws Exception
+         {
+            return null;
+         }
+
       };
    }
    // Public --------------------------------------------------------



More information about the hornetq-commits mailing list