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>

Reply via email to