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>