What's your consistency strategy going to be? Never commit, just set()
everywhere, thus can access from any thread (hopefully) ?
On Monday 04 August 2008 20:00, batosai at freenetproject.org wrote:
> Author: batosai
> Date: 2008-08-04 18:59:59 +0000 (Mon, 04 Aug 2008)
> New Revision: 21600
>
> Modified:
> trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
> Log:
> Added Homepage and OwnIdentities pages.
>
> Modified: trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
> ===================================================================
> --- trunk/apps/WoT/src/plugins/WoT/WoTplugin.java 2008-08-03 16:24:28 UTC
(rev 21599)
> +++ trunk/apps/WoT/src/plugins/WoT/WoTplugin.java 2008-08-04 18:59:59 UTC
(rev 21600)
> @@ -6,10 +6,15 @@
>
> package plugins.WoT;
>
> +import com.db4o.Db4o;
> +import com.db4o.ObjectContainer;
> +import com.db4o.ObjectSet;
> +
> import freenet.client.HighLevelSimpleClient;
> import freenet.clients.http.PageMaker;
> import freenet.config.Config;
> import freenet.config.SubConfig;
> +import freenet.keys.FreenetURI;
> import freenet.node.fcp.FCPServer;
> import freenet.pluginmanager.FredPlugin;
> import freenet.pluginmanager.FredPluginHTTP;
> @@ -27,26 +32,31 @@
> */
> public class WoTplugin implements FredPlugin, FredPluginHTTP,
FredPluginThreadless, FredPluginVersioned {
>
> - public static String SELF_URI = "/plugins/plugins.WoT.WoTplugin/";
> + public static String SELF_URI = "/plugins/plugins.WoT.WoTplugin";
> private PluginRespirator pr;
> private PageMaker pm;
> private HighLevelSimpleClient client;
> private FCPServer fcp;
> + private ObjectContainer db;
>
> public void runPlugin(PluginRespirator pr) {
>
> Logger.error(this, "Start");
>
> this.pr = pr;
> + db = Db4o.openFile("WoT.db4o");
>
> Config nc = pr.getNode().config;
> SubConfig fc = nc.get("fproxy");
> String cssName = fc.getString("css");
>
> pm = new PageMaker(cssName);
> +
> + pm.addNavigationLink(SELF_URI, "Home", "Home page", false,
> null);
> + pm.addNavigationLink(SELF_URI + "/ownidentities", "Own
Identities", "Manage your own identities", false, null);
> + pm.addNavigationLink(SELF_URI + "/test", "Test", "Testing
> page", false,
null);
> + pm.addNavigationLink("/plugins/", "Plugins page", "Back to
> Plugins page",
false, null);
>
> - pm.addNavigationLink("/", "Fproxy", "Back to Fproxy", false,
> null);
> -
> client = pr.getHLSimpleClient();
>
> fcp = pr.getNode().clientCore.getFCPServer();
> @@ -54,16 +64,33 @@
> }
>
> public void terminate() {
> + db.close();
> }
>
> @Override
> public String handleHTTPGet(HTTPRequest request) throws
PluginHTTPException {
> - return makeHomePage();
> +
> + String page = request.getPath().substring(SELF_URI.length());
> + if(page.equals("/ownidentities")) {
> + return makeOwnIdentitiesPage();
> + }
> + else {
> + return makeHomePage();
> + }
> }
>
> @Override
> public String handleHTTPPost(HTTPRequest request) throws
PluginHTTPException {
> - return null;
> +
> + String page = request.getPath().substring(SELF_URI.length());
> + if(page.equals("/createIdentity")) {
> + FreenetURI[] keypair = client.generateKeyPair("WoT");
> + FreenetURI insertURI =
keypair[0].setKeyType("USK").setSuggestedEdition(0);
> + FreenetURI requestURI =
keypair[1].setKeyType("USK").setSuggestedEdition(0);
> +
> + return insertURI + "<br>" + requestURI;
> + }
> + else return makeHomePage();
> }
>
> @Override
> @@ -72,17 +99,56 @@
> }
>
> private String makeHomePage() {
> +
> + int nbOwnIdentities;
> + int nbIdentities;
> +
> + HTMLNode list = new HTMLNode("ul");
> +
> + ObjectSet<OwnIdentity> ownIdentities =
db.queryByExample(OwnIdentity.class);
> + nbOwnIdentities = ownIdentities.size();
> + list.addChild(new HTMLNode("li", "Own Identities : " +
> nbOwnIdentities));
> +
> + ObjectSet<Identity> identities =
> db.queryByExample(Identity.class);
> + nbIdentities = identities.size();
> + list.addChild(new HTMLNode("li", "Known Identities : " +
> nbIdentities));
> +
> +
> HTMLNode pageNode = getPageNode();
> HTMLNode contentNode = pm.getContentNode(pageNode);
> + HTMLNode box = pm.getInfobox("Summary");
>
> - HTMLNode box = pm.getInfobox("Summary");
> HTMLNode boxContent = pm.getContentNode(box);
> - boxContent.addChild("#", "The WoT plugin is running...");
> + boxContent.addChild(list);
>
> contentNode.addChild(box);
> return pageNode.generate();
> }
> +
> + private String makeOwnIdentitiesPage() {
>
> + HTMLNode pageNode = getPageNode();
> + HTMLNode contentNode = pm.getContentNode(pageNode);
> + HTMLNode box = pm.getInfobox("Own Identities");
> + HTMLNode boxContent = pm.getContentNode(box);
> +
> + ObjectSet<OwnIdentity> ownIdentities =
db.queryByExample(OwnIdentity.class);
> + if(ownIdentities.size() == 0) {
> + boxContent.addChild("p", "You have no own identites
> yet, you should
create one...");
> + }
> + else {
> + while(ownIdentities.hasNext()) {
> + boxContent.addChild(new HTMLNode("p",
ownIdentities.next().getRequestURI()));
> + }
> + }
> +
> + HTMLNode createForm = pr.addFormChild(boxContent, SELF_URI
+ "/createIdentity", "createForm");
> + createForm.addChild("input", new String[] { "type", "name",
> "value" },
new String[] { "submit", "create", "Create a new identity !" });
> +
> + contentNode.addChild(box);
> + return pageNode.generate();
> + }
> +
> private HTMLNode getPageNode() {
> return pm.getPageNode("Web of Trust", null);
> }
>
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20080805/c22fd6ad/attachment.pgp>