if (filter) {
continue;
}
debuggers.put(id, name);
try {
AbstractDebuggerConfiguration configuration = (AbstractDebuggerConfiguration) element
.createExecutableExtension(CONFIGURATION_CLASS_ATTRIBUTE);
configuration.setDebuggerId(id);
configuration.setName(name);
try {
ICommunicationDaemon[] daemons = CommunicationDaemonRegistry
.getBestMatchCommunicationDaemons();
// find the daemon that fits this configuration (match
// by debugger-id)
for (ICommunicationDaemon daemon : daemons) {
if (daemon.isDebuggerDaemon()
&& id.equals(daemon.getDebuggerID())) {
configuration.setCommunicationDaemon(daemon); // Attach
// the
// daemon
// reference
// to
// the
// configuration.
break;
}
}
} catch (Exception e) {
configuration.setPort(-1);
}
configurations.put(id, configuration);
if (!isPDT) {
nonPDTConfigurations.put(id, configuration);
}
} catch (CoreException e) {
Logger.logException(e);
}
}
}
// Override any PDT debugger settings with any extension of debugger
// configuration.
for (Entry<String, AbstractDebuggerConfiguration> entry : nonPDTConfigurations
.entrySet()) {
AbstractDebuggerConfiguration configuration = entry.getValue();
configurations.put(entry.getKey(), configuration);
debuggers.put(configuration.getDebuggerId(),
configuration.getName());
}
}