Use file resources in the jar for files instead of hard coding them in java.
diff --git a/build.xml b/build.xml
--- a/build.xml
+++ b/build.xml
@@ -3,6 +3,8 @@
<property name="alien.src" value="./alien/src" />
<property name="alien.libs" value="./alien/libs" />
<property name="classes" value="./build/classes" />
+ <property name="doc" value="./doc" />
+ <property name="templates" value="./templates" />
<property name="jars" value="./build/jar" />
<target name="clean">
@@ -46,6 +48,8 @@
<attribute name="Main-Class" value="fniki.standalone.ServeHttp"/>
<attribute name="Plugin-Main-Class" value="fniki.freenet.plugin.Fniki"/>
</manifest>
+ <fileset dir="${doc}" includes="quickstart.txt"/>
+ <fileset dir="${templates}" includes="*.html"/>
</jar>
</target>
diff --git a/quickstart.txt b/doc/quickstart.txt
rename from quickstart.txt
rename to doc/quickstart.txt
--- a/quickstart.txt
+++ b/doc/quickstart.txt
@@ -5,9 +5,10 @@
===Configuration===
# Click on the "View" link below to view (and edit) the configuration.
-# Set the "FMS name" to the human readable part of your FMS ID (everything before the '@').
+# Set the "FMS Name" to the human readable part of your FMS ID (everything before the '@').
# Set the FMS Private SSK to your private FMS SSK (see below if you don't know how to find this).
-# Adjust any other values as necessary. If you're running FMS and Fred on the same machine on the default ports this shouldn't be necessary. # Click the "Done" button to save the configuration changes.
+# Adjust any other values as necessary. If you're running FMS and Fred on the same machine on the default ports this shouldn't be necessary.
+# Click the "Done" button to save the configuration changes.
=== Finding Other Versions===
Click the "Discover" link below to search for other versions of the wiki.
diff --git a/src/fniki/wiki/WikiApp.java b/src/fniki/wiki/WikiApp.java
--- a/src/fniki/wiki/WikiApp.java
+++ b/src/fniki/wiki/WikiApp.java
@@ -34,6 +34,7 @@ import java.util.List;
import java.util.Set;
import wormarc.FileManifest;
+import wormarc.IOUtil;
import static fniki.wiki.HtmlUtils.*;
import static fniki.wiki.Validations.*;
@@ -534,50 +535,10 @@ public class WikiApp implements ChildCon
}
private static String getDefaultWikiText() {
- StringBuilder sb = new StringBuilder();
- sb.append("//You are seeing this Quick Start because the wiki has no Front_Page. It will disappear as soon as you edit and save the page. //\n");
- sb.append("----\n");
- sb.append("\n");
- sb.append("== Quick Start ==\n");
- sb.append("\n");
- sb.append("===Configuration===\n");
- sb.append("# Click on the \"View\" link below to view (and edit) the configuration.\n");
- sb.append("# Set the \"FMS Name\" to the human readable part of your FMS ID (everything before the '@').\n");
- sb.append("# Set the FMS Private SSK to your private FMS SSK (see below if you don't know how to find this).\n");
- sb.append("# Adjust any other values as necessary. If you're running FMS and Fred on the same machine on the default ports this shouldn't be necessary.\n");
- sb.append("# Click the \"Done\" button to save the configuration changes.\n");
- sb.append("\n");
- sb.append("=== Finding Other Versions===\n");
- sb.append("Click the \"Discover\" link below to search for other versions of the wiki.\n");
- sb.append("\n");
- sb.append("=== Submitting ===\n");
- sb.append("Use the \"Submit\" link below to submit your changes. It may take a long time for other people to see them.\n");
- sb.append("\n");
- sb.append("=== Finding Your Private SSK ===\n");
- sb.append("# Go to http://127.0.0.1:18080/localidentities.htm in the FMS web interface and click the \"Export Identities\" button\n");
- sb.append("to save your FMS indentities to a file.\n");
- sb.append("\n");
- sb.append("# In the text editor of your choice, open the file you saved above and look for the Name and PrivateKey values for the identity you want to use.\n");
- sb.append("\n");
- sb.append("In the example identity snippet below, the FMS Name value would be:\\\\ \n");
- sb.append("SomeUser\n");
- sb.append("\n");
- sb.append("and the FMS Private Key would be: \\\\ \n");
- sb.append("SSK@YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY,YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY,AQECAAE/ \n");
- sb.append("\n");
- sb.append("----\n");
- sb.append("{{{\n");
- sb.append("<Identity>\n");
- sb.append(" <Name><![CDATA[SomeUser]]></Name>\n");
- sb.append(" <PublicKey>SSK@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,AQACAAE/</PublicKey>\n");
- sb.append(" <PrivateKey>SSK@YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY,YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY,AQECAAE/</PrivateKey>\n");
- sb.append(" <SingleUse>false</SingleUse>\n");
- sb.append(" <PublishTrustList>false</PublishTrustList>\n");
- sb.append(" <PublishBoardList>false</PublishBoardList>\n");
- sb.append(" <PublishFreesite>false</PublishFreesite>\n");
- sb.append("</Identity>\n");
- sb.append("}}}\n");
- sb.append("\n");
- return sb.toString();
+ try {
+ return IOUtil.readUtf8StringAndClose(WikiApp.class.getResourceAsStream("/quickstart.txt"));
+ } catch (IOException ioe) {
+ return "Couldn't load default wikitext from jar???";
+ }
}
}
diff --git a/src/fniki/wiki/child/SettingConfig.java b/src/fniki/wiki/child/SettingConfig.java
--- a/src/fniki/wiki/child/SettingConfig.java
+++ b/src/fniki/wiki/child/SettingConfig.java
@@ -24,9 +24,12 @@
package fniki.wiki.child;
+import java.io.IOException;
import java.io.UnsupportedEncodingException;
import static ys.wikiparser.Utils.*;
+import wormarc.IOUtil;
+
import fniki.wiki.ArchiveManager;
import fniki.wiki.ChildContainerException;
import fniki.wiki.Configuration;
@@ -224,77 +227,11 @@ public class SettingConfig implements Mo
// READ the comment above before modifiy the template!
private static String formTemplate() {
- StringBuilder sb = new StringBuilder();
- sb.append("<html>\n");
- sb.append("<head>\n");
- sb.append("<title>\n");
- sb.append(" Configuration\n");
- sb.append("</title>\n");
- sb.append("</head>\n");
- sb.append("<body>\n");
- sb.append("%s\n");
- sb.append("<h1>Configuration</h1>\n");
- sb.append("<form method=\"post\" action=\"%s\" enctype=\"multipart/form-data\" accept-charset=\"UTF-8\">\n");
- sb.append("<table>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>Fcp Host</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fcphost\" value=\"%s\" /></td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>Fcp Port</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fcpport\" value=\"%d\" /></td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>Fproxy Prefix</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fpprefix\" size=\"64\" value=\"%s\" /></td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>FMS Host</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fmshost\" value=\"%s\" /></td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>FMS Port</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fmsport\" value=\"%d\" /> </td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>FMS Private SSK</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fmsssk\" size=\"128\" value=\"\" /> </td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>FMS Name</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fmsid\" value=\"%s\" /> </td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>Full FMS ID</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fmsfull\" size=\"64\" readonly=\"readonly\" value=\"%s\" /> </td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>FMS Group</td>\n");
- sb.append(" <td><input type=\"text\" name=\"fmsgroup\" value=\"%s\" /> </td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td>Wiki Name</td>\n");
- sb.append(" <td><input type=\"text\" name=\"wikiname\" value=\"%s\"/> </td>\n");
- sb.append(" </tr>\n");
- sb.append(" <tr>\n");
- sb.append(" <td><input type=\"checkbox\" name=\"images\" %s/>Enable Images</td>\n");
- sb.append(" </tr>\n");
- sb.append(" <input type=\"hidden\" name=\"formPassword\" value=\"%s\"/>\n");
- sb.append("</table>\n");
- sb.append("<input name=\"defaults\" type=\"submit\" value=\"Reset Defaults\"/>\n");
- sb.append("<input name=\"done\" type=\"submit\" value=\"Done\"/>\n");
- sb.append("<hr>\n");
- sb.append("<input name=\"import\" type=\"submit\" value=\"Import Configuration\"/>\n");
- sb.append("<input type=\"file\" name=\"upload\" size=\"64\">\n");
- sb.append("<hr>\n");
- sb.append("<input name=\"export\" type=\"submit\" value=\"Export Configuration\"/>\n");
- sb.append("<hr>\n");
- sb.append("</form>\n");
- sb.append("\n");
- sb.append("</body>\n");
- sb.append("</html>\n");
-
- return sb.toString();
+ try {
+ return IOUtil.readUtf8StringAndClose(SettingConfig.class.getResourceAsStream("/config_form.html"));
+ } catch (IOException ioe) {
+ return "Couldn't load template from jar???";
+ }
}
}
diff --git a/templates/config_form.html b/templates/config_form.html
new file mode 100644
--- /dev/null
+++ b/templates/config_form.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<title>Configuration
+</title>
+</head>
+<body>
+%s
+<h1>Configuration</h1>
+<form method="post" action="%s" enctype="multipart/form-data" accept-charset="UTF-8">
+<table>
+ <tr>
+ <td>Fcp Host</td>
+ <td><input type="text" name="fcphost" value="%s" /></td>
+ </tr>
+ <tr>
+ <td>Fcp Port</td>
+ <td><input type="text" name="fcpport" value="%d" /></td>
+ </tr>
+ <tr>
+ <td>Fproxy Prefix</td>
+ <td><input type="text" name="fpprefix" size="64" value="%s" /></td>
+ </tr>
+ <tr>
+ <td>FMS Host</td>
+ <td><input type="text" name="fmshost" value="%s" /></td>
+ </tr>
+ <tr>
+ <td>FMS Port</td>
+ <td><input type="text" name="fmsport" value="%d" /> </td>
+ </tr>
+ <tr>
+ <td>FMS Private SSK</td>
+ <td><input type="text" name="fmsssk" size="128" value="" /> </td>
+ </tr>
+ <tr>
+ <td>FMS Name</td>
+ <td><input type="text" name="fmsid" value="%s" /> </td>
+ </tr>
+ <tr>
+ <td>Full FMS ID</td>
+ <td><input type="text" name="fmsfull" size="64" readonly="readonly" value="%s" /> </td>
+ </tr>
+ <tr>
+ <td>FMS Group</td>
+ <td><input type="text" name="fmsgroup" value="%s" /> </td>
+ </tr>
+ <tr>
+ <td>Wiki Name</td>
+ <td><input type="text" name="wikiname" value="%s"/> </td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="images" %s/>Enable Images</td>
+ </tr>
+ <input type="hidden" name="formPassword" value="%s"/>
+</table>
+<input name="defaults" type="submit" value="Reset Defaults"/>
+<input name="done" type="submit" value="Done"/>
+<hr>
+<input name="import" type="submit" value="Import Configuration"/>
+<input type="file" name="upload" size="64">
+<hr>
+<input name="export" type="submit" value="Export Configuration"/>
+<hr>
+</form>
+
+</body>
+</html>