package net.jsunit.action;
import net.jsunit.XmlRenderable;
import org.jdom.CDATA;
import org.jdom.Document;
import org.jdom.Element;
import java.io.IOException;
import java.net.URL;
public class FarmServerConfigurationAction extends JsUnitFarmServerAction {
private Element result;
public String execute() throws Exception {
result = new Element("remoteConfigurations");
for (URL url : server.getConfiguration().getRemoteMachineURLs()) {
URL configurationURL = new URL(url.toString() + "/config");
Element configurationElement;
try {
Document document = hitter.hitURL(configurationURL);
configurationElement = document.getRootElement();
configurationElement.detach();
} catch (IOException e) {
configurationElement = new Element("configuration");
configurationElement.setAttribute("failedToConnect", String.valueOf(true));
configurationElement.addContent(new CDATA(e.toString()));
}
addRemoteConfigurationElementToResult(url, configurationElement);
}
return SUCCESS;
}
private void addRemoteConfigurationElementToResult(URL remoteMachineURL, Element configurationElement) {
Element remoteConfigurationElement = new Element("remoteConfiguration");
remoteConfigurationElement.setAttribute("remoteMachineURL", remoteMachineURL.toString());
remoteConfigurationElement.addContent(configurationElement);
result.addContent(remoteConfigurationElement);
}
public XmlRenderable getXmlRenderable() {
return new XmlRenderable() {
public Element asXml() {
return result;
}
};
}
}