/**
* @author David Roden <droden@gmail.com>
- * @version $Id: Configuration.java 418 2006-03-29 17:49:16Z bombe $
+ * @version $Id$
*/
public class Configuration {
private SimpleXML rootNode;
public Configuration() {
- filename = System.getProperty("user.home") + "/.jSite/config7";
- lockFilename = System.getProperty("user.home") + "/.jSite/lock7";
+ this(System.getProperty("user.home") + "/.jSite/config7");
+ }
+
+ public Configuration(String filename) {
+ this(filename, filename + ".lock");
+ }
+
+ public Configuration(String filename, String lockFilename) {
+ this.filename = filename;
+ this.lockFilename = lockFilename;
readConfiguration();
}
private boolean createConfigDirectory() {
- File configDirectory = new File(System.getProperty("user.home"), ".jSite");
+ File configDirectory = new File(filename).getAbsoluteFile().getParentFile();
return (configDirectory.exists() && configDirectory.isDirectory()) || configDirectory.mkdirs();
}
public boolean save() {
File configurationFile = new File(filename);
if (!configurationFile.exists()) {
- File configurationFilePath = configurationFile.getParentFile();
+ File configurationFilePath = configurationFile.getAbsoluteFile().getParentFile();
if (!configurationFilePath.exists() && !configurationFilePath.mkdirs()) {
return false;
}
return Boolean.parseBoolean(nodeValue);
}
+ /**
+ * Returns the hostname of the node.
+ * @return The hostname of the node
+ * @deprecated Use {@link #getSelectedNode()} instead
+ */
+ @Deprecated
public String getNodeAddress() {
return getNodeValue(new String[] { "node-address" }, "localhost");
}
+ /**
+ * Sets the hostname of the node.
+ * @param nodeAddress The hostname of the node
+ * @deprecated Use {@link #setSelectedNode(Node)} instead
+ */
+ @Deprecated
public void setNodeAddress(String nodeAddress) {
rootNode.replace("node-address", nodeAddress);
}
+ /**
+ * The port number of the node
+ * @return The port number of the node
+ * @deprecated Use {@link #getSelectedNode()} instead.
+ */
+ @Deprecated
public int getNodePort() {
return getNodeIntValue(new String[] { "node-port" }, 9481);
}
+ /**
+ * Sets the port number of the node.
+ * @param nodePort The port number of the node
+ * @deprecated Use {@link #setSelectedNode(Node)} instead
+ */
+ @Deprecated
public void setNodePort(int nodePort) {
rootNode.replace("node-port", String.valueOf(nodePort));
}
if (nodesNode == null) {
String hostname = getNodeAddress();
int port = getNodePort();
+ if (hostname == null) {
+ hostname = "127.0.0.1";
+ port = 9481;
+ }
return new Node[] { new Node(hostname, port, "Node") };
}
SimpleXML[] nodeNodes = nodesNode.getNodes("node");
public Node getSelectedNode() {
SimpleXML selectedNodeNode = rootNode.getNode("selected-node");
if (selectedNodeNode == null) {
- return null;
+ String hostname = getNodeAddress();
+ int port = getNodePort();
+ if (hostname == null) {
+ hostname = "127.0.0.1";
+ port = 9481;
+ }
+ return new Node(hostname, port, "Node");
}
String name = selectedNodeNode.getNode("name").getValue();
String hostname = selectedNodeNode.getNode("hostname").getValue();