From: David ‘Bombe’ Roden Date: Sat, 27 Sep 2014 18:31:57 +0000 (+0200) Subject: Don’t set insert URI of a Sone, let it be generated from the identity. X-Git-Tag: 0.9-rc1^2~3^2~101 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=2b47186b72e30460a6710f95a76e4a99c305909a;hp=c4b53fe936d68587bf4ab26f4c997cf7e2fc5859 Don’t set insert URI of a Sone, let it be generated from the identity. --- diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java index a46d911..1521eaf 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java @@ -346,10 +346,6 @@ public class SoneDownloaderImpl extends AbstractService implements SoneDownloade } } - if (originalSone.getInsertUri() != null) { - sone.setInsertUri(originalSone.getInsertUri()); - } - SimpleXML profileXml = soneXml.getNode("profile"); if (profileXml == null) { /* TODO - mark Sone as bad. */ diff --git a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java index 9fad053..9f1f164 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java @@ -17,7 +17,6 @@ package net.pterodactylus.sone.core; -import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.lang.System.currentTimeMillis; import static net.pterodactylus.sone.data.Album.NOT_EMPTY; @@ -229,7 +228,7 @@ public class SoneInserter extends AbstractService { sone.setStatus(SoneStatus.inserting); long insertTime = currentTimeMillis(); eventBus.post(new SoneInsertingEvent(sone)); - FreenetURI finalUri = freenetInterface.insertDirectory(insertInformation.getInsertUri(), insertInformation.generateManifestEntries(), "index.html"); + FreenetURI finalUri = freenetInterface.insertDirectory(sone.getInsertUri(), insertInformation.generateManifestEntries(), "index.html"); eventBus.post(new SoneInsertedEvent(sone, currentTimeMillis() - insertTime)); /* at this point we might already be stopped. */ if (shouldStop()) { @@ -304,7 +303,6 @@ public class SoneInserter extends AbstractService { soneProperties.put("name", sone.getName()); soneProperties.put("time", currentTimeMillis()); soneProperties.put("requestUri", sone.getRequestUri()); - soneProperties.put("insertUri", sone.getInsertUri()); soneProperties.put("profile", sone.getProfile()); soneProperties.put("posts", Ordering.from(Post.TIME_COMPARATOR).sortedCopy(sone.getPosts())); soneProperties.put("replies", Ordering.from(Reply.TIME_COMPARATOR).reverse().sortedCopy(sone.getReplies())); @@ -322,15 +320,6 @@ public class SoneInserter extends AbstractService { return fingerprint; } - /** - * Returns the insert URI of the Sone. - * - * @return The insert URI of the Sone - */ - public FreenetURI getInsertUri() { - return (FreenetURI) soneProperties.get("insertUri"); - } - // // ACTIONS // diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java index 55e5fff..c27e8cc 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -208,18 +208,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { Identity getIdentity(); /** - * Sets the identity of this Sone. The {@link Identity#getId() ID} of the - * identity has to match this Sone’s {@link #getId()}. - * - * @param identity - * The identity of this Sone - * @return This Sone (for method chaining) - * @throws IllegalArgumentException - * if the ID of the identity does not match this Sone’s ID - */ - Sone setIdentity(Identity identity) throws IllegalArgumentException; - - /** * Returns the name of this Sone. * * @return The name of this Sone @@ -257,15 +245,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { FreenetURI getInsertUri(); /** - * Sets the insert URI of this Sone. - * - * @param insertUri - * The insert URI of this Sone - * @return This Sone (for method chaining) - */ - Sone setInsertUri(FreenetURI insertUri); - - /** * Returns the latest edition of this Sone. * * @return The latest edition of this Sone diff --git a/src/main/java/net/pterodactylus/sone/data/SoneImpl.java b/src/main/java/net/pterodactylus/sone/data/SoneImpl.java index 1fe971f..86fe3d9 100644 --- a/src/main/java/net/pterodactylus/sone/data/SoneImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/SoneImpl.java @@ -18,7 +18,9 @@ package net.pterodactylus.sone.data; import static com.google.common.base.Preconditions.checkNotNull; +import static java.lang.String.format; +import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -30,6 +32,7 @@ import java.util.logging.Logger; import net.pterodactylus.sone.data.SoneOptions.DefaultSoneOptions; import net.pterodactylus.sone.freenet.wot.Identity; +import net.pterodactylus.sone.freenet.wot.OwnIdentity; import net.pterodactylus.util.logging.Logging; import freenet.keys.FreenetURI; @@ -140,24 +143,6 @@ public class SoneImpl implements Sone { } /** - * Sets the identity of this Sone. The {@link Identity#getId() ID} of the - * identity has to match this Sone’s {@link #getId()}. - * - * @param identity - * The identity of this Sone - * @return This Sone (for method chaining) - * @throws IllegalArgumentException - * if the ID of the identity does not match this Sone’s ID - */ - public SoneImpl setIdentity(Identity identity) throws IllegalArgumentException { - if (!identity.getId().equals(id)) { - throw new IllegalArgumentException("Identity’s ID does not match Sone’s ID!"); - } - this.identity = identity; - return this; - } - - /** * Returns the name of this Sone. * * @return The name of this Sone @@ -209,26 +194,14 @@ public class SoneImpl implements Sone { * @return The insert URI of this Sone */ public FreenetURI getInsertUri() { - return (insertUri != null) ? insertUri.setSuggestedEdition(latestEdition) : null; - } - - /** - * Sets the insert URI of this Sone. - * - * @param insertUri - * The insert URI of this Sone - * @return This Sone (for method chaining) - */ - public Sone setInsertUri(FreenetURI insertUri) { - if (this.insertUri == null) { - this.insertUri = insertUri.setKeyType("USK").setDocName("Sone").setMetaString(new String[0]); - return this; + if (!isLocal()) { + return null; } - if (!this.insertUri.equalsKeypair(insertUri)) { - logger.log(Level.WARNING, String.format("Request URI %s tried to overwrite %s!", insertUri, this.insertUri)); - return this; + try { + return new FreenetURI(((OwnIdentity) getIdentity()).getInsertUri()).setDocName("Sone").setMetaString(new String[0]); + } catch (MalformedURLException e) { + throw new IllegalStateException(format("Own identity %s's insert URI is incorrect.", getIdentity()), e); } - return this; } /** diff --git a/src/test/java/net/pterodactylus/sone/core/SoneDownloaderTest.java b/src/test/java/net/pterodactylus/sone/core/SoneDownloaderTest.java index 6095027..c910233 100644 --- a/src/test/java/net/pterodactylus/sone/core/SoneDownloaderTest.java +++ b/src/test/java/net/pterodactylus/sone/core/SoneDownloaderTest.java @@ -563,18 +563,6 @@ public class SoneDownloaderTest { } @Test - public void soneInsertUriIsCopiedToNewSone() throws SoneException { - InputStream inputStream = getClass().getResourceAsStream("sone-parser-no-payload.xml"); - FreenetURI insertUri = mock(FreenetURI.class); - when(insertUri.setKeyType(anyString())).thenReturn(insertUri); - when(insertUri.setDocName(anyString())).thenReturn(insertUri); - when(insertUri.setMetaString(any(String[].class))).thenReturn(insertUri); - when(insertUri.setSuggestedEdition(anyLong())).thenReturn(insertUri); - when(sone.getInsertUri()).thenReturn(insertUri); - assertThat(soneDownloader.parseSone(sone, inputStream).getInsertUri(), is(insertUri)); - } - - @Test public void parsingASoneSucceedsWithProfile() throws SoneException, MalformedURLException { InputStream inputStream = getClass().getResourceAsStream("sone-parser-with-profile.xml"); final Profile profile = soneDownloader.parseSone(sone, inputStream).getProfile(); diff --git a/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java b/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java index 9efd4dd..28ead14 100644 --- a/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java +++ b/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java @@ -73,7 +73,6 @@ public class SoneInserterTest { InsertInformation insertInformation = soneInserter.new InsertInformation(sone); HashMap manifestEntries = insertInformation.generateManifestEntries(); assertThat(manifestEntries.keySet(), containsInAnyOrder("index.html", "sone.xml")); - assertThat(insertInformation.getInsertUri(), is(insertUri)); assertThat(insertInformation.getFingerprint(), is(fingerprint)); }