*/
private Set<String> validateGroups(Set<String> sinkSet) {
Set<String> sinkgroupSet = stringToSet(sinkgroups, " ");
Map<String, String> usedSinks = new HashMap<String, String>();
Iterator<String> iter = sinkgroupSet.iterator();
SinkGroupConfiguration conf;
while (iter.hasNext()) {
String sinkgroupName = iter.next();
Context context = this.sinkGroupContextMap.get(sinkgroupName);
if (context != null) {
try {
conf =
(SinkGroupConfiguration) ComponentConfigurationFactory.create(
sinkgroupName, "sinkgroup", ComponentType.SINKGROUP);
conf.configure(context);
Set<String> groupSinks = validGroupSinks(sinkSet, usedSinks, conf);
if (conf != null) errorList.addAll(conf.getErrors());
if (groupSinks != null && !groupSinks.isEmpty()) {
List<String> sinkArray = new ArrayList<String>();
for (String sink : groupSinks) {
sinkArray.add(sink);
}
conf.setSinks(sinkArray);
sinkgroupConfigMap.put(sinkgroupName, conf);
} else {
errorList.add(new FlumeConfigurationError(agentName, sinkgroupName,
FlumeConfigurationErrorType.CONFIG_ERROR,
ErrorOrWarning.ERROR));
if (conf != null) errorList.addAll(conf.getErrors());
throw new ConfigurationException(
"No available sinks for sinkgroup: " + sinkgroupName
+ ". " + "Sinkgroup will be removed");
}