/** * Add the {@link Group} list to the result. * * @param result the result where to add the group list. */ public void addGroupListToResult(ManageGroupResult result) { Set<Group> groups = groupManager.listAllGroups(); for (Group g : groups) { if (g.getName() != null && !g.getName().isEmpty()) { result.getGroups().add(g); } } }
@Override public Set<String> listGroupNames(Node node) { Set<String> names = new HashSet<String>(); ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); Map<String, Group> groups = listGroups(); if (groups != null && !groups.isEmpty()) { for (Group group : groups.values()) { if (group.getNodes().contains(node)) { names.add(group.getName()); } } } } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } return names; }
@Override public Map<String, Group> listGroups() { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Map<String, Group> res = new HashMap<String, Group>(); Thread.currentThread().setContextClassLoader(combinedClassLoader); Map<Node, Set<String>> nodes = getClusterGroups(); Set<String> groups = convertStringToSet((String) localConfig.get(Configurations.GROUPS_KEY)); groups.add(Configurations.DEFAULT_GROUP_NAME); for (String groupName : groups) { Group group = new Group(groupName); res.put(groupName, group); for (Map.Entry<Node, Set<String>> entry : nodes.entrySet()) { if (entry.getValue().contains(groupName)) { group.getNodes().add(entry.getKey()); } } } return res; } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
/** * List the nodes in a given cluster group. * * @param group the cluster group. * @return a Set with the nodes. */ @Override public Set<Node> listNodesByGroup(Group group) { return group.getNodes(); }
@Override public void registerGroup(String groupName) { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); registerGroup(new Group(groupName)); } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
/** * List the nodes in a given cluster group. * * @param group the cluster group. * @return a Set with the nodes. */ @Override public Set<Node> listNodesByGroup(Group group) { return group.getNodes(); }
@Override public void registerGroup(String groupName) { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); registerGroup(new Group(groupName)); } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
/** * Add the {@link Group} list to the result. * * @param result the result where to add the group list. */ public void addGroupListToResult(ManageGroupResult result) { Set<Group> groups = groupManager.listAllGroups(); for (Group g : groups) { if (g.getName() != null && !g.getName().isEmpty()) { result.getGroups().add(g); } } }
@Override public Set<String> listGroupNames(Node node) { Set<String> names = new HashSet<String>(); ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); Map<String, Group> groups = listGroups(); if (groups != null && !groups.isEmpty()) { for (Group group : groups.values()) { if (group.getNodes().contains(node)) { names.add(group.getName()); } } } } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } return names; }
/** * Add cluster groups where the local node is belonging. * * @param group the cluster group candidate for completion. * @return true if the cluster group has been accepted, false else. */ @Override protected boolean acceptsGroup(Group group) { Node node = groupManager.getNode(); if (group.getNodes().contains(node)) return true; else return false; }
@Override public Map<String, Group> listGroups() { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Map<String, Group> res = new HashMap<String, Group>(); Thread.currentThread().setContextClassLoader(combinedClassLoader); Map<Node, Set<String>> nodes = getClusterGroups(); Set<String> groups = convertStringToSet((String) localConfig.get(Configurations.GROUPS_KEY)); groups.add(Configurations.DEFAULT_GROUP_NAME); for (String groupName : groups) { Group group = new Group(groupName); res.put(groupName, group); for (Map.Entry<Node, Set<String>> entry : nodes.entrySet()) { if (entry.getValue().contains(groupName)) { group.getNodes().add(entry.getKey()); } } } return res; } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
@Override public Group createGroup(String groupName) { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); Map<String, Group> listGroups = listGroups(); Group group = listGroups.get(groupName); if (group == null) { group = new Group(groupName); try { Configuration configuration = getConfigurationForGroups(); if (configuration != null) { Dictionary<String, Object> properties = configuration.getProperties(); if (properties != null && !properties.isEmpty()) { properties = copyGroupConfiguration(Configurations.DEFAULT_GROUP_NAME + '.', groupName + '.', properties); Set<String> groups = convertStringToSet((String) properties.get(Configurations.GROUPS_KEY)); groups.add(groupName); properties.put(Configurations.GROUPS_KEY, convertSetToString(groups)); updateConfiguration(configuration, properties); } } } catch (IOException e) { LOGGER.error("CELLAR HAZELCAST: failed to update cluster group configuration", e); } } return group; } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
@Override public boolean isLocalGroup(String groupName) { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); Set<Group> localGroups = this.listLocalGroups(); for (Group localGroup : localGroups) { if (localGroup.getName().equals(groupName)) { return true; } } return false; } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
try { Thread.currentThread().setContextClassLoader(combinedClassLoader); String groupName = group.getName(); group.getNodes().remove(getNode()); listGroups().put(groupName, group); group.getNodes().add(node); Map<Node, Set<String>> map = getClusterGroups(); Set<String> groupNames = (Set<String>) map.get(node);
/** * Accept the cluster groups which don't include the local node. * * @param group the cluster group to check. * @return true if the cluster group doesn't include the local node, false else. */ @Override protected boolean acceptsGroup(Group group) { Node node = groupManager.getNode(); if (group.getNodes().contains(node)) return false; else return true; }
@Override public Group createGroup(String groupName) { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); Map<String, Group> listGroups = listGroups(); Group group = listGroups.get(groupName); if (group == null) { group = new Group(groupName); try { Configuration configuration = getConfigurationForGroups(); if (configuration != null) { Dictionary<String, Object> properties = configuration.getProperties(); if (properties != null && !properties.isEmpty()) { properties = copyGroupConfiguration(Configurations.DEFAULT_GROUP_NAME + '.', groupName + '.', properties); Set<String> groups = convertStringToSet((String) properties.get(Configurations.GROUPS_KEY)); groups.add(groupName); properties.put(Configurations.GROUPS_KEY, convertSetToString(groups)); updateConfiguration(configuration, properties); } } } catch (IOException e) { LOGGER.error("CELLAR HAZELCAST: failed to update cluster group configuration", e); } } return group; } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
@Override public boolean isLocalGroup(String groupName) { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(combinedClassLoader); Set<Group> localGroups = this.listLocalGroups(); for (Group localGroup : localGroups) { if (localGroup.getName().equals(groupName)) { return true; } } return false; } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } }
try { Thread.currentThread().setContextClassLoader(combinedClassLoader); String groupName = group.getName(); group.getNodes().remove(getNode()); listGroups().put(groupName, group); group.getNodes().add(node); Map<Node, Set<String>> map = getClusterGroups(); Set<String> groupNames = (Set<String>) map.get(node);
/** * Accept the cluster groups which don't include the local node. * * @param group the cluster group to check. * @return true if the cluster group doesn't include the local node, false else. */ @Override protected boolean acceptsGroup(Group group) { Node node = groupManager.getNode(); if (group.getNodes().contains(node)) return false; else return true; }
private void updateSync(String resource, Group group, String policy) throws Exception { System.out.print("\t" + resource + ": "); Configuration configuration = configurationAdmin.getConfiguration(Configurations.GROUP, null); if (configuration != null) { Dictionary properties = configuration.getProperties(); if (properties == null) properties = new Properties(); properties.put(group.getName() + "." + resource + ".sync", policy); configuration.update(properties); System.out.println("done"); } }