commit ccd5a7e58ca459ef3ed5ce168e815efedb147e0b Author: Karsten Loesing karsten.loesing@gmx.net Date: Sat Jun 17 08:49:16 2017 +0200
Update to metrics-lib 1.9.0.
Implements #22681. --- build.xml | 2 +- .../onionoo/updater/DescriptorQueue.java | 62 ++++++++-------------- .../onionoo/updater/DummyBridgeStatus.java | 9 ++++ .../torproject/onionoo/updater/DummyConsensus.java | 9 ++++ 4 files changed, 42 insertions(+), 40 deletions(-)
diff --git a/build.xml b/build.xml index c498a5d..e6f3c2b 100644 --- a/build.xml +++ b/build.xml @@ -11,7 +11,7 @@ <property name="onionoo.protocol.version" value="4.0"/> <property name="release.version" value="${onionoo.protocol.version}-1.2.0-dev"/> - <property name="descriptorversion" value="1.8.2"/> + <property name="descriptorversion" value="1.9.0"/> <property name="jetty.version" value="-8.1.16.v20140903" /> <property name="warfile" value="onionoo-${release.version}.war"/> diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java b/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java index e2657c9..ae68b41 100644 --- a/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java +++ b/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java @@ -4,9 +4,9 @@ package org.torproject.onionoo.updater;
import org.torproject.descriptor.Descriptor; -import org.torproject.descriptor.DescriptorFile; import org.torproject.descriptor.DescriptorReader; import org.torproject.descriptor.DescriptorSourceFactory; +import org.torproject.descriptor.UnparseableDescriptor;
import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,7 +18,6 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; @@ -34,9 +33,9 @@ class DescriptorQueue {
private File historyFile;
- private Iterator<DescriptorFile> descriptorFiles; + private File directory;
- private List<Descriptor> descriptors; + private Iterator<Descriptor> descriptors;
private int historySizeBefore;
@@ -64,28 +63,14 @@ class DescriptorQueue {
public DescriptorQueue(File inDir, DescriptorType descriptorType, File statusDir) { - File directory = inDir; + this.directory = inDir; if (descriptorType != null) { - directory = new File(inDir, descriptorType.getDir()); + this.directory = new File(inDir, descriptorType.getDir()); } this.statusDir = statusDir; this.descriptorReader = DescriptorSourceFactory.createDescriptorReader(); - this.addDirectory(directory); - } - - private void addDirectory(File directory) { - if (directory == null) { - return; - } - if (directory.exists() && directory.isDirectory()) { - this.descriptorReader.addDirectory(directory); - this.descriptorReader.setMaxDescriptorFilesInQueue(1); - } else { - log.error("Directory " + directory.getAbsolutePath() - + " either does not exist or is not a directory. Not adding " - + "to descriptor reader."); - } + this.descriptorReader.setMaxDescriptorsInQueue(20); }
public void readHistoryFile(DescriptorHistory descriptorHistory) { @@ -146,27 +131,26 @@ class DescriptorQueue {
public Descriptor nextDescriptor() { Descriptor nextDescriptor = null; - if (this.descriptorFiles == null) { - this.descriptorFiles = this.descriptorReader.readDescriptors(); - } - while (this.descriptors == null && this.descriptorFiles.hasNext()) { - DescriptorFile descriptorFile = this.descriptorFiles.next(); - if (descriptorFile.getException() != null) { - log.error("Could not parse " + descriptorFile.getFileName(), - descriptorFile.getException()); - } - if (descriptorFile.getDescriptors() != null - && !descriptorFile.getDescriptors().isEmpty()) { - this.descriptors = descriptorFile.getDescriptors(); + if (null == this.descriptors) { + if (this.directory.exists() + && directory.isDirectory()) { + this.descriptors = this.descriptorReader.readDescriptors( + this.directory).iterator(); + } else { + log.error("Directory " + this.directory.getAbsolutePath() + + " either does not exist or is not a directory. Not adding " + + "to descriptor reader."); + return null; } } - if (this.descriptors != null) { - nextDescriptor = this.descriptors.remove(0); - this.returnedDescriptors++; - this.returnedBytes += nextDescriptor.getRawDescriptorBytes().length; - if (this.descriptors.isEmpty()) { - this.descriptors = null; + while (null == nextDescriptor && this.descriptors.hasNext()) { + nextDescriptor = this.descriptors.next(); + if (nextDescriptor instanceof UnparseableDescriptor) { + nextDescriptor = null; + continue; } + this.returnedDescriptors++; + this.returnedBytes += nextDescriptor.getRawDescriptorLength(); } return nextDescriptor; } diff --git a/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java b/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java index 46f6371..4b06c99 100644 --- a/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java +++ b/src/test/java/org/torproject/onionoo/updater/DummyBridgeStatus.java @@ -6,6 +6,7 @@ package org.torproject.onionoo.updater; import org.torproject.descriptor.BridgeNetworkStatus; import org.torproject.descriptor.NetworkStatusEntry;
+import java.io.File; import java.util.List; import java.util.SortedMap; import java.util.TreeMap; @@ -16,6 +17,10 @@ public class DummyBridgeStatus implements BridgeNetworkStatus { return null; }
+ public int getRawDescriptorLength() { + return 0; + } + public List<String> getAnnotations() { return null; } @@ -24,6 +29,10 @@ public class DummyBridgeStatus implements BridgeNetworkStatus { return null; }
+ public File getDescriptorFile() { + return null; + } + private long publishedMillis;
public void setPublishedMillis(long publishedMillis) { diff --git a/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java b/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java index 9147967..5faf709 100644 --- a/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java +++ b/src/test/java/org/torproject/onionoo/updater/DummyConsensus.java @@ -8,6 +8,7 @@ import org.torproject.descriptor.DirectorySignature; import org.torproject.descriptor.NetworkStatusEntry; import org.torproject.descriptor.RelayNetworkStatusConsensus;
+import java.io.File; import java.util.List; import java.util.SortedMap; import java.util.SortedSet; @@ -20,6 +21,10 @@ public class DummyConsensus implements RelayNetworkStatusConsensus { return null; }
+ public int getRawDescriptorLength() { + return 0; + } + public List<String> getAnnotations() { return null; } @@ -28,6 +33,10 @@ public class DummyConsensus implements RelayNetworkStatusConsensus { return null; }
+ public File getDescriptorFile() { + return null; + } + public int getNetworkStatusVersion() { return 0; }
tor-commits@lists.torproject.org