[jboss-cvs] JBossAS SVN: r101091 - projects/test/trunk/src/main/java/org/jboss/test/jms.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Feb 17 16:47:44 EST 2010
Author: clebert.suconic at jboss.com
Date: 2010-02-17 16:47:44 -0500 (Wed, 17 Feb 2010)
New Revision: 101091
Modified:
projects/test/trunk/src/main/java/org/jboss/test/jms/HornetQTestAdmin.java
Log:
Changes on the SecuritySettings
Modified: projects/test/trunk/src/main/java/org/jboss/test/jms/HornetQTestAdmin.java
===================================================================
--- projects/test/trunk/src/main/java/org/jboss/test/jms/HornetQTestAdmin.java 2010-02-17 20:12:50 UTC (rev 101090)
+++ projects/test/trunk/src/main/java/org/jboss/test/jms/HornetQTestAdmin.java 2010-02-17 21:47:44 UTC (rev 101091)
@@ -28,13 +28,11 @@
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
-import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.naming.InitialContext;
import org.jboss.logging.Logger;
-import org.jboss.util.NestedRuntimeException;
/**
*
@@ -48,19 +46,9 @@
/** The static log */
private static final Logger staticLog = Logger.getLogger(HornetQTestAdmin.class);
- protected static final ObjectName hornetQJMSServerName;
+ protected final ObjectName hornetQJMSServerName = new ObjectName("org.hornetq:module=JMS,type=Server");
- static
- {
- try
- {
- hornetQJMSServerName = new ObjectName("org.hornetq:module=JMS,type=Server");
- } catch (Throwable e)
- {
- staticLog.warn("Error initializing JMX Name", e);
- throw new NestedRuntimeException(e);
- }
- }
+ protected final ObjectName hornetQCoreServerName = new ObjectName("org.hornetq:module=Core,type=Server");
public HornetQTestAdmin() throws Exception
{
@@ -75,80 +63,101 @@
createQueue(name, "/queue/" + name, securityConfig);
}
- private void addRoles(boolean isTopic, String address, TestRole[] securityConf) throws Exception
+ private void addRoles(String address, TestRole[] securityConf) throws Exception
{
if (securityConf == null || securityConf.length == 0)
{
securityConf = new TestRole[]{ new TestRole("guest", true, true, true) };
}
-
- ObjectName addressManagerON = createAddressManagerON(isTopic, address);
-
- deleteEveryRole(isTopic, address);
-
+
+ String sendRoles = "";
+ String consumeRoles = "";
+ String createDurableQueueRoles = "";
+ String deleteDurableQueueRoles = "";
+ String createTempQueueRoles = "";
+ String deleteTempQueueRoles = "";
+ String manageRoles = "";
+
for (TestRole role : securityConf)
{
-
- try
+ if (role.isSend())
{
- jmx.invoke(addressManagerON, "addRole", new Object[]
- { role.getName(), role.isSend(), role.isConsume(), role.isCreateDurableQueue(), role.isDeleteDurableQueue(), role.isCreateNonDurableQueue(), role.isDeleteNonDurableQueue(), role.isManage() }, new String[]
- { "java.lang.String", "boolean", "boolean", "boolean", "boolean", "boolean", "boolean", "boolean" });
- } catch (Exception ignored)
+ sendRoles += sendRoles.isEmpty() ? role.getName() : "," + role.getName();
+ }
+
+ if (role.isConsume())
{
+ consumeRoles += consumeRoles.isEmpty() ? role.getName() : "," + role.getName();
}
+
+ if (role.isCreateDurableQueue())
+ {
+ createDurableQueueRoles += createDurableQueueRoles.isEmpty() ? role.getName() : "," + role.getName();
+ }
+
+ if (role.isDeleteDurableQueue())
+ {
+ deleteDurableQueueRoles += deleteDurableQueueRoles.isEmpty() ? role.getName() : "," + role.getName();
+ }
+
+ if (role.isCreateNonDurableQueue())
+ {
+ createTempQueueRoles += createTempQueueRoles.isEmpty() ? role.getName() : "," + role.getName();
+ }
+
+ if (role.isDeleteNonDurableQueue())
+ {
+ deleteTempQueueRoles += deleteTempQueueRoles.isEmpty() ? role.getName() : "," + role.getName();
+ }
+
+ if (role.isManage())
+ {
+ manageRoles += manageRoles.isEmpty() ? role.getName() : "," + role.getName();
+ }
}
+
+ jmx.invoke(hornetQCoreServerName, "addSecuritySettings", new Object[]{address, sendRoles, consumeRoles, createDurableQueueRoles,
+ deleteDurableQueueRoles, createTempQueueRoles, deleteTempQueueRoles,
+ manageRoles}, new String[]{String.class.getName(),
+ String.class.getName(), String.class.getName(),
+ String.class.getName(), String.class.getName(),
+ String.class.getName(), String.class.getName(), String.class.getName()});
}
- private void deleteEveryRole(boolean isTopic, String address) throws Exception
- {
- ObjectName addressManagerON = createAddressManagerON(isTopic, address);
-
- Object roles[] = (Object[]) jmx.getAttribute(addressManagerON, "Roles");
-
- for (Object role : roles)
- {
- Object roleArray[] = (Object[]) role;
- jmx.invoke(addressManagerON, "removeRole", new Object[]
- { roleArray[0].toString() }, new String[]
- { "java.lang.String" });
- }
- }
-
- private void resetRoles(boolean isTopic, String address) throws Exception
- {
- ObjectName addressManagerON = createAddressManagerON(isTopic, address);
-
- jmx.invoke(addressManagerON, "resetSecurity", new Object[]
- {}, new String[]
- {});
-
- }
-
/**
+ * @param isTopic
* @param address
* @return
- * @throws MalformedObjectNameException
*/
- private ObjectName createAddressManagerON(boolean isTopic, String address) throws MalformedObjectNameException
+ private String getCoreAddress(boolean isTopic, String address)
{
if (isTopic)
{
- return new ObjectName("org.hornetq:module=Core,name=\"jms.topic." + address + "\",type=Address");
- } else
+ address = "jms.topic." + address;
+ }
+ else
{
- return new ObjectName("org.hornetq:module=Core,name=\"jms.queue." + address + "\",type=Address");
+ address = "jms.queue." + address;
}
+ return address;
}
+ private void resetRoles(boolean isTopic, String address) throws Exception
+ {
+ jmx.invoke(hornetQCoreServerName, "removeSecuritySettings", new Object[]
+ {address}, new String[]
+ {String.class.getName()});
+
+ }
+
public void createQueue(String name, String jndi, TestRole... securityConfig) throws Exception
{
jmx.invoke(hornetQJMSServerName, "createQueue", new Object[]
{ name, jndi }, new String[]
{ "java.lang.String", "java.lang.String" });
- addRoles(false, name, securityConfig);
+ addRoles(getCoreAddress(false, name), securityConfig);
deployedQueues.put(name, securityConfig);
}
@@ -164,7 +173,7 @@
{ name, jndi }, new String[]
{ "java.lang.String", "java.lang.String" });
- addRoles(true, name, securityConfig);
+ addRoles(getCoreAddress(true, name), securityConfig);
deployedTopics.put(name, securityConfig);
}
@@ -173,7 +182,7 @@
{
try
{
- TestRole[] securityConf = deployedQueues.remove(name);
+ deployedQueues.remove(name);
resetRoles(false, name);
invokeDeleteQueue(name);
} catch (Exception e)
@@ -187,7 +196,7 @@
{
try
{
- TestRole[] securityConf = deployedTopics.remove(name);
+ deployedTopics.remove(name);
resetRoles(true, name);
invokeDeleteTopic(name);
} catch (Exception e)
More information about the jboss-cvs-commits
mailing list