X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FConfiguration.java;h=61803a660f439b7f835b3b7e294e043983e7aef9;hb=3b53ea254e50420df8fe2ea9121855d600560f88;hp=49f107b8281707ca05c7ed6505aeb2b79d3fc380;hpb=ea1f1cf3741c2e21edcbc6127e6e171b125cff2b;p=jSite.git diff --git a/src/de/todesbaum/jsite/main/Configuration.java b/src/de/todesbaum/jsite/main/Configuration.java index 49f107b..61803a6 100644 --- a/src/de/todesbaum/jsite/main/Configuration.java +++ b/src/de/todesbaum/jsite/main/Configuration.java @@ -44,7 +44,7 @@ import de.todesbaum.util.xml.XML; /** * The configuration. - * + * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ public class Configuration { @@ -68,7 +68,7 @@ public class Configuration { /** * Creates a new configuration that is read from the given file. - * + * * @param filename * The name of the configuration file */ @@ -79,7 +79,7 @@ public class Configuration { /** * Creates a new configuration that is read from the given file and uses the * given lock file. - * + * * @param filename * The name of the configuration file * @param lockFilename @@ -93,7 +93,7 @@ public class Configuration { /** * Creates the directory of the configuration file. - * + * * @return true if the directory exists, or if it could be * created, false otherwise */ @@ -104,7 +104,7 @@ public class Configuration { /** * Creates the lock file. - * + * * @return true if the lock file did not already exist and * could be created, false otherwise */ @@ -113,9 +113,12 @@ public class Configuration { return false; } File lockFile = new File(lockFilename); - lockFile.deleteOnExit(); try { - return lockFile.createNewFile(); + boolean fileLocked = lockFile.createNewFile(); + if (fileLocked) { + lockFile.deleteOnExit(); + } + return fileLocked; } catch (IOException e) { /* ignore. */ } @@ -123,6 +126,13 @@ public class Configuration { } /** + * Tells the VM to remove the lock file on program exit. + */ + public void removeLockfileOnExit() { + new File(lockFilename).deleteOnExit(); + } + + /** * Reads the configuration from the file. */ private void readConfiguration() { @@ -152,7 +162,7 @@ public class Configuration { /** * Saves the configuration. - * + * * @return true if the configuration could be saved, * false otherwise */ @@ -183,7 +193,7 @@ public class Configuration { /** * Returns the value of a node. - * + * * @param nodeNames * The name of all nodes in the chain * @param defaultValue @@ -205,7 +215,7 @@ public class Configuration { /** * Returns the integer value of a node. - * + * * @param nodeNames * The names of all nodes in the chain * @param defaultValue @@ -224,7 +234,7 @@ public class Configuration { /** * Returns the boolean value of a node. - * + * * @param nodeNames * The names of all nodes in the chain * @param defaultValue @@ -242,7 +252,7 @@ public class Configuration { /** * Returns the hostname of the node. - * + * * @return The hostname of the node * @deprecated Use {@link #getSelectedNode()} instead */ @@ -253,7 +263,7 @@ public class Configuration { /** * Sets the hostname of the node. - * + * * @param nodeAddress * The hostname of the node * @deprecated Use {@link #setSelectedNode(Node)} instead @@ -265,7 +275,7 @@ public class Configuration { /** * The port number of the node - * + * * @return The port number of the node * @deprecated Use {@link #getSelectedNode()} instead. */ @@ -276,7 +286,7 @@ public class Configuration { /** * Sets the port number of the node. - * + * * @param nodePort * The port number of the node * @deprecated Use {@link #setSelectedNode(Node)} instead @@ -288,9 +298,9 @@ public class Configuration { /** * Returns whether the node configuration page should be skipped on startup. - * - * @return true to skip the node configuration page on - * startup, false to show it + * + * @return true to skip the node configuration page on startup, + * false to show it */ public boolean isSkipNodePage() { return getNodeBooleanValue(new String[] { "skip-node-page" }, false); @@ -298,7 +308,7 @@ public class Configuration { /** * Sets whether the node configuration page should be skipped on startup. - * + * * @param skipNodePage * true to skip the node configuration page on * startup, false to show it @@ -309,7 +319,7 @@ public class Configuration { /** * Returns all configured projects. - * + * * @return A list of all projects */ public Project[] getProjects() { @@ -321,18 +331,18 @@ public class Configuration { try { Project project = new Project(); projects.add(project); - project.setDescription(projectNode.getNode("description").getValue()); - project.setIndexFile(projectNode.getNode("index-file").getValue()); - project.setLastInsertionTime(Long.parseLong(projectNode.getNode("last-insertion-time").getValue())); - project.setLocalPath(projectNode.getNode("local-path").getValue()); - project.setName(projectNode.getNode("name").getValue()); - project.setPath(projectNode.getNode("path").getValue()); + project.setDescription(projectNode.getNode("description").getValue("")); + project.setIndexFile(projectNode.getNode("index-file").getValue("")); + project.setLastInsertionTime(Long.parseLong(projectNode.getNode("last-insertion-time").getValue("0"))); + project.setLocalPath(projectNode.getNode("local-path").getValue("")); + project.setName(projectNode.getNode("name").getValue("")); + project.setPath(projectNode.getNode("path").getValue("")); if ((project.getPath() != null) && (project.getPath().indexOf("/") != -1)) { project.setPath(project.getPath().replaceAll("/", "")); } - project.setEdition(Integer.parseInt(projectNode.getNode("edition").getValue())); - project.setInsertURI(projectNode.getNode("insert-uri").getValue()); - project.setRequestURI(projectNode.getNode("request-uri").getValue()); + project.setEdition(Integer.parseInt(projectNode.getNode("edition").getValue("0"))); + project.setInsertURI(projectNode.getNode("insert-uri").getValue("")); + project.setRequestURI(projectNode.getNode("request-uri").getValue("")); SimpleXML fileOptionsNode = projectNode.getNode("file-options"); Map fileOptions = new HashMap(); if (fileOptionsNode != null) { @@ -341,8 +351,8 @@ public class Configuration { String filename = fileOptionNode.getNode("filename").getValue(); FileOption fileOption = project.getFileOption(filename); fileOption.setInsert(Boolean.parseBoolean(fileOptionNode.getNode("insert").getValue())); - fileOption.setCustomKey(fileOptionNode.getNode("custom-key").getValue()); - fileOption.setMimeType(fileOptionNode.getNode("mime-type").getValue()); + fileOption.setCustomKey(fileOptionNode.getNode("custom-key").getValue("")); + fileOption.setMimeType(fileOptionNode.getNode("mime-type").getValue("")); fileOption.setContainer(fileOptionNode.getNode("container").getValue()); if (fileOptionNode.getNode("replace-edition") != null) { fileOption.setReplaceEdition(Boolean.parseBoolean(fileOptionNode.getNode("replace-edition").getValue())); @@ -362,7 +372,7 @@ public class Configuration { /** * Sets the list of all projects. - * + * * @param projects * The list of all projects */ @@ -401,7 +411,7 @@ public class Configuration { /** * Returns the stored locale. - * + * * @return The stored locale */ public Locale getLocale() { @@ -415,7 +425,7 @@ public class Configuration { /** * Sets the locale to store. - * + * * @param locale * The locale to store */ @@ -431,7 +441,7 @@ public class Configuration { /** * Returns a list of configured nodes. - * + * * @return The list of the configured nodes */ public Node[] getNodes() { @@ -460,7 +470,7 @@ public class Configuration { /** * Sets the list of configured nodes. - * + * * @param nodes * The list of configured nodes */ @@ -479,7 +489,7 @@ public class Configuration { /** * Sets the selected node. - * + * * @param selectedNode * The selected node */ @@ -493,7 +503,7 @@ public class Configuration { /** * Returns the selected node. - * + * * @return The selected node */ public Node getSelectedNode() {