QPID-8374: [Broker-J][ACL] Allow case insensitive mapping of group members to groups in existing GroupProviders
This closes #42
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/AbstractGroupProvider.java b/broker-core/src/main/java/org/apache/qpid/server/model/AbstractCaseAwareGroupProvider.java
similarity index 81%
rename from broker-core/src/main/java/org/apache/qpid/server/model/AbstractGroupProvider.java
rename to broker-core/src/main/java/org/apache/qpid/server/model/AbstractCaseAwareGroupProvider.java
index 00f97a8..3e248d6 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/AbstractGroupProvider.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/AbstractCaseAwareGroupProvider.java
@@ -22,21 +22,17 @@
import java.util.Map;
-public abstract class AbstractGroupProvider<X extends AbstractGroupProvider<X>>
+public abstract class AbstractCaseAwareGroupProvider<X extends AbstractCaseAwareGroupProvider<X>>
extends AbstractConfiguredObject<X> implements GroupProvider<X>
{
- private final Container<?> _container;
-
@ManagedAttributeField
private boolean _caseSensitive;
- protected AbstractGroupProvider(Container<?> container, Map<String, Object> attributes)
+ protected AbstractCaseAwareGroupProvider(Container<?> container, Map<String, Object> attributes)
{
super(container, attributes);
- _container = container;
}
- @Override
public boolean isCaseSensitive()
{
return _caseSensitive;
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java b/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
index 1dfa3dd..c698c45 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
@@ -27,6 +27,4 @@
{
Set<Principal> getGroupPrincipalsForUser(Principal userPrincipal);
- @ManagedAttribute(defaultValue = "true", description = "Allow to choose CaseSensitive or CaseInsensitive search of Groups and Users")
- boolean isCaseSensitive();
-}
\ No newline at end of file
+}
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java b/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
index e8c1886..7097941 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
@@ -21,12 +21,12 @@
package org.apache.qpid.server.model.adapter;
import org.apache.qpid.server.model.GroupManagingGroupProvider;
-import org.apache.qpid.server.model.GroupProvider;
import org.apache.qpid.server.model.ManagedAttribute;
import org.apache.qpid.server.model.ManagedObject;
+import org.apache.qpid.server.security.CaseAwareGroupProvider;
@ManagedObject( category = false, type = "GroupFile", managesChildren = true )
-public interface FileBasedGroupProvider<X extends FileBasedGroupProvider<X>> extends GroupProvider<X>, GroupManagingGroupProvider
+public interface FileBasedGroupProvider<X extends FileBasedGroupProvider<X>> extends CaseAwareGroupProvider<X>, GroupManagingGroupProvider
{
String PATH="path";
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java b/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
index f08ed53..3d4f0fc 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
@@ -37,6 +37,7 @@
import org.slf4j.LoggerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.AbstractCaseAwareGroupProvider;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Container;
@@ -53,7 +54,7 @@
import org.apache.qpid.server.util.FileHelper;
public class FileBasedGroupProviderImpl
- extends AbstractConfiguredObject<FileBasedGroupProviderImpl> implements FileBasedGroupProvider<FileBasedGroupProviderImpl>
+ extends AbstractCaseAwareGroupProvider<FileBasedGroupProviderImpl> implements FileBasedGroupProvider<FileBasedGroupProviderImpl>
{
public static final String GROUP_FILE_PROVIDER_TYPE = "GroupFile";
private static Logger LOGGER = LoggerFactory.getLogger(FileBasedGroupProviderImpl.class);
@@ -63,9 +64,6 @@
private FileGroupDatabase _groupDatabase;
@ManagedAttributeField
- private boolean _caseSensitive;
-
- @ManagedAttributeField
private String _path;
@ManagedObjectFactoryConstructor
@@ -73,8 +71,6 @@
Container<?> container)
{
super(container, attributes);
-
-
_container = container;
}
@@ -312,12 +308,6 @@
}
}
- @Override
- public boolean isCaseSensitive()
- {
- return _caseSensitive;
- }
-
private class GroupAdapter extends AbstractConfiguredObject<GroupAdapter> implements Group<GroupAdapter>
{
public GroupAdapter(Map<String, Object> attributes)
diff --git a/broker-core/src/main/java/org/apache/qpid/server/security/CaseAwareGroupProvider.java b/broker-core/src/main/java/org/apache/qpid/server/security/CaseAwareGroupProvider.java
new file mode 100644
index 0000000..da0a06b
--- /dev/null
+++ b/broker-core/src/main/java/org/apache/qpid/server/security/CaseAwareGroupProvider.java
@@ -0,0 +1,37 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.security;
+
+import org.apache.qpid.server.model.GroupProvider;
+import org.apache.qpid.server.model.ManagedAttribute;
+import org.apache.qpid.server.model.ManagedContextDefault;
+
+public interface CaseAwareGroupProvider<X extends GroupProvider<X>> extends GroupProvider<X>
+{
+ String GROUP_PROVIDER_CASE_SENSITIVE = "qpid.groupProvider.caseSensitive";
+ @SuppressWarnings("unused")
+ @ManagedContextDefault(name = GROUP_PROVIDER_CASE_SENSITIVE)
+ String DEFAULT_GROUP_PROVIDER_CASE_SENSITIVE = "true";
+
+ @ManagedAttribute(defaultValue = "${" + GROUP_PROVIDER_CASE_SENSITIVE + "}",
+ description = "Allow to choose CaseSensitive or CaseInsensitive search of Groups and Users")
+ boolean isCaseSensitive();
+}
diff --git a/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java b/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java
index 352104d..558225b 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java
@@ -29,21 +29,21 @@
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import org.apache.qpid.server.model.AbstractGroupProvider;
+import org.apache.qpid.server.model.AbstractCaseAwareGroupProvider;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Container;
import org.apache.qpid.server.model.Group;
import org.apache.qpid.server.model.GroupManagingGroupProvider;
import org.apache.qpid.server.model.GroupMember;
-import org.apache.qpid.server.model.GroupProvider;
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
+import org.apache.qpid.server.security.CaseAwareGroupProvider;
@ManagedObject(category = false, type = GroupProviderImpl.CONFIG_TYPE)
-public class GroupProviderImpl extends AbstractGroupProvider<GroupProviderImpl>
- implements GroupProvider<GroupProviderImpl>, GroupManagingGroupProvider
+public class GroupProviderImpl extends AbstractCaseAwareGroupProvider<GroupProviderImpl>
+ implements CaseAwareGroupProvider<GroupProviderImpl>, GroupManagingGroupProvider
{
public static final String CONFIG_TYPE = "ManagedGroupProvider";
diff --git a/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java b/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java
index 99e3212..0e551d1 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java
@@ -49,7 +49,7 @@
import org.slf4j.LoggerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.model.AbstractGroupProvider;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Container;
import org.apache.qpid.server.model.ManagedAttributeField;
@@ -70,7 +70,7 @@
* See the CloudFoundry docs for more information:
* http://docs.cloudfoundry.org/services/dashboard-sso.html#checking-user-permissions
*/
-public class CloudFoundryDashboardManagementGroupProviderImpl extends AbstractGroupProvider<CloudFoundryDashboardManagementGroupProviderImpl>
+public class CloudFoundryDashboardManagementGroupProviderImpl extends AbstractConfiguredObject<CloudFoundryDashboardManagementGroupProviderImpl>
implements CloudFoundryDashboardManagementGroupProvider<CloudFoundryDashboardManagementGroupProviderImpl>
{
private static final Logger LOGGER = LoggerFactory.getLogger(CloudFoundryDashboardManagementGroupProviderImpl.class);
diff --git a/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseCaseInsensitiveTest.java b/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseCaseInsensitiveTest.java
index d393c3a..b712387 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseCaseInsensitiveTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseCaseInsensitiveTest.java
@@ -29,6 +29,7 @@
import java.util.Set;
import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.apache.qpid.test.utils.UnitTestBase;
@@ -44,36 +45,30 @@
private static final String MY_GROUP1 = "myGroup1";
private static final boolean CASE_SENSITIVE = false;
- private static final FileGroupDatabase FILE_GROUP_DATABASE = new FileGroupDatabase(CASE_SENSITIVE);
- private static final GroupProviderUtil UTIL;
- private static final String GROUP_FILE;
+ private FileGroupDatabase _fileGroupDatabase;
+ private GroupProviderUtil _util;
+ private String _groupFile;
- static
+ @Before
+ public void setUp() throws IOException
{
- try
- {
- UTIL = new GroupProviderUtil(FILE_GROUP_DATABASE);
- GROUP_FILE = UTIL.getGroupFile();
- }
- catch (IOException e)
- {
- throw new RuntimeException(e);
- }
+ _fileGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
+ _util = new GroupProviderUtil(_fileGroupDatabase);
+ _groupFile = _util.getGroupFile();
}
@Test
public void testGetUsersInGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2,user3");
- FILE_GROUP_DATABASE.setGroupFile(GROUP_FILE);
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2,user3");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(3, users.size());
- Set<String> users2 = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users2 = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users2);
assertEquals(3, users2.size());
- Set<String> users3 = FILE_GROUP_DATABASE.getUsersInGroup("MyGrouP");
+ Set<String> users3 = _fileGroupDatabase.getUsersInGroup("MyGrouP");
assertNotNull(users3);
assertEquals(3, users3.size());
}
@@ -81,9 +76,9 @@
@Test
public void testDuplicateUsersInGroupAreConflatedCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user1,user3,user1");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user1,user3,user1");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users);
assertEquals(2, users.size());
}
@@ -91,9 +86,9 @@
@Test
public void testGetUsersWithEmptyGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "");
+ _util.writeAndSetGroupFile("myGroup.users", "");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users);
assertTrue(users.isEmpty());
}
@@ -101,14 +96,13 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserBelongsToOneGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
- FILE_GROUP_DATABASE.setGroupFile(GROUP_FILE);
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase());
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1.toUpperCase());
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP));
- Set<String> groups2 = FILE_GROUP_DATABASE.getGroupsForUser("User2");
+ Set<String> groups2 = _fileGroupDatabase.getGroupsForUser("User2");
assertEquals(1, groups2.size());
assertTrue(groups2.contains(MY_GROUP));
}
@@ -116,17 +110,16 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserBelongsToTwoGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2",
- "myGroup1.users", "user1,user3",
- "myGroup2.users", "user2,user3");
- FILE_GROUP_DATABASE.setGroupFile(GROUP_FILE);
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2",
+ "myGroup1.users", "user1,user3",
+ "myGroup2.users", "user2,user3");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase());
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1.toUpperCase());
assertEquals(2, groups.size());
assertTrue(groups.contains(MY_GROUP));
assertTrue(groups.contains(MY_GROUP1));
- Set<String> groups2 = FILE_GROUP_DATABASE.getGroupsForUser("User2");
+ Set<String> groups2 = _fileGroupDatabase.getGroupsForUser("User2");
assertEquals(2, groups2.size());
assertTrue(groups2.contains(MY_GROUP));
assertTrue(groups2.contains(MY_GROUP2));
@@ -135,19 +128,19 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserAddedToGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", USER2);
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase());
+ _util.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", USER2);
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1.toUpperCase());
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP1));
- FILE_GROUP_DATABASE.addUserToGroup(USER1, MY_GROUP2.toUpperCase());
+ _fileGroupDatabase.addUserToGroup(USER1, MY_GROUP2.toUpperCase());
- groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase());
+ groups = _fileGroupDatabase.getGroupsForUser(USER1.toUpperCase());
assertEquals(2, groups.size());
assertTrue(groups.contains(MY_GROUP1));
assertTrue(groups.contains(MY_GROUP2));
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP2.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP2.toUpperCase());
assertEquals(2, users.size());
assertTrue(users.contains(USER1));
assertTrue(users.contains(USER2));
@@ -156,15 +149,15 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserRemovedFromGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ _util.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(2, groups.size());
assertTrue(groups.contains(MY_GROUP1));
assertTrue(groups.contains(MY_GROUP2));
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1, MY_GROUP2);
+ _fileGroupDatabase.removeUserFromGroup(USER1, MY_GROUP2);
- groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP1));
}
@@ -172,15 +165,15 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserAddedToGroupTheyAreAlreadyInCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", USER1);
- FILE_GROUP_DATABASE.addUserToGroup(USER1, MY_GROUP);
+ _util.writeAndSetGroupFile("myGroup.users", USER1);
+ _fileGroupDatabase.addUserToGroup(USER1, MY_GROUP);
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase());
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1.toUpperCase());
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP));
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertEquals(1, users.size());
assertTrue(users.contains(USER1));
}
@@ -188,30 +181,30 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserNotKnownCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER3.toUpperCase());
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER3.toUpperCase());
assertTrue(groups.isEmpty());
}
@Test
public void testGetGroupPrincipalsForNullUserCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile();
- assertTrue(FILE_GROUP_DATABASE.getGroupsForUser(null).isEmpty());
+ _util.writeAndSetGroupFile();
+ assertTrue(_fileGroupDatabase.getGroupsForUser(null).isEmpty());
}
@Test
public void testAddUserToExistingGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users);
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.addUserToGroup(USER3, MY_GROUP);
+ _fileGroupDatabase.addUserToGroup(USER3, MY_GROUP);
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users);
assertEquals(3, users.size());
}
@@ -219,15 +212,15 @@
@Test
public void testAddUserToEmptyGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "");
+ _util.writeAndSetGroupFile("myGroup.users", "");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users);
assertTrue(users.isEmpty());
- FILE_GROUP_DATABASE.addUserToGroup(USER3, MY_GROUP.toUpperCase());
+ _fileGroupDatabase.addUserToGroup(USER3, MY_GROUP.toUpperCase());
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(1, users.size());
}
@@ -235,15 +228,15 @@
@Test
public void testAddUserToNonExistentGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile();
+ _util.writeAndSetGroupFile();
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users);
assertTrue(users.isEmpty());
try
{
- FILE_GROUP_DATABASE.addUserToGroup(USER3, MY_GROUP);
+ _fileGroupDatabase.addUserToGroup(USER3, MY_GROUP);
fail("Expected exception not thrown");
}
catch (IllegalArgumentException e)
@@ -251,7 +244,7 @@
// pass
}
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertTrue(users.isEmpty());
}
@@ -259,15 +252,15 @@
@Test
public void testRemoveUserFromExistingGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertNotNull(users);
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.removeUserFromGroup(USER2.toUpperCase(), MY_GROUP.toUpperCase());
+ _fileGroupDatabase.removeUserFromGroup(USER2.toUpperCase(), MY_GROUP.toUpperCase());
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(1, users.size());
}
@@ -275,11 +268,11 @@
@Test
public void testRemoveUserFromNonexistentGroupCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile();
+ _util.writeAndSetGroupFile();
try
{
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1.toUpperCase(), MY_GROUP);
+ _fileGroupDatabase.removeUserFromGroup(USER1.toUpperCase(), MY_GROUP);
fail("Expected exception not thrown");
}
catch (IllegalArgumentException e)
@@ -287,35 +280,35 @@
// pass
}
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase()).isEmpty());
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase()).isEmpty());
}
@Test
public void testRemoveUserFromGroupTwiceCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", USER1);
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP).contains(USER1));
+ _util.writeAndSetGroupFile("myGroup.users", USER1);
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP).contains(USER1));
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1, MY_GROUP.toUpperCase());
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP).isEmpty());
+ _fileGroupDatabase.removeUserFromGroup(USER1, MY_GROUP.toUpperCase());
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP).isEmpty());
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1.toUpperCase(), MY_GROUP);
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP).isEmpty());
+ _fileGroupDatabase.removeUserFromGroup(USER1.toUpperCase(), MY_GROUP);
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP).isEmpty());
}
@Test
public void testAddUserPersistedToFileCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.addUserToGroup(USER3.toUpperCase(), MY_GROUP);
+ _fileGroupDatabase.addUserToGroup(USER3.toUpperCase(), MY_GROUP);
assertEquals(3, users.size());
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newUsers = newGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertEquals(users.size(), newUsers.size());
@@ -324,16 +317,16 @@
@Test
public void testRemoveUserPersistedToFileCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP.toUpperCase());
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.removeUserFromGroup(USER2.toUpperCase(), MY_GROUP);
+ _fileGroupDatabase.removeUserFromGroup(USER2.toUpperCase(), MY_GROUP);
assertEquals(1, users.size());
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newUsers = newGroupDatabase.getUsersInGroup(MY_GROUP.toUpperCase());
assertEquals(users.size(), newUsers.size());
@@ -342,19 +335,19 @@
@Test
public void testCreateGroupPersistedToFileCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile();
+ _util.writeAndSetGroupFile();
- Set<String> groups = FILE_GROUP_DATABASE.getAllGroups();
+ Set<String> groups = _fileGroupDatabase.getAllGroups();
assertTrue(groups.isEmpty());
- FILE_GROUP_DATABASE.createGroup(MY_GROUP);
+ _fileGroupDatabase.createGroup(MY_GROUP);
- groups = FILE_GROUP_DATABASE.getAllGroups();
+ groups = _fileGroupDatabase.getAllGroups();
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP));
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newGroups = newGroupDatabase.getAllGroups();
assertEquals(1, newGroups.size());
@@ -364,25 +357,25 @@
@Test
public void testRemoveGroupPersistedToFileCaseInsensitive() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getAllGroups();
+ Set<String> groups = _fileGroupDatabase.getAllGroups();
assertEquals(2, groups.size());
- Set<String> groupsForUser1 = FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase());
+ Set<String> groupsForUser1 = _fileGroupDatabase.getGroupsForUser(USER1.toUpperCase());
assertEquals(2, groupsForUser1.size());
- FILE_GROUP_DATABASE.removeGroup(MY_GROUP1.toUpperCase());
+ _fileGroupDatabase.removeGroup(MY_GROUP1.toUpperCase());
- groups = FILE_GROUP_DATABASE.getAllGroups();
+ groups = _fileGroupDatabase.getAllGroups();
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP2));
- groupsForUser1 = FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase());
+ groupsForUser1 = _fileGroupDatabase.getGroupsForUser(USER1.toUpperCase());
assertEquals(1, groupsForUser1.size());
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newGroups = newGroupDatabase.getAllGroups();
assertEquals(1, newGroups.size());
@@ -394,12 +387,11 @@
}
@After
- public void tearDown() throws Exception
+ public void tearDown()
{
-
- if (GROUP_FILE != null)
+ if (_groupFile != null)
{
- File groupFile = new File(GROUP_FILE);
+ File groupFile = new File(_groupFile);
if (groupFile.exists())
{
groupFile.delete();
diff --git a/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java b/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java
index 408fa7d..9d2590d 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java
@@ -26,10 +26,10 @@
import java.io.File;
import java.io.FileNotFoundException;
-import java.io.IOException;
import java.util.Set;
import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.apache.qpid.test.utils.UnitTestBase;
@@ -45,39 +45,32 @@
private static final String MY_GROUP1 = "myGroup1";
private static final boolean CASE_SENSITIVE = true;
- private static final FileGroupDatabase FILE_GROUP_DATABASE = new FileGroupDatabase(CASE_SENSITIVE);
- private static final GroupProviderUtil UTIL;
- private static final String GROUP_FILE;
+ private FileGroupDatabase _fileGroupDatabase;
+ private GroupProviderUtil _util;
+ private String _groupFile;
- static
+ @Before
+ public void setUp() throws Exception
{
- try
- {
- UTIL = new GroupProviderUtil(FILE_GROUP_DATABASE);
- GROUP_FILE = UTIL.getGroupFile();
- }
- catch (IOException e)
- {
- throw new RuntimeException(e);
- }
+ _fileGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
+ _util = new GroupProviderUtil(_fileGroupDatabase);
+ _groupFile = _util.getGroupFile();
}
@Test
public void testGetAllGroups() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", USER1);
+ _util.writeAndSetGroupFile("myGroup.users", USER1);
- Set<String> groups = FILE_GROUP_DATABASE.getAllGroups();
+ Set<String> groups = _fileGroupDatabase.getAllGroups();
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP));
}
@Test
- public void testGetAllGroupsWhenGroupFileEmpty() throws Exception
+ public void testGetAllGroupsWhenGroupFileEmpty()
{
- FILE_GROUP_DATABASE.setGroupFile(UTIL.createEmptyTestGroupFile());
-
- Set<String> groups = FILE_GROUP_DATABASE.getAllGroups();
+ Set<String> groups = _fileGroupDatabase.getAllGroups();
assertTrue(groups.isEmpty());
}
@@ -86,7 +79,7 @@
{
try
{
- FILE_GROUP_DATABASE.setGroupFile("/not/a/file");
+ _fileGroupDatabase.setGroupFile("/not/a/file");
fail("Exception not thrown");
}
catch (FileNotFoundException fnfe)
@@ -98,11 +91,11 @@
@Test
public void testInvalidFormat() throws Exception
{
- UTIL.writeGroupFile("name.notvalid", USER1);
+ _util.writeGroupFile("name.notvalid", USER1);
try
{
- FILE_GROUP_DATABASE.setGroupFile(GROUP_FILE);
+ _fileGroupDatabase.setGroupFile(_groupFile);
fail("Exception not thrown");
}
catch (IllegalArgumentException gde)
@@ -114,11 +107,9 @@
@Test
public void testGetUsersInGroup() throws Exception
{
- UTIL.writeGroupFile("myGroup.users", "user1,user2,user3");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2,user3");
- FILE_GROUP_DATABASE.setGroupFile(GROUP_FILE);
-
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(3, users.size());
}
@@ -126,9 +117,9 @@
@Test
public void testDuplicateUsersInGroupAreConflated() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user1,user3,user1");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user1,user3,user1");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(2, users.size());
}
@@ -136,9 +127,9 @@
@Test
public void testGetUsersWithEmptyGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "");
+ _util.writeAndSetGroupFile("myGroup.users", "");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertTrue(users.isEmpty());
}
@@ -146,9 +137,9 @@
@Test
public void testGetUsersInNonExistentGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2,user3");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2,user3");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup("groupDoesntExist");
+ Set<String> users = _fileGroupDatabase.getUsersInGroup("groupDoesntExist");
assertNotNull(users);
assertTrue(users.isEmpty());
}
@@ -156,15 +147,15 @@
@Test
public void testGetUsersInNullGroup() throws Exception
{
- UTIL.writeAndSetGroupFile();
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(null).isEmpty());
+ _util.writeAndSetGroupFile();
+ assertTrue(_fileGroupDatabase.getUsersInGroup(null).isEmpty());
}
@Test
public void testGetGroupPrincipalsForUserWhenUserBelongsToOneGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP));
}
@@ -172,8 +163,8 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserBelongsToTwoGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user3");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ _util.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user3");
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(2, groups.size());
assertTrue(groups.contains(MY_GROUP1));
assertTrue(groups.contains(MY_GROUP2));
@@ -182,20 +173,20 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserAddedToGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", USER2);
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ _util.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", USER2);
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP1));
- FILE_GROUP_DATABASE.addUserToGroup(USER1, MY_GROUP2);
+ _fileGroupDatabase.addUserToGroup(USER1, MY_GROUP2);
- groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(2, groups.size());
- assertTrue(FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase()).isEmpty());
+ assertTrue(_fileGroupDatabase.getGroupsForUser(USER1.toUpperCase()).isEmpty());
assertTrue(groups.contains(MY_GROUP1));
assertTrue(groups.contains(MY_GROUP2));
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP2);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP2);
assertEquals(2, users.size());
assertTrue(users.contains(USER1));
assertTrue(users.contains(USER2));
@@ -204,98 +195,98 @@
@Test
public void testGetGroupPrincipalsForUserWhenUserRemovedFromGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ _util.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(2, groups.size());
assertTrue(groups.contains(MY_GROUP1));
assertTrue(groups.contains(MY_GROUP2));
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1, MY_GROUP2);
+ _fileGroupDatabase.removeUserFromGroup(USER1, MY_GROUP2);
- groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP1));
- assertTrue(FILE_GROUP_DATABASE.getGroupsForUser(USER1.toUpperCase()).isEmpty());
+ assertTrue(_fileGroupDatabase.getGroupsForUser(USER1.toUpperCase()).isEmpty());
}
@Test
public void testGetGroupPrincipalsForUserWhenUserAddedToGroupTheyAreAlreadyIn() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", USER1);
- FILE_GROUP_DATABASE.addUserToGroup(USER1, MY_GROUP);
+ _util.writeAndSetGroupFile("myGroup.users", USER1);
+ _fileGroupDatabase.addUserToGroup(USER1, MY_GROUP);
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP));
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertEquals(1, users.size());
assertTrue(users.contains(USER1));
- assertTrue(FILE_GROUP_DATABASE.getGroupsForUser(MY_GROUP.toUpperCase()).isEmpty());
+ assertTrue(_fileGroupDatabase.getGroupsForUser(MY_GROUP.toUpperCase()).isEmpty());
}
@Test
public void testGetGroupPrincipalsForUserWhenUserNotKnown() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getGroupsForUser(USER3);
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ Set<String> groups = _fileGroupDatabase.getGroupsForUser(USER3);
assertTrue(groups.isEmpty());
}
@Test
public void testGetGroupPrincipalsForNullUser() throws Exception
{
- UTIL.writeAndSetGroupFile();
- assertTrue(FILE_GROUP_DATABASE.getGroupsForUser(null).isEmpty());
+ _util.writeAndSetGroupFile();
+ assertTrue(_fileGroupDatabase.getGroupsForUser(null).isEmpty());
}
@Test
public void testAddUserToExistingGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.addUserToGroup(USER3, MY_GROUP);
+ _fileGroupDatabase.addUserToGroup(USER3, MY_GROUP);
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(3, users.size());
- assertTrue(FILE_GROUP_DATABASE.getGroupsForUser(MY_GROUP.toUpperCase()).isEmpty());
+ assertTrue(_fileGroupDatabase.getGroupsForUser(MY_GROUP.toUpperCase()).isEmpty());
}
@Test
public void testAddUserToEmptyGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "");
+ _util.writeAndSetGroupFile("myGroup.users", "");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertTrue(users.isEmpty());
- FILE_GROUP_DATABASE.addUserToGroup(USER3, MY_GROUP);
+ _fileGroupDatabase.addUserToGroup(USER3, MY_GROUP);
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(1, users.size());
- assertTrue(FILE_GROUP_DATABASE.getGroupsForUser(MY_GROUP.toUpperCase()).isEmpty());
+ assertTrue(_fileGroupDatabase.getGroupsForUser(MY_GROUP.toUpperCase()).isEmpty());
}
@Test
public void testAddUserToNonExistentGroup() throws Exception
{
- UTIL.writeAndSetGroupFile();
+ _util.writeAndSetGroupFile();
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertTrue(users.isEmpty());
try
{
- FILE_GROUP_DATABASE.addUserToGroup(USER3, MY_GROUP);
+ _fileGroupDatabase.addUserToGroup(USER3, MY_GROUP);
fail("Expected exception not thrown");
}
catch (IllegalArgumentException e)
@@ -303,7 +294,7 @@
// pass
}
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertTrue(users.isEmpty());
}
@@ -311,15 +302,15 @@
@Test
public void testRemoveUserFromExistingGroup() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.removeUserFromGroup(USER2, MY_GROUP);
+ _fileGroupDatabase.removeUserFromGroup(USER2, MY_GROUP);
- users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertNotNull(users);
assertEquals(1, users.size());
}
@@ -327,11 +318,11 @@
@Test
public void testRemoveUserFromNonexistentGroup() throws Exception
{
- UTIL.writeAndSetGroupFile();
+ _util.writeAndSetGroupFile();
try
{
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1, MY_GROUP);
+ _fileGroupDatabase.removeUserFromGroup(USER1, MY_GROUP);
fail("Expected exception not thrown");
}
catch (IllegalArgumentException e)
@@ -339,35 +330,35 @@
// pass
}
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP).isEmpty());
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP).isEmpty());
}
@Test
public void testRemoveUserFromGroupTwice() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", USER1);
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP).contains(USER1));
+ _util.writeAndSetGroupFile("myGroup.users", USER1);
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP).contains(USER1));
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1, MY_GROUP);
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP).isEmpty());
+ _fileGroupDatabase.removeUserFromGroup(USER1, MY_GROUP);
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP).isEmpty());
- FILE_GROUP_DATABASE.removeUserFromGroup(USER1, MY_GROUP);
- assertTrue(FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP).isEmpty());
+ _fileGroupDatabase.removeUserFromGroup(USER1, MY_GROUP);
+ assertTrue(_fileGroupDatabase.getUsersInGroup(MY_GROUP).isEmpty());
}
@Test
public void testAddUserPersistedToFile() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.addUserToGroup(USER3, MY_GROUP);
+ _fileGroupDatabase.addUserToGroup(USER3, MY_GROUP);
assertEquals(3, users.size());
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newUsers = newGroupDatabase.getUsersInGroup(MY_GROUP);
assertEquals(users.size(), newUsers.size());
@@ -376,16 +367,16 @@
@Test
public void testRemoveUserPersistedToFile() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup.users", "user1,user2");
- Set<String> users = FILE_GROUP_DATABASE.getUsersInGroup(MY_GROUP);
+ Set<String> users = _fileGroupDatabase.getUsersInGroup(MY_GROUP);
assertEquals(2, users.size());
- FILE_GROUP_DATABASE.removeUserFromGroup(USER2, MY_GROUP);
+ _fileGroupDatabase.removeUserFromGroup(USER2, MY_GROUP);
assertEquals(1, users.size());
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newUsers = newGroupDatabase.getUsersInGroup(MY_GROUP);
assertEquals(users.size(), newUsers.size());
@@ -394,19 +385,19 @@
@Test
public void testCreateGroupPersistedToFile() throws Exception
{
- UTIL.writeAndSetGroupFile();
+ _util.writeAndSetGroupFile();
- Set<String> groups = FILE_GROUP_DATABASE.getAllGroups();
+ Set<String> groups = _fileGroupDatabase.getAllGroups();
assertTrue(groups.isEmpty());
- FILE_GROUP_DATABASE.createGroup(MY_GROUP);
+ _fileGroupDatabase.createGroup(MY_GROUP);
- groups = FILE_GROUP_DATABASE.getAllGroups();
+ groups = _fileGroupDatabase.getAllGroups();
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP));
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newGroups = newGroupDatabase.getAllGroups();
assertEquals(1, newGroups.size());
@@ -416,25 +407,25 @@
@Test
public void testRemoveGroupPersistedToFile() throws Exception
{
- UTIL.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
+ _util.writeAndSetGroupFile("myGroup1.users", "user1,user2", "myGroup2.users", "user1,user2");
- Set<String> groups = FILE_GROUP_DATABASE.getAllGroups();
+ Set<String> groups = _fileGroupDatabase.getAllGroups();
assertEquals(2, groups.size());
- Set<String> groupsForUser1 = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ Set<String> groupsForUser1 = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(2, groupsForUser1.size());
- FILE_GROUP_DATABASE.removeGroup(MY_GROUP1);
+ _fileGroupDatabase.removeGroup(MY_GROUP1);
- groups = FILE_GROUP_DATABASE.getAllGroups();
+ groups = _fileGroupDatabase.getAllGroups();
assertEquals(1, groups.size());
assertTrue(groups.contains(MY_GROUP2));
- groupsForUser1 = FILE_GROUP_DATABASE.getGroupsForUser(USER1);
+ groupsForUser1 = _fileGroupDatabase.getGroupsForUser(USER1);
assertEquals(1, groupsForUser1.size());
FileGroupDatabase newGroupDatabase = new FileGroupDatabase(CASE_SENSITIVE);
- newGroupDatabase.setGroupFile(GROUP_FILE);
+ newGroupDatabase.setGroupFile(_groupFile);
Set<String> newGroups = newGroupDatabase.getAllGroups();
assertEquals(1, newGroups.size());
@@ -446,12 +437,11 @@
}
@After
- public void tearDown() throws Exception
+ public void tearDown()
{
-
- if (GROUP_FILE != null)
+ if (_groupFile != null)
{
- File groupFile = new File(GROUP_FILE);
+ File groupFile = new File(_groupFile);
if (groupFile.exists())
{
groupFile.delete();
diff --git a/broker-plugins/management-http/src/main/java/resources/addGroupProvider.html b/broker-plugins/management-http/src/main/java/resources/addGroupProvider.html
index 03dc091..db5df79 100644
--- a/broker-plugins/management-http/src/main/java/resources/addGroupProvider.html
+++ b/broker-plugins/management-http/src/main/java/resources/addGroupProvider.html
@@ -50,20 +50,6 @@
</div>
</div>
<div class="clear">
- <div class="formLabel-labelCell">Case Sensitive Group Search:</div>
- <div class="tableContainer-valueCell formLabel-controlCell">
- <input type="checkbox" id="addGroupProvider.caseSensitive" checked="checked" value="on"
- data-dojo-type="dijit/form/CheckBox"
- data-dojo-props="
- name: 'caseSensitive',
- checked: true,
- required: false,
- placeHolder: 'group provider caseSensitive',
- searchAttr: 'caseSensitive',
- title: 'Case Sensitive/Insensitive Search'"/>
- </div>
- </div>
- <div class="clear">
<div id="addGroupProvider.typeFields"></div>
</div>
<div class="editorPanel clear"
diff --git a/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/add.html b/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/add.html
index 7fc458c..52c30d4 100644
--- a/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/add.html
+++ b/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/add.html
@@ -32,6 +32,20 @@
promptMessage: 'Enter path to file with groups'"/>
</div>
</div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Case Sensitive Group Search:</div>
+ <div class="tableContainer-valueCell formLabel-controlCell">
+ <input type="checkbox" class="caseSensitive"
+ data-dojo-type="dijit/form/CheckBox"
+ data-dojo-props="
+ name: 'caseSensitive',
+ checked: true,
+ required: false,
+ placeHolder: 'group provider caseSensitive',
+ searchAttr: 'caseSensitive',
+ title: 'Case Sensitive/Insensitive Search'"/>
+ </div>
+ </div>
<div class="clear"></div>
</div>
diff --git a/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/show.html b/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/show.html
index 740c65f..0319e98 100644
--- a/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/show.html
+++ b/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/show.html
@@ -21,5 +21,9 @@
<div class="formLabel-labelCell">Path to file:</div>
<div ><span class="path" ></span></div>
</div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Case Sensitive Group Search:</div>
+ <div class="formValue-valueCell caseSensitive"></div>
+ </div>
<div class="clear"></div>
</div>
diff --git a/broker-plugins/management-http/src/main/java/resources/groupprovider/managedgroupprovider/add.html b/broker-plugins/management-http/src/main/java/resources/groupprovider/managedgroupprovider/add.html
new file mode 100644
index 0000000..ec8e0b1
--- /dev/null
+++ b/broker-plugins/management-http/src/main/java/resources/groupprovider/managedgroupprovider/add.html
@@ -0,0 +1,38 @@
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements. See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership. The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License. You may obtain a copy of the License at
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied. See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+ -->
+<div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Case Sensitive Group Search:</div>
+ <div class="tableContainer-valueCell formLabel-controlCell">
+ <input type="checkbox" class="caseSensitive"
+ data-dojo-type="dijit/form/CheckBox"
+ data-dojo-props="
+ name: 'caseSensitive',
+ checked: true,
+ required: false,
+ placeHolder: 'group provider caseSensitive',
+ searchAttr: 'caseSensitive',
+ title: 'Case Sensitive/Insensitive Search'"/>
+ </div>
+ </div>
+
+ <div class="clear"></div>
+</div>
diff --git a/broker-plugins/management-http/src/main/java/resources/groupprovider/managedgroupprovider/show.html b/broker-plugins/management-http/src/main/java/resources/groupprovider/managedgroupprovider/show.html
new file mode 100644
index 0000000..a2997ef
--- /dev/null
+++ b/broker-plugins/management-http/src/main/java/resources/groupprovider/managedgroupprovider/show.html
@@ -0,0 +1,25 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Case Sensitive Group Search:</div>
+ <div class="formValue-valueCell caseSensitive"></div>
+ </div>
+ <div class="clear"></div>
+</div>
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
index db89e74..3cef2b7 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
@@ -528,7 +528,7 @@
}
}
return object1 === object2;
- }
+ };
util.parseHtmlIntoDiv = function (containerNode, htmlTemplateLocation, postParseCallback)
{
@@ -586,6 +586,7 @@
var fieldNode = obj[fieldName];
if (fieldNode)
{
+ var formatter = null;
if (formatters && fieldNode.className)
{
var clazzes = fieldNode.className.split(" ");
@@ -593,17 +594,41 @@
{
var clazz = clazzes[idx];
var fmt = formatters[clazz];
- if (fmt && value)
+ if (!!fmt)
{
- value = fmt(value);
+ formatter = fmt;
+ break;
}
}
}
- fieldNode.innerHTML = (value == undefined || value == null) ? "" : entities.encode(String(value));
+ var innerHtml = "";
+ if (value !== undefined && value !== null)
+ {
+ innerHtml = formatter === null ? entities.encode(String(value)) : formatter(value);
+ }
+ fieldNode.innerHTML = innerHtml;
}
}
};
+ util.getTypeFields = function (metadata, category, type)
+ {
+ var fields = [];
+ var typeMeta = metadata.getMetaData(category, type);
+ if (!!typeMeta)
+ {
+ var attributes = typeMeta.attributes;
+ for (var name in attributes)
+ {
+ if (attributes.hasOwnProperty(name))
+ {
+ fields.push(name);
+ }
+ }
+ }
+ return fields;
+ };
+
util.applyMetadataToWidgets = function (domRoot, category, type, meta)
{
this.applyToWidgets(domRoot, category, type, null, meta);
@@ -776,7 +801,7 @@
util.setMultiSelectOptions = function (multiSelectWidget, options)
{
util.addMultiSelectOptions(multiSelectWidget, options, true);
- }
+ };
util.addMultiSelectOptions = function (multiSelectWidget, options, clearExistingOptions)
{
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
index 3f86f62..3eba8fc 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
@@ -109,12 +109,12 @@
// Stash the default value and initial value so we can later differentiate
// when sending updates to the server
- if (defaultValue)
+ if (defaultValue !== null && defaultValue !== undefined)
{
widget.defaultValue = defaultValue;
}
- if (dataValue)
+ if (dataValue !== null && dataValue !== undefined)
{
widget.initialValue = dataValue;
}
@@ -180,6 +180,21 @@
}
}
},
+ _setDefaults: function (widget, category, type, data, meta, effectiveData)
+ {
+ if (!!widget.name)
+ {
+ var defaultValue = meta.getDefaultValueForAttribute(category, type, widget.name);
+ if (defaultValue !== null && defaultValue !== undefined)
+ {
+ widget.defaultValue = defaultValue;
+ if ( widget instanceof dijit.form.CheckBox)
+ {
+ widget.set("checked", defaultValue);
+ }
+ }
+ }
+ },
config: function (widget, category, type, data, meta, effectiveData)
{
this._processWidgetPrompt(widget, category, type, meta);
@@ -187,6 +202,10 @@
{
this._processWidgetValue(widget, category, type, data, meta, effectiveData);
}
+ else
+ {
+ this._setDefaults(widget, category, type, data, meta);
+ }
},
disableIfImmutable: function (widget, category, type, meta)
{
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
index ac57fab..f0f8be1 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
@@ -820,19 +820,11 @@
}, {
name: "State",
field: "state",
- width: "20%"
+ width: "30%"
}, {
name: "Type",
field: "type",
- width: "20%"
- }, {
- name: "Case Sensitive Group Search",
- field: "caseSensitive",
- width: "20%",
- formatter: function (val)
- {
- return "<input type='checkbox' disabled='disabled'" + (val ? "checked='checked'" : "") + " />";
- }
+ width: "30%"
}], function (obj)
{
connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt)
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js
index 9862246..a9c1a37 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js
@@ -23,6 +23,7 @@
"dojo/_base/connect",
"dojo/_base/array",
"dojo/_base/event",
+ "dojo/dom-construct",
"qpid/common/properties",
"qpid/common/updater",
"qpid/common/util",
@@ -40,6 +41,7 @@
connect,
array,
event,
+ construct,
properties,
updater,
util,
@@ -106,12 +108,13 @@
var type = this.groupProviderUpdater.groupProviderData.type;
var providerDetailsNode = query(".providerDetails", contentPane.containerNode)[0];
+ var detailsNode = construct.create("div", null, providerDetailsNode, "last");
require(["qpid/management/groupprovider/" + encodeURIComponent(type.toLowerCase()) + "/show"],
function (DetailsUI)
{
that.groupProviderUpdater.details = new DetailsUI({
- containerNode: providerDetailsNode,
+ containerNode: detailsNode,
parent: that
});
that.groupProviderUpdater.details.update(that.groupProviderUpdater.groupProviderData);
@@ -185,7 +188,6 @@
this.name = query(".name", node)[0];
this.type = query(".type", node)[0];
this.state = query(".state", node)[0];
- this.caseSensitive = query(".caseSensitive", node)[0];
this.managedInterfaces = {};
this.details = null;
}
@@ -195,8 +197,6 @@
this.name.innerHTML = entities.encode(String(this.groupProviderData["name"]));
this.type.innerHTML = entities.encode(String(this.groupProviderData["type"]));
this.state.innerHTML = entities.encode(String(this.groupProviderData["state"]));
- this.caseSensitive.innerHTML = "<input type='checkbox' disabled='disabled'" +
- (this.groupProviderData["caseSensitive"] ? "checked='checked'" : "") + " />";
};
GroupProviderUpdater.prototype.update = function (callback)
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
index 8975516..f8b0de0 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
@@ -200,11 +200,13 @@
typeUI.show({
containerNode: that.groupProviderTypeFieldsContainer,
parent: that,
- data: that.initialData
+ data: that.initialData,
+ metadata: that.management.metadata
});
- util.applyMetadataToWidgets(that.groupProviderTypeFieldsContainer,
+ util.applyToWidgets(that.groupProviderTypeFieldsContainer,
"GroupProvider",
type,
+ that.initialData,
that.management.metadata);
}
catch (e)
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/cloudfoundrydashboardmanagement/show.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/cloudfoundrydashboardmanagement/show.js
index 93751cd..257e12d 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/cloudfoundrydashboardmanagement/show.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/cloudfoundrydashboardmanagement/show.js
@@ -42,13 +42,16 @@
for (var serviceInstanceId in data.serviceToManagementGroupMapping)
{
tableContent += "<tr><td>" + entities.encode(serviceInstanceId) + "</td><td>: " + entities.encode(
- data.serviceToManagementGroupMapping[serviceInstanceId]) + "</td></tr>\n";
+ data.serviceToManagementGroupMapping[serviceInstanceId]) + "</td></tr>\n";
}
var table = query(".serviceToManagementGroupMappingTable", this.containerNode)[0];
- table.innerHTML = tableContent;
+ if (typeof table != "undefined")
+ {
+ table.innerHTML = tableContent;
+ }
}
util.updateUI(data, fieldNames, this);
- }
+ };
return GroupProvider;
});
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/add.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/add.js
index 3a13daa..d65ff0c 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/add.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/add.js
@@ -18,12 +18,10 @@
* under the License.
*
*/
-define(["dojo/dom",
- "dojo/query",
- "dojo/_base/array",
+define(["dojo/query",
"dijit/registry",
"qpid/common/util",
- "dojo/text!groupprovider/groupfile/add.html"], function (dom, query, array, registry, util, template)
+ "dojo/text!groupprovider/groupfile/add.html"], function (query, registry, util, template)
{
return {
@@ -33,8 +31,13 @@
util.parse(data.containerNode, template, function ()
{
var pathWidget = registry.byNode(query(".addGroupProviderPath", data.containerNode)[0]);
- pathWidget.set("disabled", data.data && data.data.id ? true : false);
- pathWidget.set("value", data.data ? data.data.path : "");
+ pathWidget.set("disabled", !!(data.data && data.data.id));
+ pathWidget.set("value", data.data ? data.data.path : "");
+
+ var caseSensitiveWidget = registry.byNode(query(".caseSensitive", data.containerNode)[0]);
+ caseSensitiveWidget.set("checked", data.data && data.data.caseSensitive);
+
+ util.applyToWidgets(data.containerNode, "GroupProvider", "GroupFile", data.data, data.metadata);
});
}
};
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/show.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/show.js
index 7e6bd64..c630082 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/show.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/show.js
@@ -18,18 +18,20 @@
* under the License.
*
*/
-define(["qpid/common/util", "dojo/domReady!"], function (util)
+define(["qpid/common/util", "dijit/form/CheckBox", "dojo/domReady!"], function (util)
{
+ var fieldNames;
function GroupFile(data)
{
- util.buildUI(data.containerNode, data.parent, "groupprovider/groupfile/show.html", ["path"], this);
+ fieldNames = util.getTypeFields(data.parent.management.metadata, "GroupProvider", "GroupFile");
+ util.buildUI(data.containerNode, data.parent, "groupprovider/groupfile/show.html", fieldNames, this);
}
GroupFile.prototype.update = function (data)
{
- util.updateUI(data, ["path"], this);
- }
+ util.updateUI(data, fieldNames, this, {"caseSensitive": util.buildCheckboxMarkup});
+ };
return GroupFile;
});
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/add.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/add.js
index 3ef44d8..5fd34cc 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/add.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/add.js
@@ -18,11 +18,23 @@
* under the License.
*
*/
-define([], function ()
+define(["dojo/query",
+ "dijit/registry",
+ "qpid/common/util",
+ "dojo/text!groupprovider/managedgroupprovider/add.html"], function (query, registry, util, template)
{
+
return {
show: function (data)
- { /* nothing to do */
+ {
+ var that = this;
+ util.parse(data.containerNode, template, function ()
+ {
+ var caseSensitiveWidget = registry.byNode(query(".caseSensitive", data.containerNode)[0]);
+ caseSensitiveWidget.set("checked", data.data && data.data.caseSensitive);
+
+ util.applyToWidgets(data.containerNode, "GroupProvider", "ManagedGroupProvider", data.data, data.metadata);
+ });
}
};
});
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/show.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/show.js
index eaf8104..418d270 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/show.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/show.js
@@ -18,16 +18,21 @@
* under the License.
*
*/
-define([], function ()
+define(["qpid/common/util", "dijit/form/CheckBox", "dojo/domReady!"], function (util)
{
+ var fieldNames;
+
function ManagedGroupProvider(data)
{
+ fieldNames = util.getTypeFields(data.parent.management.metadata, "GroupProvider", "ManagedGroupProvider");
+ util.buildUI(data.containerNode, data.parent, "groupprovider/managedgroupprovider/show.html", fieldNames, this);
}
ManagedGroupProvider.prototype.update = function (data)
{
- }
+ util.updateUI(data, fieldNames, this, {"caseSensitive": util.buildCheckboxMarkup});
+ };
return ManagedGroupProvider;
});
diff --git a/broker-plugins/management-http/src/main/java/resources/showGroupProvider.html b/broker-plugins/management-http/src/main/java/resources/showGroupProvider.html
index de3b84f..039c6e9 100644
--- a/broker-plugins/management-http/src/main/java/resources/showGroupProvider.html
+++ b/broker-plugins/management-http/src/main/java/resources/showGroupProvider.html
@@ -32,10 +32,6 @@
<div class="formLabel-labelCell">State:</div>
<div class="formValue-valueCell state"></div>
</div>
- <div class="clear">
- <div class="formLabel-labelCell">Case Sensitive Group Search:</div>
- <div class="formValue-valueCell caseSensitive"></div>
- </div>
<div class="clear"></div>
<div class="providerDetails"></div>