[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r32613 - in gnunet-java: . bin gradle/wrapper lib src/main/
From: |
gnunet |
Subject: |
[GNUnet-SVN] r32613 - in gnunet-java: . bin gradle/wrapper lib src/main/java/org/gnunet/arm src/main/java/org/gnunet/consensus src/main/java/org/gnunet/consensus/messages src/main/java/org/gnunet/construct src/main/java/org/gnunet/construct/parsers src/main/java/org/gnunet/core src/main/java/org/gnunet/dht src/main/java/org/gnunet/gns src/main/java/org/gnunet/gns/callbacks src/main/java/org/gnunet/gns/messages src/main/java/org/gnunet/identity src/main/java/org/gnunet/identity/messages src/main/java/org/gnunet/mesh src/main/java/org/gnunet/mq src/main/java/org/gnunet/nse src/main/java/org/gnunet/peerinfo src/main/java/org/gnunet/requests src/main/java/org/gnunet/secretsharing src/main/java/org/gnunet/secretsharing/messages src/main/java/org/gnunet/statistics src/main/java/org/gnunet/testbed src/main/java/org/gnunet/testing src/main/java/org/gnunet/transport src/main/java/org/gnunet/transport/callbacks src/main/java/org/gnunet/transport/messages src/main/java/org/gnunet/util src/m ain/java /org/gnunet/util/crypto src/main/java/org/gnunet/util/getopt src/main/java/org/gnunet/voting src/main/java/org/gnunet/voting/messages src/main/java/org/gnunet/voting/simulation src/main/resources/org/gnunet/construct src/test/java/org/gnunet/consensus src/test/java/org/gnunet/construct src/test/java/org/gnunet/core src/test/java/org/gnunet/dht src/test/java/org/gnunet/mesh src/test/java/org/gnunet/nse src/test/java/org/gnunet/peerinfo src/test/java/org/gnunet/statistics src/test/java/org/gnunet/testbed src/test/java/org/gnunet/transport src/test/java/org/gnunet/util src/test/python |
Date: |
Tue, 11 Mar 2014 02:24:03 +0100 |
Author: dold
Date: 2014-03-11 02:24:03 +0100 (Tue, 11 Mar 2014)
New Revision: 32613
Added:
gnunet-java/bin/gnunet-dht-java
gnunet-java/bin/gnunet-nse-java
gnunet-java/bin/gnunet-peerinfo-java
gnunet-java/bin/gnunet-resolver-java
gnunet-java/bin/gnunet-statistics-java
gnunet-java/gradlew.bat
Removed:
gnunet-java/bin/gnunet-dht
gnunet-java/bin/gnunet-nse
gnunet-java/bin/gnunet-peerinfo
gnunet-java/bin/gnunet-resolver
gnunet-java/bin/gnunet-statistics
Modified:
gnunet-java/ISSUES
gnunet-java/README
gnunet-java/gradle/wrapper/gradle-wrapper.jar
gnunet-java/gradle/wrapper/gradle-wrapper.properties
gnunet-java/lib/log4j-1.2.16.jar
gnunet-java/lib/slf4j-api-1.6.4.jar
gnunet-java/lib/slf4j-log4j12-1.6.4.jar
gnunet-java/src/main/java/org/gnunet/arm/Arm.java
gnunet-java/src/main/java/org/gnunet/consensus/Consensus.java
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeDoneMessage.java
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeMessage.java
gnunet-java/src/main/java/org/gnunet/consensus/messages/JoinMessage.java
gnunet-java/src/main/java/org/gnunet/consensus/messages/NewElementMessage.java
gnunet-java/src/main/java/org/gnunet/construct/FrameSize.java
gnunet-java/src/main/java/org/gnunet/construct/MessageIdAnnotationProcessor.java
gnunet-java/src/main/java/org/gnunet/construct/ProtocolViolationException.java
gnunet-java/src/main/java/org/gnunet/construct/ReflectUtil.java
gnunet-java/src/main/java/org/gnunet/construct/parsers/FillParser.java
gnunet-java/src/main/java/org/gnunet/construct/parsers/UnionParser.java
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeArrayParser.java
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeStringParser.java
gnunet-java/src/main/java/org/gnunet/core/Core.java
gnunet-java/src/main/java/org/gnunet/core/NotifyInboundTrafficMessage.java
gnunet-java/src/main/java/org/gnunet/core/RequestIdentification.java
gnunet-java/src/main/java/org/gnunet/core/SendMessage.java
gnunet-java/src/main/java/org/gnunet/core/SendMessageReady.java
gnunet-java/src/main/java/org/gnunet/dht/ClientPutConfirmationMessage.java
gnunet-java/src/main/java/org/gnunet/dht/ClientPutMessage.java
gnunet-java/src/main/java/org/gnunet/dht/DistributedHashTable.java
gnunet-java/src/main/java/org/gnunet/dht/MonitorGetMessage.java
gnunet-java/src/main/java/org/gnunet/dht/MonitorGetRespMessage.java
gnunet-java/src/main/java/org/gnunet/dht/MonitorPutMessage.java
gnunet-java/src/main/java/org/gnunet/dht/MonitorStartStop.java
gnunet-java/src/main/java/org/gnunet/dht/RouteOption.java
gnunet-java/src/main/java/org/gnunet/gns/GNS.java
gnunet-java/src/main/java/org/gnunet/gns/Gns.java
gnunet-java/src/main/java/org/gnunet/gns/GnsRecord.java
gnunet-java/src/main/java/org/gnunet/gns/GnsTool.java
gnunet-java/src/main/java/org/gnunet/gns/LookupResultProcessor.java
gnunet-java/src/main/java/org/gnunet/gns/callbacks/LookupResultProcessor.java
gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupMessage.java
gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupResultMessage.java
gnunet-java/src/main/java/org/gnunet/identity/Identity.java
gnunet-java/src/main/java/org/gnunet/identity/messages/ResultCodeMessage.java
gnunet-java/src/main/java/org/gnunet/mesh/ClientConnectMessage.java
gnunet-java/src/main/java/org/gnunet/mesh/ConnectHandler.java
gnunet-java/src/main/java/org/gnunet/mesh/DataMessage.java
gnunet-java/src/main/java/org/gnunet/mesh/MeshRunabout.java
gnunet-java/src/main/java/org/gnunet/mesh/TunnelDestroyMessage.java
gnunet-java/src/main/java/org/gnunet/mq/Envelope.java
gnunet-java/src/main/java/org/gnunet/mq/MessageQueue.java
gnunet-java/src/main/java/org/gnunet/nse/NetworkSizeEstimation.java
gnunet-java/src/main/java/org/gnunet/nse/UpdateMessage.java
gnunet-java/src/main/java/org/gnunet/peerinfo/ListAllPeersMessage.java
gnunet-java/src/main/java/org/gnunet/peerinfo/PeerInfo.java
gnunet-java/src/main/java/org/gnunet/requests/MatchingRequestContainer.java
gnunet-java/src/main/java/org/gnunet/requests/RequestContainer.java
gnunet-java/src/main/java/org/gnunet/requests/SequentialRequestContainer.java
gnunet-java/src/main/java/org/gnunet/requests/package-info.java
gnunet-java/src/main/java/org/gnunet/secretsharing/Ciphertext.java
gnunet-java/src/main/java/org/gnunet/secretsharing/KeyGeneration.java
gnunet-java/src/main/java/org/gnunet/secretsharing/Plaintext.java
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/ClientDecryptMessage.java
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/GenerateMessage.java
gnunet-java/src/main/java/org/gnunet/statistics/GetRequest.java
gnunet-java/src/main/java/org/gnunet/statistics/Statistics.java
gnunet-java/src/main/java/org/gnunet/statistics/StatisticsWatcher.java
gnunet-java/src/main/java/org/gnunet/statistics/WatchRequest.java
gnunet-java/src/main/java/org/gnunet/statistics/package-info.java
gnunet-java/src/main/java/org/gnunet/testbed/Controller.java
gnunet-java/src/main/java/org/gnunet/testing/TestingServer.java
gnunet-java/src/main/java/org/gnunet/testing/TestingSetup.java
gnunet-java/src/main/java/org/gnunet/transport/Transport.java
gnunet-java/src/main/java/org/gnunet/transport/callbacks/PeerAddressListCallback.java
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessage.java
gnunet-java/src/main/java/org/gnunet/util/AbsoluteTime.java
gnunet-java/src/main/java/org/gnunet/util/Client.java
gnunet-java/src/main/java/org/gnunet/util/Connection.java
gnunet-java/src/main/java/org/gnunet/util/Helper.java
gnunet-java/src/main/java/org/gnunet/util/MessageStreamTokenizer.java
gnunet-java/src/main/java/org/gnunet/util/MessageTransmitter.java
gnunet-java/src/main/java/org/gnunet/util/Program.java
gnunet-java/src/main/java/org/gnunet/util/RelativeTime.java
gnunet-java/src/main/java/org/gnunet/util/Resolver.java
gnunet-java/src/main/java/org/gnunet/util/Scheduler.java
gnunet-java/src/main/java/org/gnunet/util/Server.java
gnunet-java/src/main/java/org/gnunet/util/Service.java
gnunet-java/src/main/java/org/gnunet/util/crypto/Ed25519.java
gnunet-java/src/main/java/org/gnunet/util/getopt/Parser.java
gnunet-java/src/main/java/org/gnunet/voting/Ballot.java
gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java
gnunet-java/src/main/java/org/gnunet/voting/CertifyGroupTool.java
gnunet-java/src/main/java/org/gnunet/voting/EncryptedVote.java
gnunet-java/src/main/java/org/gnunet/voting/GroupCert.java
gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
gnunet-java/src/main/java/org/gnunet/voting/messages/ResultQueryResponseMessage.java
gnunet-java/src/main/java/org/gnunet/voting/messages/SubmitMessage.java
gnunet-java/src/main/java/org/gnunet/voting/simulation/CryptoUtil.java
gnunet-java/src/main/java/org/gnunet/voting/simulation/VotingParameters.java
gnunet-java/src/main/resources/org/gnunet/construct/MsgMap.txt
gnunet-java/src/test/java/org/gnunet/consensus/ConsensusTestbedTest.java
gnunet-java/src/test/java/org/gnunet/construct/FrameSizeTest.java
gnunet-java/src/test/java/org/gnunet/construct/OptionalUnionTest.java
gnunet-java/src/test/java/org/gnunet/construct/StringTuple.java
gnunet-java/src/test/java/org/gnunet/core/CoreTest.java
gnunet-java/src/test/java/org/gnunet/dht/DHTTest.java
gnunet-java/src/test/java/org/gnunet/mesh/MeshTest.java
gnunet-java/src/test/java/org/gnunet/nse/NSETest.java
gnunet-java/src/test/java/org/gnunet/peerinfo/PeerInfoTest.java
gnunet-java/src/test/java/org/gnunet/statistics/StatisticsTest.java
gnunet-java/src/test/java/org/gnunet/testbed/TestbedTest.java
gnunet-java/src/test/java/org/gnunet/transport/TransportTest.java
gnunet-java/src/test/java/org/gnunet/util/ClientServerTest.java
gnunet-java/src/test/java/org/gnunet/util/EcdsaTest.java
gnunet-java/src/test/java/org/gnunet/util/ResolverTest.java
gnunet-java/src/test/java/org/gnunet/util/ServerExample.java
gnunet-java/src/test/python/test_voting_single.py
Log:
- simplify request containers
- statistics bugs
- fix missing annotation in consensus api
- work on voting
Modified: gnunet-java/ISSUES
===================================================================
--- gnunet-java/ISSUES 2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/ISSUES 2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,38 +1,34 @@
-testbed:
-Could it be possible that there are some issues with operation scheduling?
-I'm currently having problems executing a ~15-peer testbed
+coverage:
+gradle now has built-in support for JaCoCo => no cobertura, smaller build
file, smaller repo
+(gradle downloads jacoco on demand)
-crypto in java:
-public class EddsaSignedMessage<M extends Message> implements Message {
- @NestedMessage
- public EddsaSignature signature;
- @UInt32
- public int purpose;
- @NestedMessage
- public M innerMessage;
-// ...
-}
+dependencies and packaging:
+ * svn does not have any dependencies anymore, use gradle to fetch them (as
discussed)
+ * 'gradle publish' creates an ivy repository, containing
+ * the gnunet-java-<version>.jar
+ * transitive dependency information
+ * we might want to host the repo directly on gnunet.org (via http)
-Unfortunately, this does not work, as the type of 'M' is erased,
-reflection will give 'Message' as type of the 'innerMessage' field
-=> ditch generics
+gnunet-java-ext:
+ * build.gradle simply specifies the ivy repository
+ * choices: user must edit, https on gnunet.org, $GNUNET_JAVA_IVY
-voting:
-As discussed, the key generation is done after the ballot has been registered,
-one threshold key pair per election.
+gnunet-java shell wrappers and dependencies:
+ * as deps of gnunet-java.jar are stored _somewhere_,
+ wrappers are problematic
+ * proposal 1 (what most large java apps do):
+ * require that bin/ is always relative to lib/
+ * advantage: no dependency hell, easy
+ * disadvantage: more/redundant jars
+ * proposal 2:
+ * template wrapper
+ * gradle script generates one wrapper for the
+ developer (with deps from the local gradle repo),
+ and one for the end user, relative to installation $PREFIX
-gnunet-ballot -k <ballotfile> # fetch threshold pubkey from authority
-(preferably the issuer should do that)
-ballots are now actually encrypted
+I'm working on a more powerful machine now -- a LOT of stuff goes wrong with
mesh now that I can
+run larger testbeds
+(and Sree demonstrated to me that playing around with which transport plugin
to use can have interesting effects)
+also, mesh constantly changes => new bugs
-testing voting:
-python test case with arbitrary number of authorities and voters
-
-close to working ...
-
-misc:
-gnunet-config always writes the whole default configuration with the
-requested change. What if, however, I don't want the default part to be
written?
-
-
Modified: gnunet-java/README
===================================================================
--- gnunet-java/README 2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/README 2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,7 +1,7 @@
Building gnunet-java
====================
-For building gnunet-java, gradle>=1.7 is required, see http://gradle.org/.
+For building gnunet-java, gradle>=1.11 is required, see http://gradle.org/.
Extending gnunet-java
Deleted: gnunet-java/bin/gnunet-dht
===================================================================
--- gnunet-java/bin/gnunet-dht 2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/bin/gnunet-dht 2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ "%GNJ_INSTALLED" = "true" ];
-then
- export CLASSPATH="%INSTALL_PATH/share/java/*"
-else
- DIR=`dirname $0`
- # if we are in the development environment use class files directly
instead of jar
- export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
-fi
-
-java -ea org.gnunet.dht.DistributedHashTable "$@"
Copied: gnunet-java/bin/gnunet-dht-java (from rev 32594,
gnunet-java/bin/gnunet-dht)
===================================================================
--- gnunet-java/bin/gnunet-dht-java (rev 0)
+++ gnunet-java/bin/gnunet-dht-java 2014-03-11 01:24:03 UTC (rev 32613)
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "%GNJ_INSTALLED" = "true" ];
+then
+ export CLASSPATH="%INSTALL_PATH/share/java/*"
+else
+ DIR=`dirname $0`
+ # if we are in the development environment use class files directly
instead of jar
+ export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
+fi
+
+java -ea org.gnunet.dht.DistributedHashTable "$@"
Deleted: gnunet-java/bin/gnunet-nse
===================================================================
--- gnunet-java/bin/gnunet-nse 2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/bin/gnunet-nse 2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ "%GNJ_INSTALLED" = "true" ];
-then
- export CLASSPATH="%INSTALL_PATH/share/java/*"
-else
- DIR=`dirname $0`
- # if we are in the development environment use class files directly
instead of jar
- export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
-fi
-
-java -ea org.gnunet.nse.NetworkSizeEstimation "$@"
Copied: gnunet-java/bin/gnunet-nse-java (from rev 32594,
gnunet-java/bin/gnunet-nse)
===================================================================
--- gnunet-java/bin/gnunet-nse-java (rev 0)
+++ gnunet-java/bin/gnunet-nse-java 2014-03-11 01:24:03 UTC (rev 32613)
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "%GNJ_INSTALLED" = "true" ];
+then
+ export CLASSPATH="%INSTALL_PATH/share/java/*"
+else
+ DIR=`dirname $0`
+ # if we are in the development environment use class files directly
instead of jar
+ export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
+fi
+
+java -ea org.gnunet.nse.NetworkSizeEstimation "$@"
Deleted: gnunet-java/bin/gnunet-peerinfo
===================================================================
--- gnunet-java/bin/gnunet-peerinfo 2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/bin/gnunet-peerinfo 2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ "%GNJ_INSTALLED" = "true" ];
-then
- export CLASSPATH="%INSTALL_PATH/share/java/*"
-else
- DIR=`dirname $0`
- # if we are in the development environment use class files directly
instead of jar
- export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
-fi
-
-java -ea org.gnunet.peerinfo.PeerInfo "$@"
Copied: gnunet-java/bin/gnunet-peerinfo-java (from rev 32594,
gnunet-java/bin/gnunet-peerinfo)
===================================================================
--- gnunet-java/bin/gnunet-peerinfo-java (rev 0)
+++ gnunet-java/bin/gnunet-peerinfo-java 2014-03-11 01:24:03 UTC (rev
32613)
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "%GNJ_INSTALLED" = "true" ];
+then
+ export CLASSPATH="%INSTALL_PATH/share/java/*"
+else
+ DIR=`dirname $0`
+ # if we are in the development environment use class files directly
instead of jar
+ export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
+fi
+
+java -ea org.gnunet.peerinfo.PeerInfo "$@"
Deleted: gnunet-java/bin/gnunet-resolver
===================================================================
--- gnunet-java/bin/gnunet-resolver 2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/bin/gnunet-resolver 2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ "%GNJ_INSTALLED" = "true" ];
-then
- export CLASSPATH="%INSTALL_PATH/share/java/*"
-else
- DIR=`dirname $0`
- # if we are in the development environment use class files directly
instead of jar
- export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
-fi
-
-java -ea org.gnunet.util.Resolver "$@"
Copied: gnunet-java/bin/gnunet-resolver-java (from rev 32594,
gnunet-java/bin/gnunet-resolver)
===================================================================
--- gnunet-java/bin/gnunet-resolver-java (rev 0)
+++ gnunet-java/bin/gnunet-resolver-java 2014-03-11 01:24:03 UTC (rev
32613)
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "%GNJ_INSTALLED" = "true" ];
+then
+ export CLASSPATH="%INSTALL_PATH/share/java/*"
+else
+ DIR=`dirname $0`
+ # if we are in the development environment use class files directly
instead of jar
+ export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
+fi
+
+java -ea org.gnunet.util.Resolver "$@"
Deleted: gnunet-java/bin/gnunet-statistics
===================================================================
--- gnunet-java/bin/gnunet-statistics 2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/bin/gnunet-statistics 2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ "%GNJ_INSTALLED" = "true" ];
-then
- export CLASSPATH="%INSTALL_PATH/share/java/*"
-else
- DIR=`dirname $0`
- # if we are in the development environment use class files directly
instead of jar
- export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
-fi
-
-java -ea org.gnunet.statistics.Statistics "$@"
Copied: gnunet-java/bin/gnunet-statistics-java (from rev 32594,
gnunet-java/bin/gnunet-statistics)
===================================================================
--- gnunet-java/bin/gnunet-statistics-java (rev 0)
+++ gnunet-java/bin/gnunet-statistics-java 2014-03-11 01:24:03 UTC (rev
32613)
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "%GNJ_INSTALLED" = "true" ];
+then
+ export CLASSPATH="%INSTALL_PATH/share/java/*"
+else
+ DIR=`dirname $0`
+ # if we are in the development environment use class files directly
instead of jar
+ export
CLASSPATH="$DIR/../build-gradle/classes/main/:$DIR/../build-gradle/resources/main/:$DIR/../lib/*"
+fi
+
+java -ea org.gnunet.statistics.StatisticsTool "$@"
Modified: gnunet-java/gradle/wrapper/gradle-wrapper.jar
===================================================================
(Binary files differ)
Modified: gnunet-java/gradle/wrapper/gradle-wrapper.properties
===================================================================
--- gnunet-java/gradle/wrapper/gradle-wrapper.properties 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/gradle/wrapper/gradle-wrapper.properties 2014-03-11
01:24:03 UTC (rev 32613)
@@ -1,6 +1,6 @@
-#Thu Aug 22 19:26:08 CEST 2013
+#Mon Mar 10 17:26:40 CET 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.7-bin.zip
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-bin.zip
Added: gnunet-java/gradlew.bat
===================================================================
--- gnunet-java/gradlew.bat (rev 0)
+++ gnunet-java/gradlew.bat 2014-03-11 01:24:03 UTC (rev 32613)
@@ -0,0 +1,90 @@
address@hidden "%DEBUG%" == "" @echo off
address@hidden
##########################################################################
address@hidden
address@hidden Gradle startup script for Windows
address@hidden
address@hidden
##########################################################################
+
address@hidden Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
address@hidden Add default JVM options here. You can also use JAVA_OPTS and
GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
address@hidden Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your
PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
address@hidden Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "address@hidden" == "4" goto 4NT_args
+
+:win9xME_args
address@hidden Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
address@hidden Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
address@hidden Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
address@hidden Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS%
"-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%"
org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
address@hidden End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code
instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
Modified: gnunet-java/lib/log4j-1.2.16.jar
===================================================================
(Binary files differ)
Modified: gnunet-java/lib/slf4j-api-1.6.4.jar
===================================================================
(Binary files differ)
Modified: gnunet-java/lib/slf4j-log4j12-1.6.4.jar
===================================================================
(Binary files differ)
Modified: gnunet-java/src/main/java/org/gnunet/arm/Arm.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/arm/Arm.java 2014-03-11 01:22:11 UTC
(rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/arm/Arm.java 2014-03-11 01:24:03 UTC
(rev 32613)
@@ -53,7 +53,7 @@
* further connection attempts.
*
* @param serviceName name of the service
- * @param resultHandler called with the result of the request
+ * @param resultHandler called with the result of the getRequestIdentifier
*/
public void requestServiceStop(String serviceName, ResultHandler
resultHandler) {
Modified: gnunet-java/src/main/java/org/gnunet/consensus/Consensus.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/consensus/Consensus.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/consensus/Consensus.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -89,7 +89,11 @@
AbsoluteTime startTime, AbsoluteTime deadline) {
client = new Client("consensus", cfg);
client.installReceiver(new ConsensusMessageReceiver());
+ String peersString = "";
+ for (PeerIdentity pi : peers)
+ peersString += pi + ", ";
+ logger.info("starting consensus with {} peers given to consensus
({})", peers.length, peersString);
JoinMessage m = new JoinMessage();
m.numPeers = peers.length;
m.peers = peers;
Modified:
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeDoneMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeDoneMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeDoneMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,7 +21,6 @@
package org.gnunet.consensus.messages;
-import org.gnunet.construct.MessageUnion;
import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
Modified:
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/consensus/messages/ConcludeMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,8 +20,8 @@
package org.gnunet.consensus.messages;
-import org.gnunet.construct.*;
-import org.gnunet.util.*;
+import org.gnunet.construct.UnionCase;
+import org.gnunet.util.GnunetMessage;
/**
* Notify the client of a new element.
Modified:
gnunet-java/src/main/java/org/gnunet/consensus/messages/JoinMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/consensus/messages/JoinMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/consensus/messages/JoinMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -37,6 +37,7 @@
public HashCode sessionId;
@NestedMessage
public AbsoluteTimeMessage startTime;
+ @NestedMessage
public AbsoluteTimeMessage deadline;
@VariableSizeArray(lengthField = "numPeers")
public PeerIdentity[] peers;
Modified:
gnunet-java/src/main/java/org/gnunet/consensus/messages/NewElementMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/consensus/messages/NewElementMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/consensus/messages/NewElementMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,7 +20,10 @@
package org.gnunet.consensus.messages;
-import org.gnunet.construct.*;
+import org.gnunet.construct.FillWith;
+import org.gnunet.construct.UInt16;
+import org.gnunet.construct.UInt8;
+import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
/**
Modified: gnunet-java/src/main/java/org/gnunet/construct/FrameSize.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/construct/FrameSize.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/construct/FrameSize.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,7 +20,10 @@
package org.gnunet.construct;
-import java.lang.annotation.*;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
/**
* Marker for the field storing the size of the enclosing frame in bytes.
Modified:
gnunet-java/src/main/java/org/gnunet/construct/MessageIdAnnotationProcessor.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/construct/MessageIdAnnotationProcessor.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/construct/MessageIdAnnotationProcessor.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -35,10 +35,11 @@
import javax.tools.StandardLocation;
import java.io.IOException;
import java.io.Writer;
-import java.lang.Integer;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
/**
Modified:
gnunet-java/src/main/java/org/gnunet/construct/ProtocolViolationException.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/construct/ProtocolViolationException.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/construct/ProtocolViolationException.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,8 +21,6 @@
package org.gnunet.construct;
-import java.util.LinkedList;
-
/**
* Thrown when a received message is invalid.
*
Modified: gnunet-java/src/main/java/org/gnunet/construct/ReflectUtil.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/construct/ReflectUtil.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/construct/ReflectUtil.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,7 +21,6 @@
package org.gnunet.construct;
-import java.lang.Integer;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
Modified: gnunet-java/src/main/java/org/gnunet/construct/parsers/FillParser.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/construct/parsers/FillParser.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/construct/parsers/FillParser.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -22,6 +22,7 @@
import org.gnunet.construct.Message;
import org.gnunet.construct.ReflectUtil;
+
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.nio.ByteBuffer;
Modified:
gnunet-java/src/main/java/org/gnunet/construct/parsers/UnionParser.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/construct/parsers/UnionParser.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/construct/parsers/UnionParser.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,7 +21,6 @@
package org.gnunet.construct.parsers;
import org.gnunet.construct.*;
-import org.gnunet.construct.ProtocolViolationException;
import java.lang.reflect.Field;
import java.nio.ByteBuffer;
Modified:
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeArrayParser.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeArrayParser.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeArrayParser.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,7 +21,6 @@
package org.gnunet.construct.parsers;
import org.gnunet.construct.Message;
-import org.gnunet.construct.ProtocolViolationException;
import org.gnunet.construct.ReflectUtil;
import java.lang.reflect.Array;
Modified:
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeStringParser.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeStringParser.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/construct/parsers/VariableSizeStringParser.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -44,7 +44,6 @@
import org.gnunet.construct.ReflectUtil;
import org.gnunet.construct.StringTerminationType;
-import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.nio.ByteBuffer;
import java.util.List;
Modified: gnunet-java/src/main/java/org/gnunet/core/Core.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/core/Core.java 2014-03-11 01:22:11 UTC
(rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/core/Core.java 2014-03-11 01:24:03 UTC
(rev 32613)
@@ -25,7 +25,8 @@
import org.gnunet.construct.MessageLoader;
import org.gnunet.mq.Envelope;
import org.gnunet.requests.MatchingRequestContainer;
-import org.gnunet.requests.RequestContainer;
+import org.gnunet.requests.Request;
+import org.gnunet.requests.RequestIdentifier;
import org.gnunet.util.*;
import org.grothoff.Runabout;
import org.slf4j.Logger;
@@ -99,7 +100,7 @@
/**
* Peers that we were notified about being connected to them.
- * Every connected peer is mapped to a generator for unique request IDs.
+ * Every connected peer is mapped to a generator for unique
getRequestIdentifier IDs.
*/
private HashMap<PeerIdentity, Integer> connectedPeers = Maps.newHashMap();
@@ -108,7 +109,7 @@
*/
private MatchingRequestContainer<RequestIdentification,
NotifyTransmitReadyRequest> ntrRequests;
- public static class NotifyTransmitReadyRequest extends
RequestContainer.Request {
+ public static class NotifyTransmitReadyRequest extends Request {
private final int size;
final public PeerIdentity target;
final public long priority;
@@ -136,7 +137,7 @@
return new Envelope(m);
}
- public void cancel() {
+ public void onCancel() {
// do nothing
}
}
@@ -200,7 +201,8 @@
public void visit(SendMessageReady m) {
logger.debug("got SendMessageReady");
RequestIdentification rid = new RequestIdentification(m.smrId,
m.peer);
- NotifyTransmitReadyRequest req = ntrRequests.getRequest(rid);
+ RequestIdentifier<NotifyTransmitReadyRequest> reqId =
ntrRequests.getRequestIdentifier(rid);
+ NotifyTransmitReadyRequest req = reqId.getRequest();
final SendMessage sm = new SendMessage();
sm.cork = 0;
@@ -279,7 +281,7 @@
* @param target the identity of the receiver
* @param size the size of the message we want to transmit
* @param transmitter called once the core service is ready to send message
- * @return a handle to cancel the notification
+ * @return a handle to onCancel the notification
*/
public Cancelable notifyTransmitReady(int priority, RelativeTime maxdelay,
PeerIdentity target, int size, final
MessageTransmitter transmitter) {
Modified:
gnunet-java/src/main/java/org/gnunet/core/NotifyInboundTrafficMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/core/NotifyInboundTrafficMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/core/NotifyInboundTrafficMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,8 +20,10 @@
package org.gnunet.core;
-import org.gnunet.construct.*;
-import org.gnunet.util.ATSInformation;
+import org.gnunet.construct.FillWith;
+import org.gnunet.construct.NestedMessage;
+import org.gnunet.construct.UInt8;
+import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
import org.gnunet.util.PeerIdentity;
Modified: gnunet-java/src/main/java/org/gnunet/core/RequestIdentification.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/core/RequestIdentification.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/core/RequestIdentification.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,6 +1,5 @@
package org.gnunet.core;
-import org.gnunet.peerinfo.PeerInfo;
import org.gnunet.util.PeerIdentity;
Modified: gnunet-java/src/main/java/org/gnunet/core/SendMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/core/SendMessage.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/core/SendMessage.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -22,7 +22,6 @@
import org.gnunet.construct.NestedMessage;
import org.gnunet.construct.UInt32;
-import org.gnunet.construct.UInt64;
import org.gnunet.construct.UnionCase;
import org.gnunet.util.AbsoluteTimeMessage;
import org.gnunet.util.GnunetMessage;
Modified: gnunet-java/src/main/java/org/gnunet/core/SendMessageReady.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/core/SendMessageReady.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/core/SendMessageReady.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -36,14 +36,14 @@
/**
* How many bytes are allowed for transmission?
* Guaranteed to be at least as big as the requested size,
- * or ZERO if the request is rejected (will timeout,
+ * or ZERO if the getRequestIdentifier is rejected (will timeout,
* peer disconnected, queue full, etc.).
*/
@UInt16
public int size;
/**
- * smrId from the request.
+ * smrId from the getRequestIdentifier.
*/
@UInt16
public int smrId;
Modified:
gnunet-java/src/main/java/org/gnunet/dht/ClientPutConfirmationMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/ClientPutConfirmationMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/ClientPutConfirmationMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -31,7 +31,7 @@
@UInt32
public int reserved;
/**
- * UID used to identify request with the response
+ * UID used to identify getRequestIdentifier with the response
*/
@UInt64
public long uid;
Modified: gnunet-java/src/main/java/org/gnunet/dht/ClientPutMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/ClientPutMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/ClientPutMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -41,7 +41,7 @@
@UInt32
public int desiredReplicationLevel;
/**
- * UID used to identify request with the response
+ * UID used to identify getRequestIdentifier with the response
*/
@UInt64
public long uid;
Modified: gnunet-java/src/main/java/org/gnunet/dht/DistributedHashTable.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/DistributedHashTable.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/DistributedHashTable.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -23,7 +23,8 @@
import com.google.common.base.Charsets;
import org.gnunet.mq.Envelope;
import org.gnunet.requests.MatchingRequestContainer;
-import org.gnunet.requests.RequestContainer;
+import org.gnunet.requests.Request;
+import org.gnunet.requests.RequestIdentifier;
import org.gnunet.requests.SequentialRequestContainer;
import org.gnunet.util.*;
import org.gnunet.util.getopt.Argument;
@@ -31,7 +32,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.*;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Set;
/**
* API for the gnunet dht service.
@@ -54,7 +57,7 @@
private MatchingRequestContainer<Long, GetRequest> getRequests;
private SequentialRequestContainer<MonitorRequest> monitorRequests;
- private class PutRequest extends RequestContainer.Request {
+ private class PutRequest extends Request {
public byte[] data;
public HashCode key;
public int replicationLevel;
@@ -79,12 +82,12 @@
return new Envelope(cpm);
}
- public void cancel() {
+ public void onCancel() {
}
}
- private class GetRequest extends RequestContainer.Request {
+ private class GetRequest extends Request {
public long uid;
public HashCode key;
public ResultCallback cb;
@@ -106,12 +109,12 @@
gm.uniqueId = uid;
return new Envelope(gm);
}
- public void cancel() {
+ public void onCancel() {
}
}
- private class MonitorRequest extends RequestContainer.Request {
+ private class MonitorRequest extends Request {
public int blockType;
public HashCode key;
public MonitorGetHandler getHandler;
@@ -140,7 +143,7 @@
return new Envelope(mss);
}
- public void cancel() {
+ public void onCancel() {
// todo: use priority requests
MonitorRequest cancelRequest = new MonitorRequest();
cancelRequest.getHandler = null;
@@ -154,9 +157,9 @@
private class DHTMessageReceiver extends RunaboutMessageReceiver {
public void visit(ClientPutConfirmationMessage pcm) {
- PutRequest thePutRequest = putRequests.getRequest(pcm.uid);
+ PutRequest thePutRequest =
putRequests.getAndRetireRequest(pcm.uid);
if (thePutRequest == null) {
- logger.warn("request UID not found");
+ logger.warn("getRequestIdentifier UID not found");
return;
}
if (thePutRequest.cont != null) {
@@ -165,9 +168,9 @@
}
public void visit(ClientResultMessage rm) {
- GetRequest theGetRequest = getRequests.getRequest(rm.uid);
+ GetRequest theGetRequest = getRequests.getAndRetireRequest(rm.uid);
if (theGetRequest == null) {
- logger.warn("request UID not found");
+ logger.warn("getRequestIdentifier UID not found");
return;
}
theGetRequest.cb.handleResult(AbsoluteTime.fromNetwork(rm.expiration), rm.key,
null, null,
@@ -176,14 +179,14 @@
}
public void visit(MonitorGetMessage monitorGetMessage) {
- for (MonitorRequest monitorRequest : monitorRequests.iter()) {
+ for (RequestIdentifier<MonitorRequest> monitorRequest :
monitorRequests.iter()) {
boolean typeOk = (monitorGetMessage.type == BlockType.ANY.val)
- || (monitorGetMessage.type ==
monitorRequest.blockType);
+ || (monitorGetMessage.type ==
monitorRequest.getRequest().blockType);
boolean keyOk = monitorGetMessage.key.isAllZero()
- || monitorGetMessage.key.equals(monitorRequest.key);
+ ||
monitorGetMessage.key.equals(monitorRequest.getRequest().key);
- if (keyOk && typeOk && monitorRequest.getHandler != null) {
- monitorRequest.getHandler.onGet(monitorGetMessage.options,
monitorGetMessage.type,
+ if (keyOk && typeOk && monitorRequest.getRequest().getHandler
!= null) {
+
monitorRequest.getRequest().getHandler.onGet(monitorGetMessage.options,
monitorGetMessage.type,
monitorGetMessage.hopCount,
monitorGetMessage.desiredReplicationLevel, monitorGetMessage.getPath,
monitorGetMessage.key);
}
@@ -191,14 +194,14 @@
}
public void visit(MonitorGetRespMessage monitorGetRespMessage) {
- for (MonitorRequest monitorRequest : monitorRequests.iter()) {
+ for (RequestIdentifier<MonitorRequest> monitorRequest :
monitorRequests.iter()) {
boolean typeOk = (monitorGetRespMessage.type ==
BlockType.ANY.val)
- || (monitorGetRespMessage.type ==
monitorRequest.blockType);
+ || (monitorGetRespMessage.type ==
monitorRequest.getRequest().blockType);
boolean keyOk = monitorGetRespMessage.key.isAllZero()
- ||
monitorGetRespMessage.key.equals(monitorRequest.key);
+ ||
monitorGetRespMessage.key.equals(monitorRequest.getRequest().key);
- if (keyOk && typeOk && monitorRequest.getResponseHandler !=
null) {
- monitorRequest.getResponseHandler.onGetResponse(
+ if (keyOk && typeOk &&
monitorRequest.getRequest().getResponseHandler != null) {
+
monitorRequest.getRequest().getResponseHandler.onGetResponse(
monitorGetRespMessage.type,
monitorGetRespMessage.getPath,
monitorGetRespMessage.putPath,
@@ -211,14 +214,14 @@
}
public void visit(MonitorPutMessage monitorPutMessage) {
- for (MonitorRequest monitorRequest : monitorRequests.iter()) {
+ for (RequestIdentifier<MonitorRequest> monitorRequest :
monitorRequests.iter()) {
boolean typeOk = (monitorPutMessage.type == BlockType.ANY.val)
- || (monitorPutMessage.type ==
monitorRequest.blockType);
+ || (monitorPutMessage.type ==
monitorRequest.getRequest().blockType);
boolean keyOk = monitorPutMessage.key.isAllZero()
- || monitorPutMessage.key.equals(monitorRequest.key);
+ ||
monitorPutMessage.key.equals(monitorRequest.getRequest().key);
- if (keyOk && typeOk && monitorRequest.putHandler != null) {
- monitorRequest.putHandler.onPut(monitorPutMessage.options,
monitorPutMessage.type,
+ if (keyOk && typeOk && monitorRequest.getRequest().putHandler
!= null) {
+
monitorRequest.getRequest().putHandler.onPut(monitorPutMessage.options,
monitorPutMessage.type,
monitorPutMessage.hopCount,
monitorPutMessage.expirationTime,
monitorPutMessage.putPath, monitorPutMessage.key,
monitorPutMessage.data);
}
@@ -274,14 +277,14 @@
/**
* Request results from the DHT.
*
- * @param timeout timeout for the request
+ * @param timeout timeout for the getRequestIdentifier
* @param type which type of data do we want to query for? (the
DHT does not support TYPE_ANY)
* @param key the key we want to query
* @param replication how many peers do we want to ask?
* @param routeOptions extra routing options, null for default
* @param xquery extra query parameters, defaults to null
* @param cb the callback object for results or failure
indication
- * @return a handle to cancel the request
+ * @return a handle to onCancel the getRequestIdentifier
*/
public Cancelable startGet(RelativeTime timeout, int type, HashCode key,
int replication, EnumSet<RouteOption>
routeOptions,
@@ -320,7 +323,7 @@
}
public static void main(String[] args) {
- new Program(args) {
+ new Program() {
@Argument(action = ArgumentAction.SET,
shortname = "p",
longname = "put",
@@ -390,7 +393,7 @@
@Override
public void cont(boolean success) {
if (success) {
- System.out.println("put request sent");
+ System.out.println("put getRequestIdentifier
sent");
} else {
System.out.println("error");
}
@@ -444,6 +447,6 @@
});
}
}
- }.start();
+ }.start(args);
}
}
Modified: gnunet-java/src/main/java/org/gnunet/dht/MonitorGetMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/MonitorGetMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/MonitorGetMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -40,7 +40,7 @@
public int options;
/**
- * The type of data in the request.
+ * The type of data in the getRequestIdentifier.
*/
@UInt32
public int type;
Modified: gnunet-java/src/main/java/org/gnunet/dht/MonitorGetRespMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/MonitorGetRespMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/MonitorGetRespMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -56,7 +56,7 @@
public AbsoluteTimeMessage expiration;
/**
- * The key of the corresponding GET request.
+ * The key of the corresponding GET getRequestIdentifier.
*/
@NestedMessage
public HashCode key;
Modified: gnunet-java/src/main/java/org/gnunet/dht/MonitorPutMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/MonitorPutMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/MonitorPutMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -38,7 +38,7 @@
public int options;
/**
- * The type of data in the request.
+ * The type of data in the getRequestIdentifier.
*/
@UInt32
public int type;
Modified: gnunet-java/src/main/java/org/gnunet/dht/MonitorStartStop.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/MonitorStartStop.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/MonitorStartStop.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -28,7 +28,7 @@
import org.gnunet.util.HashCode;
/**
- * Message to request monitoring messages, clients --> DHT service.
+ * Message to getRequestIdentifier monitoring messages, clients --> DHT
service.
*/
@UnionCase(153)
public class MonitorStartStop implements GnunetMessage.Body {
Modified: gnunet-java/src/main/java/org/gnunet/dht/RouteOption.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/dht/RouteOption.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/dht/RouteOption.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -39,7 +39,7 @@
*/
RECORD_ROUTE(2),
/**
- * This is a 'FIND-PEER' request, so approximate results are fine.
+ * This is a 'FIND-PEER' getRequestIdentifier, so approximate results are
fine.
*/
FIND_PEER(4),
/**
Modified: gnunet-java/src/main/java/org/gnunet/gns/GNS.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/gns/GNS.java 2014-03-11 01:22:11 UTC
(rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/gns/GNS.java 2014-03-11 01:24:03 UTC
(rev 32613)
@@ -24,8 +24,12 @@
import org.gnunet.gns.messages.ClientLookupResultMessage;
import org.gnunet.mq.Envelope;
import org.gnunet.requests.MatchingRequestContainer;
-import org.gnunet.requests.RequestContainer;
-import org.gnunet.util.*;
+import org.gnunet.requests.Request;
+import org.gnunet.requests.RequestIdentifier;
+import org.gnunet.util.Cancelable;
+import org.gnunet.util.Client;
+import org.gnunet.util.Configuration;
+import org.gnunet.util.RunaboutMessageReceiver;
import org.gnunet.util.crypto.EcdsaPrivateKey;
import org.gnunet.util.crypto.EcdsaPublicKey;
import org.slf4j.Logger;
@@ -42,7 +46,7 @@
*/
private MatchingRequestContainer<Long, LookupRequest> lookupRequests;
- private class LookupRequest extends RequestContainer.Request {
+ private class LookupRequest extends Request {
long uid;
String name;
EcdsaPublicKey zone;
@@ -85,12 +89,13 @@
public class GNSMessageReceiver extends RunaboutMessageReceiver {
public void visit(ClientLookupResultMessage m) {
- LookupRequest r = lookupRequests.pollRequest(m.id);
+ RequestIdentifier<LookupRequest> r =
lookupRequests.getRequestIdentifier(m.id);
if (null == r) {
- logger.warn("no matching request for lookup result");
+ logger.warn("no matching getRequestIdentifier for lookup
result");
return;
}
- r.proc.process(m.records);
+ r.getRequest().proc.process(m.records);
+ r.retire();
}
@Override
@@ -132,7 +137,7 @@
* shorten zone, we automatically add the respective
zone
* under that name)
* @param proc function to call on result
- * @return handle to the queued request
+ * @return handle to the queued getRequestIdentifier
*/
public Cancelable lookup(String name,
EcdsaPublicKey zone,
Modified: gnunet-java/src/main/java/org/gnunet/gns/Gns.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/gns/Gns.java 2014-03-11 01:22:11 UTC
(rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/gns/Gns.java 2014-03-11 01:24:03 UTC
(rev 32613)
@@ -23,8 +23,9 @@
import org.gnunet.gns.callbacks.LookupResultProcessor;
import org.gnunet.gns.messages.ClientLookupMessage;
import org.gnunet.gns.messages.ClientLookupResultMessage;
+import org.gnunet.requests.FixedMessageRequest;
import org.gnunet.requests.MatchingRequestContainer;
-import org.gnunet.requests.SimpleRequest;
+import org.gnunet.requests.RequestIdentifier;
import org.gnunet.util.*;
import org.gnunet.util.crypto.EcdsaPrivateKey;
import org.gnunet.util.crypto.EcdsaPublicKey;
@@ -40,7 +41,7 @@
/**
* All pending and active lookup requests.
*/
- private MatchingRequestContainer<Long,
SimpleRequest<LookupResultProcessor>> lookupRequests;
+ private MatchingRequestContainer<Long,
FixedMessageRequest<LookupResultProcessor>> lookupRequests;
/**
* Request ID for lookup requests.
@@ -57,12 +58,12 @@
public class GNSMessageReceiver extends RunaboutMessageReceiver {
public void visit(ClientLookupResultMessage m) {
- SimpleRequest<LookupResultProcessor> r =
lookupRequests.pollRequest(m.id);
+ RequestIdentifier<FixedMessageRequest<LookupResultProcessor>> r =
lookupRequests.getRequestIdentifier(m.id);
if (null == r) {
- logger.warn("no matching request for lookup result");
+ logger.warn("no matching getRequestIdentifier for lookup
result");
return;
}
- r.getContext().process(m.records);
+ r.getRequest().getContext().process(m.records);
}
@Override
@@ -87,7 +88,7 @@
*/
public Gns(Configuration cfg) {
client = new Client("gns", cfg);
- lookupRequests = new MatchingRequestContainer<Long,
SimpleRequest<LookupResultProcessor>>(client);
+ lookupRequests = new MatchingRequestContainer<Long,
FixedMessageRequest<LookupResultProcessor>>(client);
client.installReceiver(new GNSMessageReceiver());
}
@@ -104,7 +105,7 @@
* shorten zone, we automatically add the respective
zone
* under that name)
* @param proc function to call on result
- * @return handle to the queued request
+ * @return handle to the queued getRequestIdentifier
*/
public Cancelable lookup(String name,
EcdsaPublicKey zone,
@@ -126,7 +127,7 @@
m.type = type;
m.zone = zone;
- return lookupRequests.addRequest(m.id, new
SimpleRequest<LookupResultProcessor>(m, proc));
+ return lookupRequests.addRequest(m.id, new
FixedMessageRequest<LookupResultProcessor>(m, proc));
}
Modified: gnunet-java/src/main/java/org/gnunet/gns/GnsRecord.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/gns/GnsRecord.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/gns/GnsRecord.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -34,7 +34,6 @@
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.HashMap;
import java.util.Map;
public class GnsRecord implements Message {
Modified: gnunet-java/src/main/java/org/gnunet/gns/GnsTool.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/gns/GnsTool.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/gns/GnsTool.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -10,7 +10,7 @@
public class GnsTool {
public static void main(String[] args) {
- int ret = new Program(args) {
+ int ret = new Program() {
@Argument(
shortname = "u",
longname = "lookup",
@@ -75,7 +75,7 @@
});
}
- }.start();
+ }.start(args);
System.exit(ret);
}
}
Modified: gnunet-java/src/main/java/org/gnunet/gns/LookupResultProcessor.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/gns/LookupResultProcessor.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/gns/LookupResultProcessor.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -22,7 +22,7 @@
/**
- * Processor for GNS request results.
+ * Processor for GNS getRequestIdentifier results.
*/
public interface LookupResultProcessor {
/**
Modified:
gnunet-java/src/main/java/org/gnunet/gns/callbacks/LookupResultProcessor.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/gns/callbacks/LookupResultProcessor.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/gns/callbacks/LookupResultProcessor.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -23,7 +23,7 @@
import org.gnunet.gns.GnsRecord;
/**
- * Processor for GNS request results.
+ * Processor for GNS getRequestIdentifier results.
*/
public interface LookupResultProcessor {
/**
Modified:
gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -31,7 +31,7 @@
@UnionCase(500)
public class ClientLookupMessage implements GnunetMessage.Body {
/**
- * Unique identifier for this request (for key collisions).
+ * Unique identifier for this getRequestIdentifier (for key collisions).
*/
@UInt32
public long id;
Modified:
gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupResultMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupResultMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/gns/messages/ClientLookupResultMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -40,17 +40,19 @@
package org.gnunet.gns.messages;
-import org.gnunet.construct.*;
+import org.gnunet.construct.UInt32;
+import org.gnunet.construct.UnionCase;
+import org.gnunet.construct.VariableSizeArray;
import org.gnunet.gns.GnsRecord;
import org.gnunet.util.GnunetMessage;
/**
- * Message GNS service to client as a response to a lookup request.
+ * Message GNS service to client as a response to a lookup
getRequestIdentifier.
*/
@UnionCase(501)
public class ClientLookupResultMessage implements GnunetMessage.Body {
/**
- * Unique identifier for this request.
+ * Unique identifier for this getRequestIdentifier.
*/
@UInt32
public long id;
Modified: gnunet-java/src/main/java/org/gnunet/identity/Identity.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/identity/Identity.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/identity/Identity.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -24,7 +24,8 @@
import com.google.common.collect.Lists;
import org.gnunet.identity.messages.*;
import org.gnunet.mq.Envelope;
-import org.gnunet.requests.RequestContainer;
+import org.gnunet.requests.Request;
+import org.gnunet.requests.RequestIdentifier;
import org.gnunet.requests.SequentialRequestContainer;
import org.gnunet.util.*;
import org.gnunet.util.crypto.EcdsaPrivateKey;
@@ -124,7 +125,7 @@
}
}
- public abstract class IdentityRequest extends RequestContainer.Request {
+ public abstract class IdentityRequest extends Request {
public void onError(String errorMessage) {
throw new AssertionError("unexpected error message: " +
errorMessage);
@@ -353,7 +354,8 @@
}
public void visit(ResultCodeMessage m) {
- IdentityRequest r = requests.getRequest();
+ RequestIdentifier<IdentityRequest> rId =
requests.getRequestIdentifier();
+ IdentityRequest r = rId.getRequest();
if (null == r) {
logger.warn("unsolicited result code message");
return;
@@ -363,11 +365,12 @@
} else {
r.onResult();
}
- requests.next();
+ rId.retire();
}
public void visit(SetDefaultMessage m) {
- IdentityRequest r = requests.getRequest();
+ RequestIdentifier<IdentityRequest> rId =
requests.getRequestIdentifier();
+ IdentityRequest r = rId.getRequest();
if (!(r instanceof GetDefaultRequest)) {
logger.error("unexpected 'default ego' response");
return;
@@ -376,6 +379,7 @@
Ego ego = getEgoForKey(m.privateKey);
if (null != ego)
gdr.identityCallback.onEgo(ego);
+ rId.retire();
}
public void visit(final UpdateListMessage m) {
Modified:
gnunet-java/src/main/java/org/gnunet/identity/messages/ResultCodeMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/identity/messages/ResultCodeMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/identity/messages/ResultCodeMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -100,7 +100,9 @@
package org.gnunet.identity.messages;
-import org.gnunet.construct.*;
+import org.gnunet.construct.UInt32;
+import org.gnunet.construct.UnionCase;
+import org.gnunet.construct.ZeroTerminatedString;
import org.gnunet.util.GnunetMessage;
/**
Modified: gnunet-java/src/main/java/org/gnunet/mesh/ClientConnectMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/mesh/ClientConnectMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/mesh/ClientConnectMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,6 +1,7 @@
package org.gnunet.mesh;
-import org.gnunet.construct.*;
+import org.gnunet.construct.IntegerFill;
+import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
/**
Modified: gnunet-java/src/main/java/org/gnunet/mesh/ConnectHandler.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/mesh/ConnectHandler.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/mesh/ConnectHandler.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,6 +1,5 @@
package org.gnunet.mesh;
-import org.gnunet.peerinfo.PeerInfo;
import org.gnunet.util.PeerIdentity;
/**
Modified: gnunet-java/src/main/java/org/gnunet/mesh/DataMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/mesh/DataMessage.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/mesh/DataMessage.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -1,8 +1,10 @@
package org.gnunet.mesh;
-import org.gnunet.construct.*;
+import org.gnunet.construct.FillWith;
+import org.gnunet.construct.UInt32;
+import org.gnunet.construct.UInt8;
+import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
-import org.gnunet.util.PeerIdentity;
/**
* ...
Modified: gnunet-java/src/main/java/org/gnunet/mesh/MeshRunabout.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/mesh/MeshRunabout.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/mesh/MeshRunabout.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -1,6 +1,5 @@
package org.gnunet.mesh;
-import org.gnunet.util.PeerIdentity;
import org.grothoff.Runabout;
/**
Modified: gnunet-java/src/main/java/org/gnunet/mesh/TunnelDestroyMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/mesh/TunnelDestroyMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/mesh/TunnelDestroyMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,11 +1,9 @@
package org.gnunet.mesh;
import org.gnunet.construct.FixedSizeIntegerArray;
-import org.gnunet.construct.NestedMessage;
import org.gnunet.construct.UInt32;
import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
-import org.gnunet.util.PeerIdentity;
/**
* ...
Modified: gnunet-java/src/main/java/org/gnunet/mq/Envelope.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/mq/Envelope.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/mq/Envelope.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -26,10 +26,10 @@
public void cancel() {
if (parentQueue == null)
- throw new AssertionError("can not cancel an unqueued message");
+ throw new AssertionError("can not onCancel an unqueued message");
}
- /* pkg-private */ void invokeSentNotification() {
+ void invokeSentNotification() {
if (null != notifySentHandler)
notifySentHandler.onSent();
}
Modified: gnunet-java/src/main/java/org/gnunet/mq/MessageQueue.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/mq/MessageQueue.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/mq/MessageQueue.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -88,7 +88,7 @@
/**
* Cancel sending an envelope. The envelope must be queued in this message
queue.
*
- * @param ev the envelope to cancel
+ * @param ev the envelope to onCancel
*/
/* pkg-private */ void cancelEnvelope(Envelope ev) {
if (null == currentEnvelope)
Modified: gnunet-java/src/main/java/org/gnunet/nse/NetworkSizeEstimation.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/nse/NetworkSizeEstimation.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/nse/NetworkSizeEstimation.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -83,7 +83,7 @@
/**
- * A handle for a subscription to the network size estimation service, may
be used to cancel the
+ * A handle for a subscription to the network size estimation service, may
be used to onCancel the
* subscription.
*/
public class Subscription implements Cancelable {
@@ -112,7 +112,7 @@
* Subscribe for updates from the service.
*
* @param s callback for updates
- * @return a subscription handle that may be used to cancel the
subscription
+ * @return a subscription handle that may be used to onCancel the
subscription
*/
public Cancelable subscribe(Subscriber s) {
subscribers.add(s);
@@ -141,7 +141,7 @@
}
public static void main(String[] args) {
- new Program(args) {
+ new Program() {
@Argument(action = ArgumentAction.SET,
shortname = "w",
longname = "watch",
@@ -162,6 +162,6 @@
};
svc.subscribe(subscriber);
}
- }.start();
+ }.start(args);
}
}
Modified: gnunet-java/src/main/java/org/gnunet/nse/UpdateMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/nse/UpdateMessage.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/nse/UpdateMessage.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -1,7 +1,9 @@
package org.gnunet.nse;
-import org.gnunet.construct.*;
import org.gnunet.construct.DoubleValue;
+import org.gnunet.construct.NestedMessage;
+import org.gnunet.construct.UInt32;
+import org.gnunet.construct.UnionCase;
import org.gnunet.util.AbsoluteTimeMessage;
import org.gnunet.util.GnunetMessage;
Modified: gnunet-java/src/main/java/org/gnunet/peerinfo/ListAllPeersMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/peerinfo/ListAllPeersMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/peerinfo/ListAllPeersMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,11 +20,9 @@
package org.gnunet.peerinfo;
-import org.gnunet.construct.NestedMessage;
import org.gnunet.construct.UInt32;
import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
-import org.gnunet.util.PeerIdentity;
/**
* Message requesting a listing of all known peers,
Modified: gnunet-java/src/main/java/org/gnunet/peerinfo/PeerInfo.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/peerinfo/PeerInfo.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/peerinfo/PeerInfo.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -22,7 +22,7 @@
import org.gnunet.hello.HelloMessage;
import org.gnunet.mq.Envelope;
-import org.gnunet.requests.RequestContainer;
+import org.gnunet.requests.Request;
import org.gnunet.requests.SequentialRequestContainer;
import org.gnunet.util.*;
import org.slf4j.Logger;
@@ -47,7 +47,7 @@
*/
private SequentialRequestContainer<PeerIterateRequest> iterateRequests;
- private class PeerIterateRequest extends RequestContainer.Request {
+ private class PeerIterateRequest extends Request {
public PeerIdentity peer;
public PeerProcessor peerProcessor;
public boolean friendOnly;
@@ -72,17 +72,16 @@
}
}
- public void cancel() {
+ public void onCancel() {
canceled = true;
}
}
private class PeerInfoMessageReceiver extends RunaboutMessageReceiver {
public void visit(InfoEnd infoEnd) {
- PeerIterateRequest r = iterateRequests.getRequest();
+ PeerIterateRequest r = iterateRequests.getAndRetireRequest();
if (!r.canceled)
r.peerProcessor.onEnd();
- iterateRequests.next();
}
public void visit(InfoMessage infoMessage) {
PeerIterateRequest r = iterateRequests.getRequest();
@@ -102,9 +101,6 @@
client = new Client("peerinfo", cfg);
client.installReceiver(new PeerInfoMessageReceiver());
iterateRequests = new
SequentialRequestContainer<PeerIterateRequest>(client);
- // Make sure that new requests are only sent once the old request has
finished.
- // Otherwise, the peerinfo service would send the answers interleaved.
- iterateRequests.setOverlap(false);
}
/**
@@ -136,7 +132,7 @@
}
public static void main(String... args) {
- new Program(args) {
+ new Program() {
@Override
public void run() {
final PeerInfo peerInfo = new PeerInfo(getConfiguration());
@@ -153,6 +149,6 @@
}
});
}
- }.start();
+ }.start(args);
}
}
Modified:
gnunet-java/src/main/java/org/gnunet/requests/MatchingRequestContainer.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/requests/MatchingRequestContainer.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/requests/MatchingRequestContainer.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,3 +1,24 @@
+/*
+ This file is part of GNUnet.
+ (C) 2014 Christian Grothoff (and other contributing authors)
+
+ GNUnet is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
+
+ GNUnet is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNUnet; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+ */
+
+
package org.gnunet.requests;
import com.google.common.collect.Maps;
@@ -8,13 +29,13 @@
/**
- * Container for requests that are responded to with a matching request
identification
+ * Container for requests that are responded to with a matching
getRequestIdentifier identification
*/
-public class MatchingRequestContainer<K, T extends RequestContainer.Request>
extends RequestContainer {
+public class MatchingRequestContainer<K, T extends Request> extends
RequestContainer {
/**
* All queued requests.
*/
- private Map<K,T> requests = Maps.newHashMap();
+ private Map<K,Identifier> requests = Maps.newHashMap();
/**
* Message queue to send to requests over.
@@ -25,48 +46,48 @@
this.mq = mq;
}
+ private class Identifier extends SimpleRequestIdentifier<T> {
+ final K key;
+
+ public Identifier(T request, K key) {
+ super(request);
+ this.key = key;
+ }
+
+ @Override
+ public void retire() {
+ super.retire();
+ requests.remove(key);
+ }
+ }
+
public Cancelable addRequest(K key, final T request) {
if (requests.containsKey(key))
- throw new AssertionError("key already present in request
container");
- requests.put(key, request);
- mq.send(request.assembleRequest());
- return new Cancelable() {
- @Override
- public void cancel() {
- setRequestCancelled(request);
- if (isRequestTransmitting(request)) {
- cancelRequestTransmission(request);
- } else {
- request.cancel();
- }
- }
- };
+ throw new AssertionError("key already present in
getRequestIdentifier container");
+ Identifier identifier = new Identifier(request, key);
+ requests.put(key, identifier);
+ identifier.send(mq);
+ return identifier;
}
@Override
public void restart() {
- Map<K,T> requestsOld = requests;
+ Map<K, Identifier> requestsOld = requests;
requests = Maps.newHashMap();
- for (Map.Entry<K,T> e : requestsOld.entrySet()) {
- if (!isRequestCancelled(e.getValue())) {
- setRequestTransmitting(e.getValue(), false);
- addRequest(e.getKey(), e.getValue());
- }
+ for (Map.Entry<K,Identifier> e : requestsOld.entrySet()) {
+ addRequest(e.getKey(), e.getValue().getRequest());
}
}
- public T getRequest(K key) {
+ public RequestIdentifier<T> getRequestIdentifier(K key) {
return requests.get(key);
}
- /**
- * Retrieve the request matching the given key, and remove it.
- * Return null if there is no matching request.
- *
- * @param key key to look for
- * @return request, or null
- */
- public T pollRequest(K key) {
- return requests.remove(key);
+ public T getAndRetireRequest(K key) {
+ RequestIdentifier<T> i = getRequestIdentifier(key);
+ if (null == i)
+ return null;
+ i.retire();
+ return i.getRequest();
}
}
Modified: gnunet-java/src/main/java/org/gnunet/requests/RequestContainer.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/requests/RequestContainer.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/requests/RequestContainer.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,90 +1,31 @@
-package org.gnunet.requests;
+/*
+ This file is part of GNUnet.
+ (C) 2014 Christian Grothoff (and other contributing authors)
+ GNUnet is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
-import org.gnunet.mq.Envelope;
-import org.gnunet.util.Cancelable;
+ GNUnet is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with GNUnet; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+ */
+
+package org.gnunet.requests;
+
/**
* Container for requests to a service.
*/
public abstract class RequestContainer {
/**
- * Do we allow sending pending requests while
- * other requests are still active (true), or do we send
- * requests one-by-one (false)?
+ * Re-send all active and pending requests.
*/
- protected boolean overlap = true;
-
- /**
- * A request that can be put in a request container.
- */
- public abstract static class Request {
- private boolean transmitting;
- private boolean canceled;
- private Cancelable cancelRequest;
-
- /**
- * Create an envelope for executing the request.
- *
- * @return Envelope to be sent to the service with the request message.
- */
- public abstract Envelope assembleRequest();
-
- /**
- * Implement cancellation logic for requests.
- * Only called when the request has already been sent to the service.
- *
- * By default, canceling a request throws an exception.
- */
- public void cancel() {
- throw new AssertionError("request of type " + this.getClass() + "
can not be canceled (not implemented)");
- }
- }
-
- /**
- * Re-send all requests in the queue that have not been canceled.
- */
public abstract void restart();
-
- /**
- * Allow or disallow requests to be send while other requests in the queue
have not been completed.
- *
- * @param overlap true to allow overlapped requests, false to disallow them
- */
- public void setOverlap(boolean overlap) {
- this.overlap = overlap;
- }
-
- /**
- * Check if the given request is transmitting, that is, the request
- * is waiting to be sent to the service.
- *
- * @param r request
- * @return whether the request is still being transmitted
- */
- protected boolean isRequestTransmitting(Request r) {
- return r.transmitting;
- }
-
- protected void setRequestTransmitting(Request r, boolean transmitting) {
- r.transmitting = transmitting;
- }
-
- protected void setRequestTransmissionCancel(Request request, Cancelable
cancel) {
- request.cancelRequest = cancel;
- }
-
- protected void cancelRequestTransmission(Request r) {
- r.cancelRequest.cancel();
- r.cancelRequest = null;
- }
-
- protected void setRequestCancelled(Request r) {
- r.canceled = true;
- }
-
- protected boolean isRequestCancelled(Request r) {
- return r.canceled;
- }
-
}
Modified:
gnunet-java/src/main/java/org/gnunet/requests/SequentialRequestContainer.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/requests/SequentialRequestContainer.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/requests/SequentialRequestContainer.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,86 +1,153 @@
+/*
+ This file is part of GNUnet.
+ (C) 2014 Christian Grothoff (and other contributing authors)
+
+ GNUnet is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
+
+ GNUnet is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNUnet; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+ */
+
package org.gnunet.requests;
-import org.gnunet.mq.Envelope;
import org.gnunet.mq.MessageQueue;
-import org.gnunet.mq.NotifySentHandler;
-import org.gnunet.util.Cancelable;
import java.util.LinkedList;
/**
* Container for requests that are responded to in sequential order.
*/
-public class SequentialRequestContainer<T extends RequestContainer.Request>
extends RequestContainer {
- private LinkedList<T> requests = new LinkedList<T>();
- private MessageQueue mq;
+public class SequentialRequestContainer<T extends Request> extends
RequestContainer {
+ /**
+ * Allow overlapping requests.
+ */
+ private boolean overlap;
+ /**
+ * Request in our queue with information about them.
+ */
+ private LinkedList<Identifier> requests = new LinkedList<Identifier>();
+ /**
+ * Message queue that is used to send envelopes.
+ */
+ private final MessageQueue mq;
- int requestsActive = 0;
+ /**
+ * Number of active requests.
+ */
+ private int requestsActive = 0;
- public SequentialRequestContainer(MessageQueue mq) {
+ /**
+ * Create a sequential request container that sends messages with the given
+ * message queue.
+ *
+ * @param mq message queue to send messages with
+ * @param overlap allow sending requests while other request have not yet
completed
+ */
+ public SequentialRequestContainer(MessageQueue mq, boolean overlap) {
this.mq = mq;
+ this.overlap = overlap;
}
+ /**
+ * Create a sequential request container that sends messages with the given
+ * message queue. Do not allow other requests to be send while the
current request
+ * is still active.
+ *
+ * @param mq message queue to send messages with
+ */
+ public SequentialRequestContainer(MessageQueue mq) {
+ this(mq, false);
+ }
+ /**
+ * Get the current request's identifier.
+ *
+ * @return current request
+ */
+ public RequestIdentifier<T> getRequestIdentifier() {
+ return requests.peekFirst();
+ }
+ /**
+ * Get the current request and retire it.
+ * If there is no current request, null will be returned.
+ *
+ * @return current request
+ */
+ public T getAndRetireRequest() {
+ RequestIdentifier<T> i = getRequestIdentifier();
+ if (null == i)
+ return null;
+ i.retire();
+ return i.getRequest();
+ }
+
+ public Iterable<RequestIdentifier<T>> iter() {
+ return (Iterable) requests;
+ }
+
+ /**
+ * Get the current request.
+ *
+ * @return the current request.
+ */
public T getRequest() {
- return requests.getFirst();
+ RequestIdentifier<T> i = getRequestIdentifier();
+ if (null == i)
+ return null;
+ return i.getRequest();
}
- public void next() {
- if (requestsActive == 0 || requests.isEmpty())
- throw new AssertionError();
- requestsActive--;
- requests.removeFirst();
- if (requestsActive == 0 && !requests.isEmpty()) {
- Request r = requests.getFirst();
- setRequestTransmitting(r, true);
- Envelope ev = r.assembleRequest();
- setRequestTransmissionCancel(r, ev);
- mq.send(r.assembleRequest());
- requestsActive++;
+ /**
+ * A request identifier in a sequential request container.
+ */
+ private class Identifier extends SimpleRequestIdentifier<T> {
+ public Identifier(T request) {
+ super(request);
}
+
+ @Override
+ public void retire() {
+ super.retire();
+ if (requestsActive == 0 || requests.isEmpty())
+ throw new AssertionError();
+ boolean found = requests.remove(this);
+ if (!found)
+ throw new AssertionError("request not in queue");
+ requestsActive--;
+ Identifier next = requests.peekFirst();
+ if (null == next || next.queued)
+ return;
+ if (requestsActive == 0 || overlap)
+ next.send(mq);
+ }
}
- public Cancelable addRequest(final T request) {
- requests.addLast(request);
+ public RequestIdentifier<T> addRequest(final T request) {
+ final Identifier identifier = new Identifier(request);
+ requests.addLast(identifier);
+ // only send immediately if we are allowed to
if (overlap || requestsActive == 0) {
- requestsActive++;
- setRequestTransmitting(request, true);
- Envelope ev = request.assembleRequest();
- ev.notifySent(new NotifySentHandler() {
- @Override
- public void onSent() {
- setRequestTransmitting(request, false);
- }
- });
- setRequestTransmissionCancel(request, ev);
- mq.send(request.assembleRequest());
+ identifier.send(mq);
+ requestsActive += 1;
}
- return new Cancelable() {
- @Override
- public void cancel() {
- setRequestCancelled(request);
- if (isRequestTransmitting(request)) {
- cancelRequestTransmission(request);
- } else {
- request.cancel();
- }
- }
- };
+ return identifier;
}
@Override
public void restart() {
- LinkedList<T> requestsOld = requests;
- requests = new LinkedList<T>();
- for (T r : requestsOld) {
- if (!isRequestCancelled(r)) {
- setRequestTransmitting(r, false);
- addRequest(r);
- }
+ LinkedList<Identifier> requestsOld = requests;
+ requests = new LinkedList<Identifier>();
+ for (Identifier r : requestsOld) {
+ addRequest(r.getRequest());
}
}
-
-
- public Iterable<T> iter() {
- return requests;
- }
}
Modified: gnunet-java/src/main/java/org/gnunet/requests/package-info.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/requests/package-info.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/requests/package-info.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,6 +1,6 @@
/*
This file is part of GNUnet.
- (C) 2011, 2012 Christian Grothoff (and other contributing authors)
+ (C) 2014 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
@@ -18,7 +18,6 @@
Boston, MA 02111-1307, USA.
*/
-
/**
* General mechanism for queueing requests to a service.
*/
Modified: gnunet-java/src/main/java/org/gnunet/secretsharing/Ciphertext.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/secretsharing/Ciphertext.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/secretsharing/Ciphertext.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -28,7 +28,7 @@
import java.math.BigInteger;
/**
- * ElGamal ciphertext
+ * ElGamal ciphertext.
*/
public class Ciphertext implements Message {
@FixedSizeIntegerArray(signed = true, bitSize = 8, length =
Parameters.elgamalBits / 8)
@@ -82,4 +82,17 @@
Parameters.elgamalBits);
return ciphertext;
}
+
+ /**
+ * Get the ciphertext that is the identity for multiplication.
+ *
+ * @return multiplicative identity ciphertext
+ */
+ public static Ciphertext identity() {
+ Ciphertext ciphertext = new Ciphertext();
+ ciphertext.allocate();
+ ciphertext.c_1 = BigIntegers.serializeUnsigned(BigInteger.ONE,
Parameters.elgamalBits);
+ ciphertext.c_2 = BigIntegers.serializeUnsigned(BigInteger.ONE,
Parameters.elgamalBits);
+ return ciphertext;
+ }
}
Modified: gnunet-java/src/main/java/org/gnunet/secretsharing/KeyGeneration.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/secretsharing/KeyGeneration.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/secretsharing/KeyGeneration.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -76,7 +76,7 @@
}
/**
- * Disconnect from the secretsharing service and cancel the operation.
+ * Disconnect from the secretsharing service and onCancel the operation.
* The SecretReadyCallback will not be called after calling disconnect.
*/
public void disconnect() {
Modified: gnunet-java/src/main/java/org/gnunet/secretsharing/Plaintext.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/secretsharing/Plaintext.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/secretsharing/Plaintext.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,7 +20,6 @@
package org.gnunet.secretsharing;
-import com.google.common.base.Preconditions;
import org.gnunet.construct.FixedSizeIntegerArray;
import org.gnunet.construct.Message;
import org.gnunet.util.BigIntegers;
@@ -42,13 +41,13 @@
public long bruteForceDiscreteLog(final long l) {
BigInteger needle = new BigInteger(1, bits);
- for (long i = -l; i < l; i++) {
+ for (long i = -l; i <= l; i++) {
BigInteger val;
val = Parameters.elgamalG.modPow(BigInteger.valueOf(l),
Parameters.elgamalP);
if (val.equals(needle))
return i;
}
- throw new ArithmeticException("discrete log has no solution in given
range");
+ throw new ArithmeticException(String.format("discrete log has no
solution in range [%s, %s]", -l, l));
}
public Ciphertext encrypt(ThresholdPublicKey publicKey) {
Modified:
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/ClientDecryptMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/ClientDecryptMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/ClientDecryptMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -28,7 +28,7 @@
import org.gnunet.util.GnunetMessage;
/**
- * Sent by the client to the service to request the cooperative decryption of a
+ * Sent by the client to the service to getRequestIdentifier the cooperative
decryption of a
* ciphertext.
*/
@UnionCase(781)
Modified:
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/GenerateMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/GenerateMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/secretsharing/messages/GenerateMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -26,7 +26,10 @@
import org.gnunet.construct.UInt16;
import org.gnunet.construct.UnionCase;
import org.gnunet.construct.VariableSizeArray;
-import org.gnunet.util.*;
+import org.gnunet.util.AbsoluteTimeMessage;
+import org.gnunet.util.GnunetMessage;
+import org.gnunet.util.HashCode;
+import org.gnunet.util.PeerIdentity;
@UnionCase(780)
Modified: gnunet-java/src/main/java/org/gnunet/statistics/GetRequest.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/statistics/GetRequest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/statistics/GetRequest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,16 +1,13 @@
package org.gnunet.statistics;
import org.gnunet.mq.Envelope;
-import org.gnunet.mq.MessageQueue;
-import org.gnunet.requests.RequestContainer;
+import org.gnunet.requests.Request;
+import org.gnunet.statistics.messages.GetMessage;
-/**
- */
-public class GetRequest extends RequestContainer.Request {
+class GetRequest extends Request {
private final String subsystem;
private final String name;
public final StatisticsReceiver receiver;
- private RequestContainer parent;
public GetRequest(String subsystem, String name, StatisticsReceiver
receiver) {
this.subsystem = subsystem;
@@ -27,5 +24,6 @@
}
public void cancel() {
+ // nothing we can do here (statistics service has no message to cancel
requests)
}
}
Modified: gnunet-java/src/main/java/org/gnunet/statistics/Statistics.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/statistics/Statistics.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/statistics/Statistics.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -18,19 +18,17 @@
Boston, MA 02111-1307, USA.
*/
-/*
- * The stuff below does nothing whatsoever, first milestone of
- * this project is to implement the StatisticsService api
- *
- */
-
package org.gnunet.statistics;
import org.gnunet.requests.MatchingRequestContainer;
+import org.gnunet.requests.RequestIdentifier;
import org.gnunet.requests.SequentialRequestContainer;
+import org.gnunet.requests.TimeoutHandler;
+import org.gnunet.statistics.messages.GetResponseEndMessage;
+import org.gnunet.statistics.messages.GetResponseMessage;
+import org.gnunet.statistics.messages.SetMessage;
+import org.gnunet.statistics.messages.WatchResponseMessage;
import org.gnunet.util.*;
-import org.gnunet.util.getopt.Argument;
-import org.gnunet.util.getopt.ArgumentAction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,39 +46,68 @@
/**
* Client connecting us to the statistics service.
*/
- private final Client client;
+ private Client client;
- SequentialRequestContainer<SetRequest> setRequests;
- SequentialRequestContainer<GetRequest> getRequests;
- MatchingRequestContainer<Long,WatchRequest> watchRequests;
+ /**
+ * All request to the service for getting a value.
+ */
+ private final SequentialRequestContainer<GetRequest> getRequests;
+ /**
+ * All requests to the service for watching a value.
+ */
+ private final MatchingRequestContainer<Long,WatchRequest> watchRequests;
+
+ /**
+ * Do we wait for the final 'TestMessage' from the service and
+ * do not accept any new requests?
+ */
private boolean destroyRequested;
- private long wid = 0;
+ /**
+ * Next unused ID to identity watch requests/responses.
+ */
+ private long nextWatchId = 0;
+ /**
+ * Timeout when waiting for the TestMessage after destruction of
+ * this statistics handle has been requested.
+ */
+ private Scheduler.TaskIdentifier destroyTimeout;
+
+ /**
+ * Messages from the statistics service are dispatched to an instance of
this class.
+ */
public class StatisticsMessageReceiver extends RunaboutMessageReceiver {
public void visit(GetResponseMessage m) {
- GetRequest r = getRequests.getRequest();
+ RequestIdentifier<GetRequest> r =
getRequests.getRequestIdentifier();
if (r != null)
- r.receiver.onReceive(m.subsystemName, m.statisticName,
m.value);
+ r.getRequest().receiver.onReceive(m.subsystemName,
m.statisticName, m.value);
}
- public void visit(GetResponseEndMessage m) {
- GetRequest r = getRequests.getRequest();
- if (r != null)
- r.receiver.onDone();
- //noinspection ConstantConditions
- if (getRequests != null)
- getRequests.next();
+ public void visit(@SuppressWarnings("UnusedParameters")
GetResponseEndMessage m) {
+ RequestIdentifier<GetRequest> r =
getRequests.getRequestIdentifier();
+ if (r != null) {
+ r.retire();
+ r.getRequest().receiver.onDone();
+ }
}
- public void visit(TestMessage m) {
- System.out.println("got back TEST message");
+ public void visit(@SuppressWarnings("UnusedParameters") TestMessage m)
{
+ // The TestMessage indicates that the statistics service received
all our
+ // messages, we can disconnect.
+ if (null != destroyTimeout) {
+ destroyTimeout.cancel();
+ destroyTimeout = null;
+ } else {
+ logger.error("protocol violation: destroy timeout is 'null'
but got test message");
+ }
client.disconnect();
}
public void visit(WatchResponseMessage wrm) {
- WatchRequest r = watchRequests.getRequest((long) wrm.wid);
+ RequestIdentifier<WatchRequest> ri =
watchRequests.getRequestIdentifier((long) wrm.wid);
+ WatchRequest r = ri.getRequest();
if (r != null) {
r.watcher.onReceive(r.subsystem, r.name, wrm.value);
}
@@ -88,12 +115,19 @@
@Override
public void handleError() {
+ if (null == client)
+ throw new AssertionError();
if (!destroyRequested) {
client.reconnect();
getRequests.restart();
- setRequests.restart();
watchRequests.restart();
}
+ // if everything is shutting down, maybe the statistics service
+ // was shut down, and can't respond with the TestMessage anymore.
+ if (null != destroyTimeout) {
+ destroyTimeout.cancel();
+ destroyTimeout = null;
+ }
}
}
@@ -101,26 +135,32 @@
client = new Client("statistics", cfg);
client.installReceiver(new StatisticsMessageReceiver());
getRequests = new SequentialRequestContainer<GetRequest>(client);
- setRequests = new SequentialRequestContainer<SetRequest>(client);
watchRequests = new MatchingRequestContainer<Long,
WatchRequest>(client);
}
/**
* Retrieve values from statistics.
- * Only one instance of this request may be active simultaneously.
+ * Only one instance of this getRequestIdentifier may be active
simultaneously.
* Upon cancellation
*
* @param timeout time after we give up and call receiver.onTimeout
* @param subsystem the subsystem of interest
* @param name name of the statistics value belongs to
* @param receiver callback
- * @return handle to cancel the request
+ * @return handle to onCancel the getRequestIdentifier
*/
public Cancelable get(RelativeTime timeout, final String subsystem, final
String name,
final StatisticsReceiver receiver) {
- if (destroyRequested)
+ if (destroyRequested || client == null)
throw new AssertionError("already destroyed");
- return getRequests.addRequest(new GetRequest(subsystem, name,
receiver));
+ RequestIdentifier<GetRequest> identifier = getRequests.addRequest(new
GetRequest(subsystem, name, receiver));
+ identifier.setTimeout(timeout, new TimeoutHandler() {
+ @Override
+ public void onTimeout() {
+ receiver.onTimeout();
+ }
+ });
+ return identifier;
}
/**
@@ -129,12 +169,17 @@
* @param name name of the entry
* @param value desired value
* @param persist keep value even if the statistics service restarts
- * @return a handle to cancel the request
*/
- public Cancelable set(final String subsystem, final String name, final
long value, boolean persist) {
- if (destroyRequested)
+ public void set(final String subsystem, final String name, final long
value, boolean persist) {
+ if (destroyRequested || client == null)
throw new AssertionError("already destroyed");
- return setRequests.addRequest(new SetRequest(subsystem, name, value,
false, persist));
+ SetMessage m = new SetMessage();
+ m.statisticName = name;
+ m.subsystemName = subsystem;
+ m.value = value;
+ if (persist)
+ m.flags |= SetMessage.SETFLAG_PERSIST;
+ client.send(m);
}
/**
@@ -143,12 +188,18 @@
* @param name name of the entry
* @param delta relative difference to the old value
* @param persist keep value even if the statistics service restarts
- * @return a handle to cancel the request
*/
- public Cancelable update(final String subsystem, final String name, final
long delta, boolean persist) {
- if (destroyRequested)
+ public void update(final String subsystem, final String name, final long
delta, boolean persist) {
+ if (destroyRequested || null == client)
throw new AssertionError("already destroyed");
- return setRequests.addRequest(new SetRequest(subsystem, name, delta,
true, persist));
+ SetMessage m = new SetMessage();
+ m.statisticName = name;
+ m.subsystemName = subsystem;
+ m.value = delta;
+ if (persist)
+ m.flags |= SetMessage.SETFLAG_PERSIST;
+ m.flags |= SetMessage.SETFLAG_RELATIVE;
+ client.send(m);
}
/**
@@ -157,154 +208,48 @@
* @param subsystem the subsystem to watch
* @param name the value to watch
* @param watcher the object that receives the updates
- * @return a handle to cancel the request
+ * @return a handle to onCancel the getRequestIdentifier
*/
public Cancelable watch(final String subsystem, final String name,
StatisticsWatcher watcher) {
- if (destroyRequested)
+ if (destroyRequested || null == client)
throw new AssertionError("already destroyed");
WatchRequest r = new WatchRequest(subsystem, name, watcher);
- return watchRequests.addRequest(wid++, r);
+ return watchRequests.addRequest(nextWatchId++, r);
}
+
/**
* Destroy handle to the statistics service. Always finishes writing
pending values.
*/
public void destroy() {
- destroyRequested = true;
- client.send(new TestMessage());
- // wait until the service responds
- // TODO: or timeout
- System.out.println("destroying statistics");
+ destroy(true);
}
-
/**
- * Statistics command line utility entry point
+ * Destroy handle to the statistics service. Always finishes writing
pending values.
*
- * @param args command line arguments
+ * @param syncFirst Wait until the statistics service has received all our
updates.
*/
- public static void main(String[] args) {
- new Program(args) {
- @Argument(
- shortname = "x",
- longname = "set",
- action = ArgumentAction.SET,
- description = "watch a value")
- boolean set;
- @Argument(
- shortname = "w",
- longname = "watch",
- action = ArgumentAction.SET,
- description = "set a value")
- boolean watch;
- @Argument(
- shortname = "n",
- longname = "name",
- action = ArgumentAction.STORE_STRING,
- argumentName = "NAME",
- description = "statistics name")
- String statisticsName = "";
- @Argument(
- shortname = "s",
- longname = "subsystem",
- argumentName = "SUBSYS",
- action = ArgumentAction.STORE_STRING,
- description = "subsystem name")
- String subsystemName = "";
- @Argument(
- shortname = "p",
- longname = "persistent",
- action = ArgumentAction.SET,
- description = "set value persistently (used with -x)")
- boolean persistent = false;
- @Argument(
- shortname = "r",
- longname = "relative",
- action = ArgumentAction.SET,
- description = "set value relative to old value (used with
-x)")
- boolean relative = false;
-
+ public void destroy(boolean syncFirst) {
+ if (destroyRequested)
+ throw new AssertionError("already destroyed");
+ destroyRequested = true;
+ logger.debug("destroying statistics");
+ if (!syncFirst || !client.isConnected()) {
+ client.disconnect();
+ client = null;
+ return;
+ }
+ client.send(new TestMessage());
+ // wait until the service responds or a timeout occurs
+ destroyTimeout = Scheduler.addDelayed(RelativeTime.fromSeconds(5), new
Scheduler.Task() {
@Override
- protected String makeHelpText() {
- return "Get, set and watch GNUnet's statistics.";
- }
-
- public void run() {
- final Statistics statistics = new Statistics(cfg);
-
- if (set && watch) {
- System.err.println("--watch/-w and --set/-s cannot be used
together");
+ public void run(Scheduler.RunContext ctx) {
+ if (null == client)
return;
- }
-
- if (set) {
- if (subsystemName.isEmpty() || statisticsName.isEmpty()) {
- System.err.println("both subsystem and name must be
given for --set/-x");
- return;
- }
- if (unprocessedArgs.length != 1) {
- System.err.println("must specify exactly one value to
set");
- return;
- }
- long value;
- try {
- value = Long.parseLong(unprocessedArgs[0]);
- } catch (NumberFormatException e) {
- System.err.println("invalid value (not a long)");
- return;
- }
- if (relative)
- statistics.update(subsystemName, statisticsName,
value, persistent);
- else
- statistics.set(subsystemName, statisticsName, value,
persistent);
- statistics.destroy();
- return;
- }
-
- if (unprocessedArgs.length != 0) {
- System.err.println("dumping statistics does not take any
positional parameters");
- return;
- }
-
- if (watch) {
- if (subsystemName.isEmpty() || statisticsName.isEmpty()) {
- System.err.println("both subsystem and name must be
given for --watch/-w");
- return;
- }
- statistics.watch(subsystemName, statisticsName,
- new StatisticsWatcher() {
- @Override
- public void onReceive(String subsystem, String
name, long value) {
- System.out.println(subsystem + "(" + name
+ ") = " + value);
- }
-
- @Override
- public void onTimeout() {
- System.err.println("timeout");
- }
- }
- );
- } else {
- statistics.get(RelativeTime.SECOND, subsystemName,
statisticsName,
- new StatisticsReceiver() {
- @Override
- public void onReceive(String subsystem, String
name, long value) {
- System.out.println(subsystem + "(" + name
+ ") = " + value);
- }
-
- @Override
- public void onTimeout() {
- System.err.println("timeout");
- }
-
- @Override
- public void onDone() {
- statistics.destroy();
- }
- }
- );
- }
+ client.disconnect();
+ client = null;
}
- }.start();
+ });
}
}
Modified: gnunet-java/src/main/java/org/gnunet/statistics/StatisticsWatcher.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/statistics/StatisticsWatcher.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/statistics/StatisticsWatcher.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -2,5 +2,4 @@
public interface StatisticsWatcher {
public void onReceive(String subsystem, String name, long value);
- public void onTimeout();
}
Modified: gnunet-java/src/main/java/org/gnunet/statistics/WatchRequest.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/statistics/WatchRequest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/statistics/WatchRequest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,16 +1,15 @@
package org.gnunet.statistics;
import org.gnunet.mq.Envelope;
-import org.gnunet.mq.MessageQueue;
-import org.gnunet.requests.RequestContainer;
+import org.gnunet.requests.Request;
+import org.gnunet.statistics.messages.WatchMessage;
-/**
- */
-public class WatchRequest extends RequestContainer.Request {
- public String subsystem;
- public String name;
- public StatisticsWatcher watcher;
+class WatchRequest extends Request {
+ public final String subsystem;
+ public final String name;
+ public final StatisticsWatcher watcher;
+
public WatchRequest(String subsystem, String name, StatisticsWatcher
watcher) {
this.subsystem = subsystem;
this.name = name;
@@ -25,7 +24,9 @@
return new Envelope(m);
}
+ @Override
public void cancel() {
-
+ // do nothing, incoming changes with the watch id of this request
+ // will simply be ignured
}
}
Modified: gnunet-java/src/main/java/org/gnunet/statistics/package-info.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/statistics/package-info.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/statistics/package-info.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -19,6 +19,6 @@
*/
/**
- * API for the gnunet statistics service.
+ * API for the GNUnet statistics service.
*/
package org.gnunet.statistics;
Modified: gnunet-java/src/main/java/org/gnunet/testbed/Controller.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/testbed/Controller.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/testbed/Controller.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,7 +21,8 @@
import org.gnunet.mq.Envelope;
import org.gnunet.requests.MatchingRequestContainer;
-import org.gnunet.requests.RequestContainer;
+import org.gnunet.requests.Request;
+import org.gnunet.requests.RequestIdentifier;
import org.gnunet.testbed.callbacks.*;
import org.gnunet.testbed.messages.*;
import org.gnunet.util.*;
@@ -82,7 +83,7 @@
*/
private MatchingRequestContainer<Long,OperationRequest> requests;
- abstract class OperationRequest extends RequestContainer.Request {
+ abstract class OperationRequest extends Request {
protected final long operationId;
public OperationRequest() {
operationId = (((long) host.id) << 32) | (long) operationCounter++;
@@ -121,7 +122,7 @@
m.peerId = peerId;
m.compressedConfig = ccfg.compressedData;
m.configSize = ccfg.getUncompressedSize();
- System.out.println("create request with opid " + m.operationId);
+ System.out.println("create getRequestIdentifier with opid " +
m.operationId);
return new Envelope(m);
}
}
@@ -139,7 +140,7 @@
m.operationId = operationId;
m.peerId = peerId;
- System.out.println("destroy request with opid " + m.operationId);
+ System.out.println("destroy getRequestIdentifier with opid " +
m.operationId);
return new Envelope(m);
}
}
@@ -263,9 +264,10 @@
public class ControllerMessageReceiver extends RunaboutMessageReceiver {
public void visit(PeerEventMessage m) {
- RequestContainer.Request r = requests.getRequest(m.operationId);
+ RequestIdentifier<OperationRequest> rId =
requests.getRequestIdentifier(m.operationId);
+ OperationRequest r = rId.getRequest();
if (null == r) {
- logger.error("no matching peer event request for op id %s",
m.operationId);
+ logger.error("no matching peer event getRequestIdentifier for
op id %s", m.operationId);
return;
}
if (r instanceof PeerStartRequest && m.eventType ==
EventTypes.PEER_START) {
@@ -275,14 +277,15 @@
PeerStopRequest psr = (PeerStopRequest) r;
psr.peerChurnCallback.onChurnSuccess();
} else {
- logger.error("unexpected peer event message, event type %s and
request %s",
+ logger.error("unexpected peer event message, event type %s and
getRequestIdentifier %s",
m.eventType, r);
}
}
public void visit(PeerCreateSuccessMessage m) {
- RequestContainer.Request r = requests.getRequest(m.operationId);
+ RequestIdentifier<OperationRequest> rId =
requests.getRequestIdentifier(m.operationId);
+ OperationRequest r = rId.getRequest();
if (!(r instanceof PeerCreateRequest)) {
- logger.warn("response to peer create request does not match");
+ logger.warn("response to peer create getRequestIdentifier does
not match");
return;
}
PeerCreateRequest pcr = (PeerCreateRequest) r;
@@ -290,13 +293,14 @@
pcr.cb.onPeerCreated(p);
}
public void visit(PeerInformationMessage m) {
- RequestContainer.Request r = requests.getRequest(m.operationId);
+ RequestIdentifier<OperationRequest> rId =
requests.getRequestIdentifier(m.operationId);
+ OperationRequest r = rId.getRequest();
if (null == r) {
logger.error("unexpected peer information message (opid={})",
m.operationId);
return;
}
if (!(r instanceof PeerInformationRequest)) {
- logger.warn("response to peer create request does not match");
+ logger.warn("response to peer create getRequestIdentifier does
not match");
return;
}
PeerInformationRequest pir = (PeerInformationRequest) r;
@@ -304,14 +308,15 @@
pir.cb.onSuccess(m.peerIdentity, ccfg.decompress());
}
public void visit(GenericOperationSuccessMessage m) {
- OperationRequest r = requests.getRequest(m.operationId);
+ RequestIdentifier<OperationRequest> rId =
requests.getRequestIdentifier(m.operationId);
+ OperationRequest r = rId.getRequest();
if (null == r) {
logger.error("unexpected generic success message (opid={})",
m.operationId);
return;
}
if (!(r instanceof GenericOperationRequest)) {
logger.error(String.format(
- "got GenericOperationSuccessMessage as response
to request '%s', opid %s; event type %s",
+ "got GenericOperationSuccessMessage as response
to getRequestIdentifier '%s', opid %s; event type %s",
r.getClass(), m.operationId, m.eventType));
return;
}
@@ -319,7 +324,8 @@
gr.onSuccess();
}
public void visit(ConnectionEventMessage m) {
- OperationRequest r = requests.getRequest(m.operationId);
+ RequestIdentifier<OperationRequest> rId =
requests.getRequestIdentifier(m.operationId);
+ OperationRequest r = rId.getRequest();
if (null == r) {
logger.error("unexpected connection event message (opid={})",
m.operationId);
return;
@@ -408,7 +414,7 @@
/**
* Create a link from slave controller to delegated controller. Whenever
the
* master controller is asked to start a peer at the delegated controller
the
- * request will be routed towards slave controller (if a route exists). The
+ * getRequestIdentifier will be routed towards slave controller (if a
route exists). The
* slave controller will then route it to the delegated controller. The
* configuration of the delegated controller is given and is used to either
* create the delegated controller or to connect to an existing
controller. Note
@@ -445,7 +451,7 @@
* @param cc the completion callback to call to inform the status of
* registration. After calling this callback the registration
handle
* will be invalid. Cannot be NULL
- * @return handle to the host registration which can be used to cancel the
+ * @return handle to the host registration which can be used to onCancel
the
* registration; NULL if another registration handle is present
and
* is not cancelled
*/
@@ -475,7 +481,7 @@
* Start this peer
*
* @param peerChurnCallback completion callback
- * @return handle to cancel the operation
+ * @return handle to onCancel the operation
*/
public Cancelable start(PeerChurnCallback peerChurnCallback) {
PeerStartRequest r = new PeerStartRequest(this, peerChurnCallback);
@@ -486,7 +492,7 @@
* Stop this peer
*
* @param peerChurnCallback completion callback
- * @return handle to cancel the operation
+ * @return handle to onCancel the operation
*/
public Cancelable stop(PeerChurnCallback peerChurnCallback) {
PeerStopRequest r = new PeerStopRequest(this, peerChurnCallback);
@@ -530,7 +536,7 @@
*
* @param otherPeer peer to connect this peer to
* @param cb callback object to signal completion or failure
- * @return token to cancel the request
+ * @return token to onCancel the getRequestIdentifier
*
*/
public Cancelable connectOverlay(Peer otherPeer,
OperationCompletionCallback cb) {
@@ -541,7 +547,7 @@
/**
* Connect to a service offered by the given peer. Will ensure that
- * the request is queued to not overwhelm our ability to create and
+ * the getRequestIdentifier is queued to not overwhelm our ability to
create and
* maintain connections with other systems. The actual service
* handle is then returned via the 'op_result' member in the event
* callback. The 'ca' callback is used to create the connection
Modified: gnunet-java/src/main/java/org/gnunet/testing/TestingServer.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/testing/TestingServer.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/testing/TestingServer.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -5,7 +5,6 @@
import org.gnunet.util.Server;
import java.io.IOException;
-import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.channels.ServerSocketChannel;
Modified: gnunet-java/src/main/java/org/gnunet/testing/TestingSetup.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/testing/TestingSetup.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/testing/TestingSetup.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,7 +21,6 @@
package org.gnunet.testing;
import org.gnunet.util.Program;
-import org.gnunet.util.RelativeTime;
/**
* A testing setup is responsible for configuring the loggers during testing,
and can
Modified: gnunet-java/src/main/java/org/gnunet/transport/Transport.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/transport/Transport.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/transport/Transport.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -5,7 +5,6 @@
import org.gnunet.mq.NotifySentHandler;
import org.gnunet.transport.callbacks.HelloUpdateCallback;
import org.gnunet.transport.callbacks.OfferHelloContinuation;
-import org.gnunet.transport.callbacks.PeerIterateCallback;
import org.gnunet.transport.callbacks.TryConnectCallback;
import org.gnunet.transport.messages.RequestConnectMessage;
import org.gnunet.transport.messages.StartMessage;
@@ -40,7 +39,7 @@
private List<GetHelloHolder> getHelloHolderList = new
LinkedList<GetHelloHolder>();
/**
- * Wrapper to give each get hello request a unique identity.
+ * Wrapper to give each get hello getRequestIdentifier a unique identity.
*/
private class GetHelloHolder {
HelloUpdateCallback cb;
@@ -89,9 +88,9 @@
* the given peer.
*
* @param target who we should try to connect to
- * @param cb callback to be called when request was transmitted to
transport
+ * @param cb callback to be called when getRequestIdentifier was
transmitted to transport
* service
- * @return a handle to cancel the operation
+ * @return a handle to onCancel the operation
*/
Cancelable tryConnect(PeerIdentity target, final TryConnectCallback cb) {
RequestConnectMessage m = new RequestConnectMessage();
@@ -119,7 +118,7 @@
* Obtain the HELLO message for this peer.
*
* @param rec function to call with the HELLO
- * @return handle to cancel the operation
+ * @return handle to onCancel the operation
*/
Cancelable getHello(final HelloUpdateCallback rec) {
if (myHello != null) {
Modified:
gnunet-java/src/main/java/org/gnunet/transport/callbacks/PeerAddressListCallback.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/transport/callbacks/PeerAddressListCallback.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/transport/callbacks/PeerAddressListCallback.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -42,7 +42,6 @@
import org.gnunet.transport.HelloAddress;
-import org.gnunet.util.PeerIdentity;
public interface PeerAddressListCallback {
void onPeerAddress(HelloAddress helloAddress);
Modified:
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -4,7 +4,6 @@
import org.gnunet.construct.NestedMessage;
import org.gnunet.construct.UInt32;
import org.gnunet.construct.UnionCase;
-import org.gnunet.util.AbsoluteTime;
import org.gnunet.util.AbsoluteTimeMessage;
import org.gnunet.util.GnunetMessage;
import org.gnunet.util.PeerIdentity;
Modified:
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,12 +20,9 @@
package org.gnunet.transport.messages;
-import org.gnunet.construct.IntegerFill;
import org.gnunet.construct.NestedMessage;
-import org.gnunet.construct.UInt32;
import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
-import org.gnunet.util.PeerIdentity;
@UnionCase(383)
public class AddressIterateResponseMessage implements GnunetMessage.Body {
Modified: gnunet-java/src/main/java/org/gnunet/util/AbsoluteTime.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/AbsoluteTime.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/AbsoluteTime.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -278,7 +278,7 @@
}
public String toFancyString() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(new Date(getMilliseconds()));
}
Modified: gnunet-java/src/main/java/org/gnunet/util/Client.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Client.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Client.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -77,7 +77,7 @@
private boolean notifyTransmitReadyDelayed;
/**
- * When notifyTransmitReadyDelayed is true, This can be used to cancel the
task
+ * When notifyTransmitReadyDelayed is true, This can be used to onCancel
the task
* waiting for the connection to be established.
*/
private Cancelable delayedNotifyTransmitHandle;
@@ -91,7 +91,7 @@
private boolean receiverActive;
/**
- * Handle to cancel the message currently submitted in the queue,
+ * Handle to onCancel the message currently submitted in the queue,
*/
private Cancelable currentSubmit;
private Scheduler.TaskIdentifier receiverLifenessTask;
@@ -163,9 +163,9 @@
* for example because the protocol is stateless
* @param size size of the message we want to transmit, can be an
upper bound
* @param transmitter the MessageTransmitter object to call once the
client is ready to transmit or
- * when the timeout is over. Guaranteed to be called
*after* notifyTransmitReady has returned. @return a handle that can be used to
cancel the transmit request
+ * when the timeout is over. Guaranteed to be called
*after* notifyTransmitReady has returned. @return a handle that can be used to
onCancel the transmit getRequestIdentifier
*
- * @return a handle to cancel the notification
+ * @return a handle to onCancel the notification
*/
public Cancelable notifyTransmitReady(final RelativeTime timeout,
final boolean autoRetry, int size,
final MessageTransmitter transmitter) {
@@ -230,7 +230,7 @@
* @param timeout when should we give up sending the message, and call
cont.cont(false)
* @param message the message to send
* @param cont called when the message has been sent successfully or on
error
- * @return a handle to cancel sending the message
+ * @return a handle to onCancel sending the message
*/
public Cancelable transmitWhenReady(final RelativeTime timeout, final
GnunetMessage.Body message, final Continuation cont) {
return notifyTransmitReady(timeout, false, 0, new MessageTransmitter()
{
@@ -256,7 +256,7 @@
*
* @param message the message to send
* @param cont called when the message has been sent successfully or on
error
- * @return a handle to cancel sending the message
+ * @return a handle to onCancel sending the message
*/
public Cancelable transmitWhenReady(final GnunetMessage.Body message,
final Continuation cont) {
return transmitWhenReady(RelativeTime.FOREVER, message, cont);
@@ -270,12 +270,9 @@
}
/**
- * Disconnect from the service. Cancel all pending receive/transmit
requests.
+ * Disconnect from the service. Cancels all pending receive/transmit
requests.
*/
public void disconnect() {
- if (notifyTransmitReadyDelayed) {
- logger.error("disconnecting while notifyTransmitReady is pending");
- }
connection.disconnect();
connection = null;
if (receiverLifenessTask != null) {
Modified: gnunet-java/src/main/java/org/gnunet/util/Connection.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Connection.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Connection.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -141,12 +141,12 @@
}
/**
- * Represents a request for transmission.
+ * Represents a getRequestIdentifier for transmission.
*/
public interface TransmitHandle extends Cancelable {
/**
- * Cancel a request for the transmit ready notification.
- * This does *not* cancel a transmission that already has been started.
+ * Cancel a getRequestIdentifier for the transmit ready notification.
+ * This does *not* onCancel a transmission that already has been
started.
*/
public void cancel();
}
@@ -298,7 +298,7 @@
}
// timeout is forever, because there is no way to directly limit
the transmission time
// of a message, only the max. wait time before transmission.
- // cancel must be called on the transmitTask if we disconnect
+ // onCancel must be called on the transmitTask if we disconnect
Scheduler.TaskConfiguration tc = new
Scheduler.TaskConfiguration(RelativeTime.FOREVER, this);
tc.addSelectEvent(connectionChannel, SelectionKey.OP_WRITE);
this.transmitTask = tc.schedule();
@@ -549,7 +549,7 @@
* @param timeout after how long should we give up (and call
transmitter.transmit(null))
* @param transmitter the MessageTransmitter object to call once the
client is ready to transmit or
* when the timeout is over. Guaranteed to be called
*after* notifyTransmitReady has returned.
- * @return a handle that can be used to cancel the transmit request, null
if request could be satisfied immediately
+ * @return a handle that can be used to onCancel the transmit
getRequestIdentifier, null if getRequestIdentifier could be satisfied
immediately
*/
public TransmitHandle notifyTransmitReady(int size, RelativeTime timeout,
final MessageTransmitter transmitter) {
if (disconnected) {
@@ -557,7 +557,7 @@
}
if (nextTransmitHelper != null) {
throw new AssertionError(
- "previous transmit request must have completed before
calling notifyTransmitReady again");
+ "previous transmit getRequestIdentifier must have
completed before calling notifyTransmitReady again");
}
if (timeout.getMicroseconds() <= 0) {
@@ -593,7 +593,7 @@
* @param cont continuation to call
* @return
*/
- /* package-protected */ Cancelable notifyConnected(RelativeTime timeout,
final Continuation cont) {
+ Cancelable notifyConnected(RelativeTime timeout, final Continuation cont) {
if (notifyConnectedTimeout != null) {
throw new AssertionError();
}
@@ -621,6 +621,10 @@
logger.error("disconnect called twice");
}
disconnected = true;
+ if (notifyConnectedTimeout != null) {
+ notifyConnectedTimeout.cancel();
+ notifyConnectedTimeout = null;
+ }
if (receiveTaskId != null) {
receiveTaskId.cancel();
receiveTaskId = null;
Modified: gnunet-java/src/main/java/org/gnunet/util/Helper.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Helper.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Helper.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -26,7 +26,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.ByteArrayOutputStream;
import java.io.IOError;
import java.io.IOException;
import java.nio.ByteBuffer;
Modified: gnunet-java/src/main/java/org/gnunet/util/MessageStreamTokenizer.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/MessageStreamTokenizer.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/MessageStreamTokenizer.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -26,12 +26,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOError;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.nio.channels.Channel;
-import java.nio.channels.ClosedChannelException;
-import java.nio.channels.Pipe;
import java.nio.channels.ReadableByteChannel;
/**
Modified: gnunet-java/src/main/java/org/gnunet/util/MessageTransmitter.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/MessageTransmitter.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/MessageTransmitter.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -35,9 +35,9 @@
/**
- * Called when the transmit request could not be fullfilled.
+ * Called when the transmit getRequestIdentifier could not be fullfilled.
*
- * After transmit has been called, handleError will not be called anymore
(until the next transmit request)
+ * After transmit has been called, handleError will not be called anymore
(until the next transmit getRequestIdentifier)
*/
void handleError();
}
Modified: gnunet-java/src/main/java/org/gnunet/util/Program.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Program.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Program.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -73,31 +73,19 @@
action = ArgumentAction.STORE_STRING)
public String logFile;
-
+ /**
+ * Positional arguments, excluding those that have been processed
+ * by the command line parser.
+ */
protected String[] unprocessedArgs;
- private final String[] args;
-
- private int returnValue = 0;
-
-
/**
- * A program with the desired environment for a GNUnet utility.
- * While executing, the scheduler is guaranteed to run, command arguments
are parsed,
- * the default configuration is loaded and the DNS Resolver is initialized.
- *
- * @param args array of command line arguments to parse. used to
automatically load additional settings
- * and configure log levels.
+ * Return value for the program.
+ * We prefer setting the return value, as System.exit(...) does bad things
sometimes.
+ * (In JUnit test cases, for instance)
*/
- public Program(String... args) {
- this.args = args;
+ private int returnValue = 0;
- /*
- * Remember: We can't parse command line arguments here, as java's
initialization order
- * dictates that member variables of subclasses are initialized
*after* the superclass constructor (here).
- */
- }
-
/**
* Configure logging with the given log level and log file.
*
@@ -202,7 +190,7 @@
* is invoked inside a scheduler task or not
* @return the exit value of the program
*/
- public final int start(boolean withScheduler) {
+ public final int start(boolean withScheduler, String... args) {
Parser optParser = new Parser(this);
unprocessedArgs = optParser.parse(args);
@@ -246,8 +234,8 @@
*
* @return the exit value of the program
*/
- public final int start() {
- return start(true);
+ public final int start(String... args) {
+ return start(true, args);
}
@@ -256,7 +244,7 @@
*
* @return the exit value of the program
*/
- public final int startWithoutScheduler() {
- return start(false);
+ public final int startWithoutScheduler(String... args) {
+ return start(false, args);
}
}
Modified: gnunet-java/src/main/java/org/gnunet/util/RelativeTime.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/RelativeTime.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/RelativeTime.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -236,4 +236,9 @@
public long getSeconds() {
return rel_value_us / (1000 * 1000);
}
+
+ public static RelativeTime fromSeconds(long i) {
+ RelativeTime relativeTime = new RelativeTime(i * 1000 * 1000);
+ return relativeTime;
+ }
}
Modified: gnunet-java/src/main/java/org/gnunet/util/Resolver.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Resolver.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Resolver.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -22,7 +22,6 @@
import com.google.common.net.InetAddresses;
import org.gnunet.construct.*;
-import org.gnunet.construct.ProtocolViolationException;
import org.gnunet.util.getopt.Argument;
import org.gnunet.util.getopt.ArgumentAction;
import org.slf4j.Logger;
@@ -196,7 +195,7 @@
* @param hostname hostname to resolve
* @param timeout timeout, calls cb.onTimeout on expiratoin
* @param cb callback
- * @return a handle to cancel the request, null if request could be
satisfied immediately
+ * @return a handle to onCancel the getRequestIdentifier, null if
getRequestIdentifier could be satisfied immediately
*/
public Cancelable resolveHostname(String hostname, RelativeTime timeout,
final AddressCallback cb) {
// try if hostname is numeric IP or loopback
@@ -352,7 +351,7 @@
public static void main(final String[] argv) {
- new Program(argv) {
+ new Program() {
@Argument(shortname = "r", longname = "reverse",
description = "do reverse dns lookup",
action = ArgumentAction.SET)
@@ -411,6 +410,6 @@
protected String makeHelpText() {
return "tool for forward and reverse DNS lookup";
}
- }.start();
+ }.start(argv);
}
}
Modified: gnunet-java/src/main/java/org/gnunet/util/Scheduler.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Scheduler.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Scheduler.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -214,7 +214,7 @@
}
}
for (TaskIdentifier tt : executableTasks) {
- // cancel subscriptions to other events, we can execute now!
+ // onCancel subscriptions to other events, we can execute now!
tt.deregister();
queueReady(tt);
}
@@ -548,7 +548,7 @@
@Override
public void cancel() {
if (hasRun) {
- throw new AssertionError("can't cancel task that already ran");
+ throw new AssertionError("can't onCancel task that already
ran");
}
if (isCanceled) {
throw new AssertionError("task canceled twice");
@@ -557,7 +557,7 @@
scheduler.pending.remove(this);
}
- public void deregister() {
+ private void deregister() {
if (subscriptions != null) {
subscriptions.stop(this);
}
@@ -578,7 +578,7 @@
private SchedulerInstance scheduler;
/**
- * Create a TaskIdentifier.
+ * Create a TaskConfiguration.
*
* @param delay when will the task be run?
* may be null to indicate that this task may not be run
@@ -593,7 +593,7 @@
this.deadline = delay.toAbsolute();
}
- TaskConfiguration(RelativeTime delay, Task task) {
+ public TaskConfiguration(RelativeTime delay, Task task) {
this(threadScheduler.get(), delay, task);
}
@@ -624,6 +624,10 @@
subscriptions = new Subscriptions(scheduler.selector);
subscriptions.add(channel, event);
}
+
+ public void setLifeness(boolean b) {
+ this.lifeness = b;
+ }
}
/**
@@ -651,7 +655,7 @@
*
* @param delay time to wait until running the task
* @param task the task to run after delay
- * @return the TaskIdentifier, can be used to cancel the task until it has
been executed.
+ * @return the TaskIdentifier, can be used to onCancel the task until it
has been executed.
*/
public static TaskIdentifier addDelayed(RelativeTime delay, Task task) {
TaskConfiguration tid = new TaskConfiguration(delay, task);
@@ -817,4 +821,11 @@
fpt.start();
return new FilePipe(fpt);
}
+
+ public static void debugPrintPendingTasks() {
+ System.err.println("pending tasks:");
+ for (TaskIdentifier i : threadScheduler.get().pending) {
+ System.err.println(i.task.getClass());
+ }
+ }
}
Modified: gnunet-java/src/main/java/org/gnunet/util/Server.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Server.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Server.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -20,7 +20,6 @@
package org.gnunet.util;
-import org.gnunet.construct.Construct;
import org.grothoff.Runabout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -160,7 +159,7 @@
* @param timeout after how long should we give up (and call
* notify with buf NULL and size 0)?
* @param transmitter callback
- * @return a handle to cancel the notification
+ * @return a handle to onCancel the notification
*/
public Cancelable notifyTransmitReady(int size, RelativeTime timeout,
MessageTransmitter transmitter) {
return connection.notifyTransmitReady(size, timeout, transmitter);
@@ -172,7 +171,7 @@
* @param timeout when should we give up sending the message, and call
cont.cont(false)
* @param message the message to send
* @param cont called when the message has been sent successfully or
on error
- * @return a handle to cancel sending the message
+ * @return a handle to onCancel sending the message
*/
public Cancelable transmitWhenReady(final RelativeTime timeout, final
GnunetMessage.Body message, final Continuation cont) {
return notifyTransmitReady(0, timeout, new MessageTransmitter() {
@@ -195,7 +194,7 @@
/**
* Resume receiving from this client, we are done processing the
- * current request. This function must be called from within each
+ * current getRequestIdentifier. This function must be called from
within each
* message handler (or its respective continuations).
* <p/>
* The server does not automatically continue to receive messages to
Modified: gnunet-java/src/main/java/org/gnunet/util/Service.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/Service.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/Service.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -24,7 +24,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.*;
+import java.io.File;
+import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
@@ -56,7 +57,6 @@
private Pipe.SourceChannel sigpipeChannel;
public Service(String serviceName, RelativeTime idleTimeout, boolean
requireFound, String[] args) {
- super(args);
this.serviceName = serviceName;
this.idleTimeout = idleTimeout;
this.requireFound = requireFound;
Modified: gnunet-java/src/main/java/org/gnunet/util/crypto/Ed25519.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/crypto/Ed25519.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/crypto/Ed25519.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -24,7 +24,6 @@
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
/**
* Java-only implementation of arithmetic on DJBs Ed25519.
Modified: gnunet-java/src/main/java/org/gnunet/util/getopt/Parser.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/util/getopt/Parser.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/util/getopt/Parser.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,6 +21,7 @@
package org.gnunet.util.getopt;
import org.gnunet.construct.ReflectUtil;
+
import java.lang.reflect.Field;
import java.util.*;
Modified: gnunet-java/src/main/java/org/gnunet/voting/Ballot.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/Ballot.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/Ballot.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -28,8 +28,14 @@
import com.google.common.collect.Maps;
import com.google.common.primitives.Longs;
import org.gnunet.secretsharing.ThresholdPublicKey;
-import org.gnunet.util.*;
-import org.gnunet.util.crypto.*;
+import org.gnunet.util.AbsoluteTime;
+import org.gnunet.util.Configuration;
+import org.gnunet.util.HashCode;
+import org.gnunet.util.PeerIdentity;
+import org.gnunet.util.crypto.EcdsaPrivateKey;
+import org.gnunet.util.crypto.EcdsaPublicKey;
+import org.gnunet.util.crypto.EcdsaSignature;
+import org.gnunet.util.crypto.EddsaSignature;
import org.gnunet.voting.messages.KeyQueryResponseMessage;
import java.security.MessageDigest;
@@ -263,13 +269,13 @@
}
confirmationSigs.put(e.getKey(), sig);
}
- encryptedVote = EncryptedVote.parseFromConfiguration(cfg);
Optional<String> optVoterPub = cfg.getValueString("vote", "VOTER_PUB");
if (optVoterPub.isPresent()) {
voterPub = EcdsaPublicKey.fromString(optVoterPub.get());
if (null == voterPub) {
throw new InvalidBallotException("voter public key present but
invalid");
}
+ encryptedVote = EncryptedVote.parseFromConfiguration(cfg,
voterPub);
}
startTime = getTime(cfg, "START");
@@ -302,8 +308,8 @@
m.signedGuidKey = new KeyQueryResponseMessage.BallotPublicKey();
m.signedGuidKey.ballotGuid = getBallotGuid();
m.signedGuidKey.publicKey =
ThresholdPublicKey.fromString(e.getValue());
+ thresholdPublicKeys.put(alias, m);
}
-
}
/**
@@ -355,7 +361,7 @@
if (counts.containsKey(pk)) {
counts.put(pk, counts.get(pk) + 1);
} else {
- counts.put(pk, 0);
+ counts.put(pk, 1);
}
}
int maxCount = 0;
@@ -390,11 +396,9 @@
i++;
}
voterPub = voterPrivateKey.getPublicKey();
- if (choiceId < 0 || choiceId > 1) {
- throw new InvalidBallotException(String.format("choice '%s' not
valid", choice));
- }
-
- encryptedVote = EncryptedVote.fromChoice(choiceId, thresholdPublicKey,
voterPrivateKey);
+ encryptedVote = EncryptedVote.fromChoice(choiceId, thresholdPublicKey,
voterPrivateKey, voterPub);
+ System.out.println("voter encrypted vote, ciphertext: " +
encryptedVote.v.toString());
+ System.out.println("threshold key (of voter): " +
thresholdPublicKey.toString());
}
/**
@@ -442,9 +446,7 @@
if (null != groupCert) {
groupCert.writeBallotConfig(cfg);
}
- System.out.println("thresh set when writing: " +
thresholdPublicKeys.size());
for (Map.Entry<String,KeyQueryResponseMessage> e :
thresholdPublicKeys.entrySet()) {
- System.out.println("writing tresh");
cfg.setValueString("threshold-pubkeys", e.getKey(),
e.getValue().signedGuidKey.publicKey.toString());
cfg.setValueString("threshold-pubkey-sigs", e.getKey(),
@@ -560,6 +562,15 @@
} else {
buf.append("no voter\n");
}
+ if (thresholdPublicKeys != null && thresholdPublicKeys.size() != 0) {
+ buf.append("Authorities with threshold public key:\n");
+ for (String s : thresholdPublicKeys.keySet()) {
+ buf.append(s);
+ buf.append("\n");
+ }
+ } else {
+ buf.append("no threshold public keys");
+ }
return buf.toString();
}
Modified: gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -112,9 +112,9 @@
@Argument(
shortname = "k",
- longname = "request-key",
+ longname = "getRequestIdentifier-key",
action = ArgumentAction.SET,
- description = "request the threshold public key from authorities")
+ description = "getRequestIdentifier the threshold public key from
authorities")
boolean requestKey = false;
@Argument(
@@ -348,7 +348,8 @@
}
ThresholdPublicKey thresholdPublicKey =
ballot.getMajorityThresholdPublicKey();
if (null == thresholdPublicKey) {
- System.err.println("no threshold public key in ballot");
+ System.err.println(String.format("no majority threshold public
key in ballot (got keys of %s authorities)",
+ (ballot.thresholdPublicKeys == null) ? 0 :
ballot.thresholdPublicKeys.size()));
setReturnValue(1);
return;
}
@@ -364,7 +365,7 @@
}
Random r = new Random();
PeerIdentity authority =
remainingAuthorities.get(r.nextInt(remainingAuthorities.size()));
- System.out.println("submitting to authority" +
authority.toString());
+ System.out.println("submitting to authority " +
authority.toString());
currentAuthority = authority;
mesh = new Mesh(cfg, new BallotTunnelEndHandler(), new
SubmitReceiver());
tunnel = mesh.createTunnel(authority,
TallyAuthorityDaemon.MESH_PORT, true, true, null);
@@ -471,14 +472,9 @@
doCommands();
}
}
-
- private BallotTool(String[] args) {
- super(args);
- }
-
public static void main(String args[]) {
- Program tool = new BallotTool(args);
- int ret = tool.start();
+ Program tool = new BallotTool();
+ int ret = tool.start(args);
System.exit(ret);
}
}
Modified: gnunet-java/src/main/java/org/gnunet/voting/CertifyGroupTool.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/CertifyGroupTool.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/CertifyGroupTool.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -74,13 +74,9 @@
"The resulting certificate file written to standard output.";
}
- private CertifyGroupTool(String... args) {
- super(args);
- }
-
public static void main(String args[]) {
- CertifyGroupTool tool = new CertifyGroupTool(args);
- int ret = tool.start();
+ CertifyGroupTool tool = new CertifyGroupTool();
+ int ret = tool.start(args);
System.exit(ret);
}
Modified: gnunet-java/src/main/java/org/gnunet/voting/EncryptedVote.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/EncryptedVote.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/EncryptedVote.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -28,37 +28,80 @@
import org.gnunet.secretsharing.Plaintext;
import org.gnunet.secretsharing.ThresholdPublicKey;
import org.gnunet.util.Configuration;
-import org.gnunet.util.Strings;
import org.gnunet.util.crypto.EcdsaPrivateKey;
+import org.gnunet.util.crypto.EcdsaPublicKey;
+import org.gnunet.voting.simulation.Voter;
+import org.omg.CORBA.DynAnyPackage.Invalid;
import java.math.BigInteger;
public class EncryptedVote implements Message {
- // TODO: zero knowledge proof
- // TODO: signature
+ @NestedMessage
+ public Ciphertext v;
+
@NestedMessage
- Ciphertext v;
+ public EcdsaPublicKey voterPublicKey;
- public static EncryptedVote parseFromConfiguration(Configuration cfg) {
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ EncryptedVote that = (EncryptedVote) o;
+
+ if (v != null ? !v.equals(that.v) : that.v != null) return false;
+ if (voterPublicKey != null ?
!voterPublicKey.equals(that.voterPublicKey) : that.voterPublicKey != null)
+ return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = v != null ? v.hashCode() : 0;
+ result = 31 * result + (voterPublicKey != null ?
voterPublicKey.hashCode() : 0);
+ return result;
+ }
+
+
+ /**
+ * Construct an EncryptedVote by parsing it from the configuration.
+ * The voter public key must be passed separately.
+ *
+ * @param cfg configuration
+ * @param voterPublicKey public key of the voter
+ * @return the encrypted vote
+ */
+ public static EncryptedVote parseFromConfiguration(Configuration cfg,
EcdsaPublicKey voterPublicKey) {
Optional<String> optVal = cfg.getValueString("vote",
"ENCRYPTED_VOTE_VAL");
if (!optVal.isPresent()) {
return null;
}
EncryptedVote encryptedVote = new EncryptedVote();
+ encryptedVote.voterPublicKey = voterPublicKey;
encryptedVote.v = Ciphertext.fromString(optVal.get());
return encryptedVote;
}
+ // TODO: zero knowledge proof
+ // TODO: signature
- public void writeToConfiguration(Configuration cfg) {
- cfg.setValueString("vote", "ENCRYPTED_VOTE_VAL", v.toString()); }
-
public static EncryptedVote fromChoice(int choiceId, ThresholdPublicKey
thresholdPublicKey,
- EcdsaPrivateKey voterPrivateKey) {
+ EcdsaPrivateKey voterPrivateKey,
EcdsaPublicKey voterPublicKey) {
+ // for now, we only support one choice!
+ if (choiceId < 0 || choiceId > 1) {
+ throw new InvalidBallotException(String.format("choice '%s' not
valid", choiceId));
+ }
+ int choiceExp = (choiceId == 1) ? 1 : -1;
// FIXME: can we use 'g', or should we use another generator?
- Plaintext p = Plaintext.generate(BigInteger.valueOf(choiceId));
+ Plaintext p = Plaintext.generate(BigInteger.valueOf(choiceExp));
EncryptedVote encryptedVote = new EncryptedVote();
encryptedVote.v = p.encrypt(thresholdPublicKey);
+ encryptedVote.voterPublicKey = voterPublicKey;
return encryptedVote;
}
+
+ public void writeToConfiguration(Configuration cfg) {
+ cfg.setValueString("vote", "ENCRYPTED_VOTE_VAL", v.toString());
+ }
}
Modified: gnunet-java/src/main/java/org/gnunet/voting/GroupCert.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/GroupCert.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/GroupCert.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -27,7 +27,6 @@
import org.gnunet.util.crypto.EcdsaPrivateKey;
import org.gnunet.util.crypto.EcdsaPublicKey;
import org.gnunet.util.crypto.EcdsaSignature;
-import org.gnunet.util.crypto.EddsaSignature;
/**
* Group certificate. Attests to the fact that a voter (identified
Modified: gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -25,9 +25,6 @@
import org.gnunet.consensus.ConsensusCallback;
import org.gnunet.consensus.ConsensusElement;
import org.gnunet.construct.Construct;
-import org.gnunet.construct.Message;
-import org.gnunet.construct.NestedMessage;
-import org.gnunet.construct.UInt32;
import org.gnunet.mesh.Mesh;
import org.gnunet.mesh.MeshRunabout;
import org.gnunet.secretsharing.*;
@@ -35,13 +32,17 @@
import org.gnunet.secretsharing.callbacks.SecretReadyCallback;
import org.gnunet.testbed.CompressedConfig;
import org.gnunet.util.*;
-import org.gnunet.util.crypto.*;
+import org.gnunet.util.crypto.EcdsaPublicKey;
+import org.gnunet.util.crypto.EddsaPrivateKey;
+import org.gnunet.util.crypto.EddsaPublicKey;
+import org.gnunet.util.crypto.EddsaSignature;
import org.gnunet.voting.messages.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.math.BigInteger;
-import java.util.*;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
/**
@@ -114,7 +115,7 @@
/**
* Product of all encrypted votes (mod q), used to compute the final
tally.
*/
- Ciphertext voteProduct;
+ Ciphertext voteProduct = Ciphertext.identity();
/**
* Maping from choice to number of votes for that choice.
@@ -142,7 +143,16 @@
public void onElement(ConsensusElement element) {
System.out.println("got element from consensus");
EncryptedVote vote = Construct.parseAs(element.data,
EncryptedVote.class);
+ System.out.println("got vote from consensus, ciphertext: " +
vote.v.toString());
+ if (electionState.countedVoters.contains(vote.voterPublicKey)) {
+ // Complain. FIXME: keep lexically largest vote, so ballot is
unambigous
+ logger.error("voter {} voted twice", vote.voterPublicKey);
+ return;
+ }
electionState.voteProduct =
electionState.voteProduct.multiply(vote.v);
+ electionState.countedVoters.add(vote.voterPublicKey);
+
+ System.out.println("threshold key (of this authority): " +
electionState.share.publicKey.toString());
}
@Override
@@ -286,6 +296,8 @@
logger.info("concluding in {}",
b.closingTime.getRemaining().getSeconds());
Scheduler.addDelayed(b.closingTime.getRemaining(), t);
}
+ System.out.println("authority threshold: " +
electionState.ballot.threshold);
+ System.out.println("authority num_peers: " +
electionState.ballot.authorities.size());
// we hash the GUID a second time, so that there's no
// collision with the consensus (as secretsharing also uses
consensus internally)
electionState.keyGeneration = new KeyGeneration(
@@ -365,15 +377,15 @@
}
}
- public TallyAuthorityDaemon(String[] args) {
- super(args);
+ public TallyAuthorityDaemon() {
authorityPrivateKey = EddsaPrivateKey.createRandom();
authorityPublicKey = authorityPrivateKey.getPublicKey();
}
public static void main(String[] args) {
- TallyAuthorityDaemon daemon = new TallyAuthorityDaemon(args);
- daemon.start();
+ TallyAuthorityDaemon daemon = new TallyAuthorityDaemon();
+ int ret = daemon.start(args);
+ System.exit(ret);
}
@Override
Modified:
gnunet-java/src/main/java/org/gnunet/voting/messages/ResultQueryResponseMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/voting/messages/ResultQueryResponseMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/voting/messages/ResultQueryResponseMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,9 +1,9 @@
package org.gnunet.voting.messages;
-import org.gnunet.construct.*;
+import org.gnunet.construct.IntegerFill;
+import org.gnunet.construct.UnionCase;
import org.gnunet.util.GnunetMessage;
-import org.gnunet.util.HashCode;
@UnionCase(42006)
public class ResultQueryResponseMessage implements GnunetMessage.Body {
Modified:
gnunet-java/src/main/java/org/gnunet/voting/messages/SubmitMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/messages/SubmitMessage.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/messages/SubmitMessage.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,12 +1,12 @@
package org.gnunet.voting.messages;
import org.gnunet.construct.NestedMessage;
-import org.gnunet.construct.UInt32;
import org.gnunet.construct.UnionCase;
-import org.gnunet.util.*;
+import org.gnunet.util.AbsoluteTimeMessage;
+import org.gnunet.util.GnunetMessage;
+import org.gnunet.util.HashCode;
import org.gnunet.util.crypto.EcdsaPublicKey;
import org.gnunet.util.crypto.EcdsaSignature;
-import org.gnunet.util.crypto.EddsaSignature;
import org.gnunet.voting.EncryptedVote;
/**
Modified: gnunet-java/src/main/java/org/gnunet/voting/simulation/CryptoUtil.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/simulation/CryptoUtil.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/java/org/gnunet/voting/simulation/CryptoUtil.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -3,7 +3,6 @@
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
import java.util.Random;
/**
Modified:
gnunet-java/src/main/java/org/gnunet/voting/simulation/VotingParameters.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/voting/simulation/VotingParameters.java
2014-03-11 01:22:11 UTC (rev 32612)
+++
gnunet-java/src/main/java/org/gnunet/voting/simulation/VotingParameters.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -176,7 +176,7 @@
}
public static void main(String... args) {
- new Program(args) {
+ new Program() {
@Argument(
shortname = "b",
longname = "bits",
@@ -199,7 +199,7 @@
System.out.println("q: 0x0" + vp.getQ().toString(16));
System.out.println("g: 0x0" + vp.getG().toString(16));
}
- }.startWithoutScheduler();
+ }.startWithoutScheduler(args);
}
}
Modified: gnunet-java/src/main/resources/org/gnunet/construct/MsgMap.txt
===================================================================
--- gnunet-java/src/main/resources/org/gnunet/construct/MsgMap.txt
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/main/resources/org/gnunet/construct/MsgMap.txt
2014-03-11 01:24:03 UTC (rev 32613)
@@ -73,12 +73,12 @@
org.gnunet.util.GnunetMessage$Body|149=org.gnunet.dht.MonitorGetMessage
org.gnunet.util.GnunetMessage$Body|150=org.gnunet.dht.MonitorGetRespMessage
org.gnunet.util.GnunetMessage$Body|151=org.gnunet.dht.MonitorPutMessage
-org.gnunet.util.GnunetMessage$Body|171=org.gnunet.statistics.GetResponseEndMessage
-org.gnunet.util.GnunetMessage$Body|170=org.gnunet.statistics.GetResponseMessage
-org.gnunet.util.GnunetMessage$Body|169=org.gnunet.statistics.GetMessage
-org.gnunet.util.GnunetMessage$Body|168=org.gnunet.statistics.SetMessage
-org.gnunet.util.GnunetMessage$Body|173=org.gnunet.statistics.WatchResponseMessage
-org.gnunet.util.GnunetMessage$Body|172=org.gnunet.statistics.WatchMessage
+org.gnunet.util.GnunetMessage$Body|171=org.gnunet.statistics.messages.GetResponseEndMessage
+org.gnunet.util.GnunetMessage$Body|170=org.gnunet.statistics.messages.GetResponseMessage
+org.gnunet.util.GnunetMessage$Body|169=org.gnunet.statistics.messages.GetMessage
+org.gnunet.util.GnunetMessage$Body|168=org.gnunet.statistics.messages.SetMessage
+org.gnunet.util.GnunetMessage$Body|173=org.gnunet.statistics.messages.WatchResponseMessage
+org.gnunet.util.GnunetMessage$Body|172=org.gnunet.statistics.messages.WatchMessage
org.gnunet.util.GnunetMessage$Body|476=org.gnunet.testbed.messages.PeerGetInformationMessage
org.gnunet.util.GnunetMessage$Body|477=org.gnunet.testbed.messages.PeerInformationMessage
org.gnunet.util.GnunetMessage$Body|474=org.gnunet.testbed.messages.PeerCreateSuccessMessage
Modified:
gnunet-java/src/test/java/org/gnunet/consensus/ConsensusTestbedTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/consensus/ConsensusTestbedTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/consensus/ConsensusTestbedTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -3,7 +3,6 @@
import org.gnunet.testbed.Controller;
import org.gnunet.testbed.ControllerProc;
import org.gnunet.testbed.Host;
-import org.gnunet.testbed.SimpleTestbed;
import org.gnunet.testbed.callbacks.*;
import org.gnunet.testing.TestingFixture;
import org.gnunet.util.*;
@@ -11,7 +10,6 @@
import org.junit.Test;
import java.util.HashSet;
-import java.util.Set;
/**
* Test for consensus with multiple peers using testbed.
@@ -20,7 +18,7 @@
@Test
public void test_consensus_testbed_2peers() {
final Wrapper<Boolean> done = new Wrapper<Boolean>(false);
- new Program("-LDEBUG") {
+ new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -177,7 +175,7 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(done.get());
Modified: gnunet-java/src/test/java/org/gnunet/construct/FrameSizeTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/construct/FrameSizeTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/construct/FrameSizeTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,7 +1,6 @@
package org.gnunet.construct;
import org.junit.Assert;
-import org.gnunet.util.GnunetMessage;
import org.junit.Test;
/**
Modified: gnunet-java/src/test/java/org/gnunet/construct/OptionalUnionTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/construct/OptionalUnionTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/construct/OptionalUnionTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,7 +1,6 @@
package org.gnunet.construct;
import org.junit.Assert;
-import org.gnunet.util.GnunetMessage;
import org.junit.Test;
/**
Modified: gnunet-java/src/test/java/org/gnunet/construct/StringTuple.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/construct/StringTuple.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/construct/StringTuple.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,10 +1,9 @@
package org.gnunet.construct;
import com.google.common.base.Objects;
-import com.google.common.hash.HashCodes;
/**
-* ...
+* Message to test string parsing in construct.
*
* @author Florian Dold
*/
Modified: gnunet-java/src/test/java/org/gnunet/core/CoreTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/core/CoreTest.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/core/CoreTest.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -22,7 +22,6 @@
import org.gnunet.testing.TestingFixture;
-import org.gnunet.testing.TestingSetup;
import org.gnunet.testing.TestingSubsystem;
import org.gnunet.util.*;
import org.grothoff.Runabout;
Modified: gnunet-java/src/test/java/org/gnunet/dht/DHTTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/dht/DHTTest.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/dht/DHTTest.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -20,8 +20,6 @@
package org.gnunet.dht;
-import static org.junit.Assert.*;
-
import org.gnunet.testing.TestingFixture;
import org.gnunet.testing.TestingSubsystem;
import org.gnunet.util.*;
@@ -31,6 +29,8 @@
import java.util.EnumSet;
import java.util.List;
+import static org.junit.Assert.assertArrayEquals;
+
public class DHTTest extends TestingFixture {
@Test(timeout = 1000)
public void test_dht_put() {
Modified: gnunet-java/src/test/java/org/gnunet/mesh/MeshTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/mesh/MeshTest.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/mesh/MeshTest.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -6,7 +6,6 @@
import org.gnunet.testing.TestingSubsystem;
import org.gnunet.util.*;
import org.junit.Test;
-import java.lang.Void;
/**
* ...
Modified: gnunet-java/src/test/java/org/gnunet/nse/NSETest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/nse/NSETest.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/nse/NSETest.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -20,7 +20,6 @@
package org.gnunet.nse;
-import org.gnunet.testing.TestingSetup;
import org.gnunet.testing.TestingSubsystem;
import org.gnunet.util.AbsoluteTime;
import org.gnunet.util.Scheduler;
Modified: gnunet-java/src/test/java/org/gnunet/peerinfo/PeerInfoTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/peerinfo/PeerInfoTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/peerinfo/PeerInfoTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -5,7 +5,6 @@
import org.gnunet.util.*;
import org.junit.Test;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
Modified: gnunet-java/src/test/java/org/gnunet/statistics/StatisticsTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/statistics/StatisticsTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/statistics/StatisticsTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -20,11 +20,10 @@
package org.gnunet.statistics;
-import org.junit.Assert;
import org.gnunet.testing.TestingFixture;
-import org.gnunet.testing.TestingSetup;
import org.gnunet.testing.TestingSubsystem;
import org.gnunet.util.*;
+import org.junit.Assert;
import org.junit.Test;
@@ -41,6 +40,7 @@
stat.get(RelativeTime.FOREVER, subsystem, name, new
StatisticsReceiver() {
@Override
public void onReceive(String rsubsystem, String rname,
long rvalue) {
+ System.out.println(String.format("%s:%s = %s",
rsubsystem, rname, rvalue));
if (rsubsystem.equals(subsystem) && rname.equals(name)
&& rvalue == expectedValue) {
getAssertion.assertTrue(true);
} else {
@@ -123,17 +123,21 @@
Scheduler.addDelayed(RelativeTime.fromMilliseconds(200), new
Scheduler.Task() {
@Override
public void run(Scheduler.RunContext ctx) {
+ System.out.println("timeout over");
stat1.destroy();
final Statistics stat2 = new Statistics(ts.getConfiguration());
assertStatisticsGet(assertions, stat2, "gnj-test", "test1", 5,
new Next() {
@Override
public void next() {
+ System.out.println("got test1");
assertStatisticsGet(assertions, stat2, "gnj-test",
"test2", 7, new Next() {
@Override
public void next() {
+ System.out.println("got test2");
assertStatisticsGet(assertions, stat2,
"gnj-test", "test3", 4, new Next() {
@Override
public void next() {
+ System.out.println("got test3");
stat2.destroy();
}
});
@@ -164,11 +168,6 @@
System.out.println("received update!");
stat.destroy();
}
-
- @Override
- public void onTimeout() {
- Assert.fail();
- }
});
// the set is sent after the watch, thus it is guaranteed we
Modified: gnunet-java/src/test/java/org/gnunet/testbed/TestbedTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/testbed/TestbedTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/testbed/TestbedTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -15,7 +15,7 @@
@Test(timeout = 10000)
public void test_controller_proc() {
final Wrapper<Boolean> success = new Wrapper<Boolean>(false);
- new Program("-LDEBUG") {
+ new Program() {
@Override
public void run() {
// use local peer's config, does that really make sense?
@@ -33,14 +33,14 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(success.get());
}
@Test(timeout = 10000)
public void test_peer_create() {
- new Program("-LDEBUG") {
+ new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -78,12 +78,12 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
}
@Test(timeout = 10000)
public void test_peer_destroy() {
- new Program("-LDEBUG") {
+ new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -132,13 +132,13 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
}
@Test(timeout = 10000)
public void test_peer_start() {
final Wrapper<Boolean> startSuccessful = new Wrapper<Boolean>(false);
- int ret = new Program("-LDEBUG") {
+ int ret = new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -191,7 +191,7 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(startSuccessful.get());
Assert.assertEquals(0, ret);
}
@@ -200,7 +200,7 @@
public void test_peer_stop() {
final Wrapper<Boolean> startSuccessful = new Wrapper<Boolean>(false);
final Wrapper<Boolean> stopSuccessful = new Wrapper<Boolean>(false);
- int ret = new Program("-LDEBUG") {
+ int ret = new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -269,7 +269,7 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(startSuccessful.get());
Assert.assertTrue(stopSuccessful.get());
Assert.assertEquals(0, ret);
@@ -280,7 +280,7 @@
final Wrapper<Boolean> startSuccessful = new Wrapper<Boolean>(false);
final Wrapper<Boolean> stopSuccessful = new Wrapper<Boolean>(false);
final Wrapper<Boolean> destroySuccessful = new Wrapper<Boolean>(false);
- int ret = new Program("-LDEBUG") {
+ int ret = new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -362,7 +362,7 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(startSuccessful.get());
Assert.assertTrue(stopSuccessful.get());
Assert.assertTrue(destroySuccessful.get());
@@ -373,7 +373,7 @@
public void test_peer_get_config() {
final Wrapper<Boolean> startSuccessful = new Wrapper<Boolean>(false);
final Wrapper<Boolean> infoSuccessful = new Wrapper<Boolean>(false);
- int ret = new Program("-LDEBUG") {
+ int ret = new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -425,7 +425,7 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(startSuccessful.get());
Assert.assertTrue(infoSuccessful.get());
Assert.assertEquals(0, ret);
@@ -435,7 +435,7 @@
public void test_peer_reconfigure() {
final Wrapper<Boolean> startSuccessful = new Wrapper<Boolean>(false);
final Wrapper<Boolean> reconfigureSuccessful = new
Wrapper<Boolean>(false);
- int ret = new Program("-LDEBUG") {
+ int ret = new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -496,7 +496,7 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(reconfigureSuccessful.get());
Assert.assertEquals(0, ret);
}
@@ -504,7 +504,7 @@
@Test(timeout = 5000)
public void test_peer_get_connect_overlay() {
final Wrapper<Boolean> connectSuccessful = new Wrapper<Boolean>(false);
- int ret = new Program("-LDEBUG") {
+ int ret = new Program() {
ControllerProc cp;
Host h;
Controller c;
@@ -591,7 +591,7 @@
}
});
}
- }.start();
+ }.start("-LDEBUG");
Assert.assertTrue(connectSuccessful.get());
Assert.assertEquals(0, ret);
}
Modified: gnunet-java/src/test/java/org/gnunet/transport/TransportTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/transport/TransportTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/transport/TransportTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -21,12 +21,12 @@
package org.gnunet.transport;
import org.gnunet.hello.HelloMessage;
-import org.gnunet.peerinfo.PeerInfo;
-import org.gnunet.peerinfo.PeerProcessor;
import org.gnunet.testing.TestingFixture;
import org.gnunet.testing.TestingSubsystem;
import org.gnunet.transport.callbacks.HelloUpdateCallback;
-import org.gnunet.util.*;
+import org.gnunet.util.Program;
+import org.gnunet.util.Scheduler;
+import org.gnunet.util.Wrapper;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
Modified: gnunet-java/src/test/java/org/gnunet/util/ClientServerTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/util/ClientServerTest.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/util/ClientServerTest.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -1,20 +1,12 @@
package org.gnunet.util;
import com.google.common.collect.Lists;
-import org.gnunet.construct.UInt32;
-import org.gnunet.construct.UnionCase;
import org.gnunet.testing.TestingFixture;
import org.gnunet.testing.TestingServer;
-import org.gnunet.testing.TestingSetup;
import org.junit.Assert;
import org.junit.Test;
-import java.io.IOException;
import java.net.*;
-import java.nio.ByteBuffer;
-import java.nio.channels.Pipe;
-import java.nio.channels.spi.SelectorProvider;
-import java.util.ArrayList;
/**
* ...
Modified: gnunet-java/src/test/java/org/gnunet/util/EcdsaTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/util/EcdsaTest.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/util/EcdsaTest.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -20,7 +20,10 @@
package org.gnunet.util;
-import org.gnunet.util.crypto.*;
+import org.gnunet.util.crypto.EcdsaPrivateKey;
+import org.gnunet.util.crypto.EcdsaPublicKey;
+import org.gnunet.util.crypto.EcdsaSignature;
+import org.gnunet.util.crypto.Ed25519;
import org.junit.Assert;
import org.junit.Test;
Modified: gnunet-java/src/test/java/org/gnunet/util/ResolverTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/util/ResolverTest.java 2014-03-11
01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/util/ResolverTest.java 2014-03-11
01:24:03 UTC (rev 32613)
@@ -20,9 +20,7 @@
package org.gnunet.util;
-import org.gnunet.testing.TestingSetup;
import org.gnunet.testing.TestingSubsystem;
-import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: gnunet-java/src/test/java/org/gnunet/util/ServerExample.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/util/ServerExample.java
2014-03-11 01:22:11 UTC (rev 32612)
+++ gnunet-java/src/test/java/org/gnunet/util/ServerExample.java
2014-03-11 01:24:03 UTC (rev 32613)
@@ -24,7 +24,7 @@
import java.net.SocketAddress;
import java.util.Arrays;
-import static org.gnunet.util.Server.*;
+import static org.gnunet.util.Server.DisconnectHandler;
/**
* Example server implementation.
@@ -35,7 +35,7 @@
public static void main(String[] args) {
// usually servers should run inside a service, this is just for
testing
- new Program(args) {
+ new Program() {
@Override
public void run() {
Server s = new Server(Arrays.asList(new SocketAddress[]{new
InetSocketAddress("127.0.0.1", 3456)}),
@@ -74,6 +74,6 @@
});
}
- }.start();
+ }.start(args);
}
}
Modified: gnunet-java/src/test/python/test_voting_single.py
===================================================================
--- gnunet-java/src/test/python/test_voting_single.py 2014-03-11 01:22:11 UTC
(rev 32612)
+++ gnunet-java/src/test/python/test_voting_single.py 2014-03-11 01:24:03 UTC
(rev 32613)
@@ -13,6 +13,7 @@
def wait_for_after(ts):
now = time.time()
if now < ts:
+ print "waiting", ts - now, "seconds"
time.sleep(ts - now)
def get_config(section, option, filename=None, expand=False):
@@ -83,13 +84,13 @@
ballot = open(ballot_filename, "w")
now = int(time.time())
-TS_KEYGEN_START = now + 10
-TS_KEYGEN_END = now + 20
-TS_START = now + 20
-TS_CLOSING = now + 25
-TS_CONCLUDE = now + 45
-TS_QUERY = now + 65
-TS_END = now + 65
+TS_KEYGEN_START = now + 5
+TS_KEYGEN_END = now + 10
+TS_START = now + 15
+TS_CLOSING = now + 20
+TS_CONCLUDE = now + 25
+TS_QUERY = now + 30
+TS_END = now + 35
ballot.write("[authorities]\n")
ballot.write("auth0 = %s\n" % public_key)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r32613 - in gnunet-java: . bin gradle/wrapper lib src/main/java/org/gnunet/arm src/main/java/org/gnunet/consensus src/main/java/org/gnunet/consensus/messages src/main/java/org/gnunet/construct src/main/java/org/gnunet/construct/parsers src/main/java/org/gnunet/core src/main/java/org/gnunet/dht src/main/java/org/gnunet/gns src/main/java/org/gnunet/gns/callbacks src/main/java/org/gnunet/gns/messages src/main/java/org/gnunet/identity src/main/java/org/gnunet/identity/messages src/main/java/org/gnunet/mesh src/main/java/org/gnunet/mq src/main/java/org/gnunet/nse src/main/java/org/gnunet/peerinfo src/main/java/org/gnunet/requests src/main/java/org/gnunet/secretsharing src/main/java/org/gnunet/secretsharing/messages src/main/java/org/gnunet/statistics src/main/java/org/gnunet/testbed src/main/java/org/gnunet/testing src/main/java/org/gnunet/transport src/main/java/org/gnunet/transport/callbacks src/main/java/org/gnunet/transport/messages src/main/java/org/gnunet/util src/m ain/java /org/gnunet/util/crypto src/main/java/org/gnunet/util/getopt src/main/java/org/gnunet/voting src/main/java/org/gnunet/voting/messages src/main/java/org/gnunet/voting/simulation src/main/resources/org/gnunet/construct src/test/java/org/gnunet/consensus src/test/java/org/gnunet/construct src/test/java/org/gnunet/core src/test/java/org/gnunet/dht src/test/java/org/gnunet/mesh src/test/java/org/gnunet/nse src/test/java/org/gnunet/peerinfo src/test/java/org/gnunet/statistics src/test/java/org/gnunet/testbed src/test/java/org/gnunet/transport src/test/java/org/gnunet/util src/test/python,
gnunet <=