From: David ‘Bombe’ Roden Date: Sat, 27 Feb 2016 14:10:29 +0000 (+0100) Subject: send a message to wot and see what comes back X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=refs%2Fheads%2Fuse-wot-event-notifications send a message to wot and see what comes back --- diff --git a/src/main/java/net/pterodactylus/sone/freenet/plugin/PluginConnector.java b/src/main/java/net/pterodactylus/sone/freenet/plugin/PluginConnector.java index 46343a3..2e01f74 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/plugin/PluginConnector.java +++ b/src/main/java/net/pterodactylus/sone/freenet/plugin/PluginConnector.java @@ -17,12 +17,19 @@ package net.pterodactylus.sone.freenet.plugin; +import java.io.IOException; +import java.util.logging.Logger; + +import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder; import net.pterodactylus.sone.freenet.plugin.event.ReceivedReplyEvent; import com.google.common.eventbus.EventBus; import com.google.inject.Inject; import com.google.inject.Singleton; +import freenet.clients.fcp.FCPPluginConnection; +import freenet.clients.fcp.FCPPluginMessage; +import freenet.pluginmanager.FredPluginFCPMessageHandler.ClientSideFCPMessageHandler; import freenet.pluginmanager.FredPluginTalker; import freenet.pluginmanager.PluginNotFoundException; import freenet.pluginmanager.PluginRespirator; @@ -37,7 +44,9 @@ import freenet.support.api.Bucket; * @author David ‘Bombe’ Roden */ @Singleton -public class PluginConnector implements FredPluginTalker { +public class PluginConnector implements FredPluginTalker, ClientSideFCPMessageHandler { + + private static final Logger logger = Logger.getLogger(PluginConnector.class.getName()); /** The event bus. */ private final EventBus eventBus; @@ -59,9 +68,24 @@ public class PluginConnector implements FredPluginTalker { this.pluginRespirator = pluginRespirator; } - // - // ACTIONS - // + public void start() throws PluginException { + try { + FCPPluginConnection pluginConnection = pluginRespirator.connectToOtherPlugin("plugins.WebOfTrust.WebOfTrust", this); + logger.fine("Got PluginConnection: " + pluginConnection); + SimpleFieldSet simpleFieldSet = new SimpleFieldSetBuilder().put("Message", "Subscribe").put("To", "Identities").get(); + pluginConnection.send(FCPPluginMessage.construct(simpleFieldSet, null)); + } catch (PluginNotFoundException pnfe1) { + throw new PluginException(pnfe1); + } catch (IOException ioe1) { + throw new PluginException(ioe1); + } + } + + @Override + public FCPPluginMessage handlePluginFCPMessage(FCPPluginConnection connection, FCPPluginMessage message) { + logger.fine("Got Reply: " + message); + return null; + } /** * Sends a request to the given plugin. diff --git a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManagerImpl.java b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManagerImpl.java index 33b1ef6..9efb270 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManagerImpl.java +++ b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManagerImpl.java @@ -127,6 +127,7 @@ public class IdentityManagerImpl extends AbstractService implements IdentityMana while (!shouldStop()) { try { Map> currentIdentities = identityLoader.loadIdentities(); + webOfTrustConnector.start(); IdentityChangeEventSender identityChangeEventSender = new IdentityChangeEventSender(eventBus, oldIdentities); identityChangeEventSender.detectChanges(currentIdentities); diff --git a/src/main/java/net/pterodactylus/sone/freenet/wot/WebOfTrustConnector.java b/src/main/java/net/pterodactylus/sone/freenet/wot/WebOfTrustConnector.java index ca3a38c..8395e8b 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/wot/WebOfTrustConnector.java +++ b/src/main/java/net/pterodactylus/sone/freenet/wot/WebOfTrustConnector.java @@ -80,6 +80,14 @@ public class WebOfTrustConnector { // ACTIONS // + public void start() { + try { + pluginConnector.start(); + } catch (PluginException e) { + e.printStackTrace(); + } + } + /** * Stops the web of trust connector. */