[hornetq-commits] JBoss hornetq SVN: r8943 - in trunk: src/main/org/hornetq/jms/management/impl and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Mar 22 13:29:51 EDT 2010


Author: jmesnil
Date: 2010-03-22 13:29:50 -0400 (Mon, 22 Mar 2010)
New Revision: 8943

Modified:
   trunk/src/main/org/hornetq/api/jms/management/JMSServerControl.java
   trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java
Log:
management tests

* added tests for management of security settings from JMSServerControl

Modified: trunk/src/main/org/hornetq/api/jms/management/JMSServerControl.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/management/JMSServerControl.java	2010-03-22 17:03:25 UTC (rev 8942)
+++ trunk/src/main/org/hornetq/api/jms/management/JMSServerControl.java	2010-03-22 17:29:50 UTC (rev 8943)
@@ -245,5 +245,7 @@
    @Operation(desc = "removes the address settings for an address match", impact = MBeanOperationInfo.INFO)
    void removeSecuritySettings(@Parameter(desc="an address match", name="addressMatch") String addressMatch) throws Exception;
 
-   Set<Role> getSecuritySettings(final String addressMatch);
+   Set<Role> getSecuritySettings(final String addressMatch) throws Exception;
+
+   String getSecuritySettingsAsJSON(String destination) throws Exception;
 }

Modified: trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java	2010-03-22 17:03:25 UTC (rev 8942)
+++ trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java	2010-03-22 17:29:50 UTC (rev 8943)
@@ -13,7 +13,10 @@
 
 package org.hornetq.jms.management.impl;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
 import javax.management.ListenerNotFoundException;
@@ -30,7 +33,6 @@
 import org.hornetq.api.core.SimpleString;
 import org.hornetq.api.core.TransportConfiguration;
 import org.hornetq.api.core.management.ManagementHelper;
-import org.hornetq.api.core.management.Parameter;
 import org.hornetq.api.jms.management.ConnectionFactoryControl;
 import org.hornetq.api.jms.management.JMSQueueControl;
 import org.hornetq.api.jms.management.JMSServerControl;
@@ -40,8 +42,9 @@
 import org.hornetq.core.settings.impl.AddressFullMessagePolicy;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.jms.server.JMSServerManager;
-import org.hornetq.jms.server.config.JMSQueueConfiguration;
 import org.hornetq.utils.SecurityFormatter;
+import org.hornetq.utils.json.JSONArray;
+import org.hornetq.utils.json.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -442,6 +445,18 @@
       return server.getSecurity(addressMatch);
    }
 
+   public String getSecuritySettingsAsJSON(final String addressMatch) throws Exception
+   {
+      JSONArray json = new JSONArray();
+      Set<Role> roles = server.getSecurity(addressMatch);
+
+      for (Role role : roles)
+      {
+         json.put(new JSONObject(role));
+      }
+      return json.toString();
+   }
+   
    public void removeSecuritySettings(String addressMatch) throws Exception
    {
       //To change body of implemented methods use File | Settings | File Templates.

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-03-22 17:03:25 UTC (rev 8942)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-03-22 17:29:50 UTC (rev 8943)
@@ -14,6 +14,11 @@
 package org.hornetq.tests.integration.jms.server.management;
 
 
+import static org.hornetq.tests.util.RandomUtil.randomSimpleString;
+import static org.hornetq.tests.util.RandomUtil.randomString;
+
+import java.util.Set;
+
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.Queue;
@@ -22,10 +27,13 @@
 
 import junit.framework.Assert;
 
+import org.hornetq.api.core.SimpleString;
 import org.hornetq.api.core.TransportConfiguration;
 import org.hornetq.api.core.management.AddressControl;
+import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.api.core.management.ObjectNameBuilder;
 import org.hornetq.api.core.management.ResourceNames;
+import org.hornetq.api.core.management.RoleInfo;
 import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.core.config.Configuration;
 import org.hornetq.core.config.DiscoveryGroupConfiguration;
@@ -34,10 +42,12 @@
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
+import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQConnectionFactory;
 import org.hornetq.jms.client.HornetQDestination;
+import org.hornetq.jms.client.HornetQQueueBrowser;
 import org.hornetq.jms.server.JMSServerManager;
 import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.management.ManagementControlHelper;
@@ -290,9 +300,47 @@
       });
    }
 
+   public void testSecuritySettings() throws Exception
+   {
+      JMSServerControl serverControl = createManagementControl();
+      String destination = HornetQDestination.createQueueAddressFromName(randomString()).toString();
+      
+      serverControl.addSecuritySettings(destination, "foo", "foo, bar", "foo", "bar", "foo, bar", "", "");
+      
+      String rolesAsJSON = serverControl.getSecuritySettingsAsJSON(destination);
+      RoleInfo[] roleInfos = RoleInfo.from(rolesAsJSON);
+      assertEquals(2, roleInfos.length);
+      RoleInfo fooRole = null;
+      RoleInfo barRole = null;
+      if (roleInfos[0].getName().equals("foo"))
+      {
+         fooRole = roleInfos[0];
+         barRole = roleInfos[1];
+      }
+      else
+      {
+         fooRole = roleInfos[1];
+         barRole = roleInfos[0];
+      }
+      assertTrue(fooRole.isSend());
+      assertTrue(fooRole.isConsume());
+      assertTrue(fooRole.isCreateDurableQueue());
+      assertFalse(fooRole.isDeleteDurableQueue());
+      assertTrue(fooRole.isCreateNonDurableQueue());
+      assertFalse(fooRole.isDeleteNonDurableQueue());
+      assertFalse(fooRole.isManage());
+   
+      assertFalse(barRole.isSend());
+      assertTrue(barRole.isConsume());
+      assertFalse(barRole.isCreateDurableQueue());
+      assertTrue(barRole.isDeleteDurableQueue());
+      assertTrue(barRole.isCreateNonDurableQueue());
+      assertFalse(barRole.isDeleteNonDurableQueue());
+      assertFalse(barRole.isManage());
+      
+      serverControl.removeSecuritySettings(destination);
+   }
 
-
-
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java	2010-03-22 17:03:25 UTC (rev 8942)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java	2010-03-22 17:29:50 UTC (rev 8943)
@@ -263,8 +263,14 @@
                                          String deleteTempQueueRoles,
                                          String manageRoles) throws Exception
          {
-            // TODO Auto-generated method stub
-            
+            proxy.invokeOperation("addSecuritySettings", addressMatch,
+                                  sendRoles,
+                                  consumeRoles,
+                                  createDurableQueueRoles,
+                                  deleteDurableQueueRoles,
+                                  createTempQueueRoles,
+                                  deleteTempQueueRoles,
+                                  manageRoles);
          }
 
          public AddressSettings getAddressSettings(String address)
@@ -281,15 +287,19 @@
 
          public void removeSecuritySettings(String addressMatch) throws Exception
          {
-            // TODO Auto-generated method stub
-            
+            proxy.invokeOperation("removeSecuritySettings", addressMatch);
          }
-
-         public Set<Role> getSecuritySettings(String addressMatch)
+         
+         @SuppressWarnings("unchecked")
+         public Set<Role> getSecuritySettings(String addressMatch) throws Exception
          {
-            // TODO Auto-generated method stub
-            return null;
+            return (Set<Role>)proxy.invokeOperation("getSecuritySettings", addressMatch);
          }
+         
+         public String getSecuritySettingsAsJSON(String addressMatch) throws Exception
+         {
+            return (String)proxy.invokeOperation("getSecuritySettingsAsJSON", addressMatch);
+         }
 
       };
    }



More information about the hornetq-commits mailing list