gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r18993 - in gnunet-java: . .idea .idea/copyright .idea/dict


From: gnunet
Subject: [GNUnet-SVN] r18993 - in gnunet-java: . .idea .idea/copyright .idea/dictionaries .idea/inspectionProfiles .idea/libraries .idea/scopes src/org/gnunet/construct src/org/gnunet/exceptions src/org/gnunet/service src/org/gnunet/util test/org/gnunet/services
Date: Thu, 5 Jan 2012 11:37:57 +0100

Author: dold
Date: 2012-01-05 11:37:57 +0100 (Thu, 05 Jan 2012)
New Revision: 18993

Added:
   gnunet-java/.idea/
   gnunet-java/.idea/.name
   gnunet-java/.idea/ant.xml
   gnunet-java/.idea/codeStyleSettings.xml
   gnunet-java/.idea/compiler.xml
   gnunet-java/.idea/copyright/
   gnunet-java/.idea/copyright/profiles_settings.xml
   gnunet-java/.idea/dictionaries/
   gnunet-java/.idea/dictionaries/dold.xml
   gnunet-java/.idea/encodings.xml
   gnunet-java/.idea/inspectionProfiles/
   gnunet-java/.idea/inspectionProfiles/Project_Default.xml
   gnunet-java/.idea/inspectionProfiles/profiles_settings.xml
   gnunet-java/.idea/libraries/
   gnunet-java/.idea/libraries/junit_4_10.xml
   gnunet-java/.idea/libraries/lib.xml
   gnunet-java/.idea/misc.xml
   gnunet-java/.idea/modules.xml
   gnunet-java/.idea/scopes/
   gnunet-java/.idea/scopes/scope_settings.xml
   gnunet-java/.idea/vcs.xml
   gnunet-java/.idea/workspace.xml
Modified:
   gnunet-java/ISSUES
   gnunet-java/src/org/gnunet/construct/MessageIdAnnotationProcessor.java
   gnunet-java/src/org/gnunet/exceptions/InternalLogicError.java
   gnunet-java/src/org/gnunet/service/NSE_UpdateMessage.java
   gnunet-java/src/org/gnunet/service/NetworkSizeEstimationService.java
   gnunet-java/src/org/gnunet/util/AbsoluteTime.java
   gnunet-java/src/org/gnunet/util/Client.java
   gnunet-java/src/org/gnunet/util/Configuration.java
   gnunet-java/src/org/gnunet/util/IOContinuation.java
   gnunet-java/src/org/gnunet/util/RelativeTime.java
   gnunet-java/src/org/gnunet/util/RunaboutMessageReceiver.java
   gnunet-java/src/org/gnunet/util/Scheduler.java
   gnunet-java/test/org/gnunet/services/ConfigUtil.java
   gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java
   gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java
Log:
fixes / documentation

Added: gnunet-java/.idea/.name
===================================================================
--- gnunet-java/.idea/.name                             (rev 0)
+++ gnunet-java/.idea/.name     2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1 @@
+gnunet-java
\ No newline at end of file

Added: gnunet-java/.idea/ant.xml
===================================================================
--- gnunet-java/.idea/ant.xml                           (rev 0)
+++ gnunet-java/.idea/ant.xml   2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AntConfiguration">
+    <defaultAnt bundledAnt="true" />
+  </component>
+</project>
+

Added: gnunet-java/.idea/codeStyleSettings.xml
===================================================================
--- gnunet-java/.idea/codeStyleSettings.xml                             (rev 0)
+++ gnunet-java/.idea/codeStyleSettings.xml     2012-01-05 10:37:57 UTC (rev 
18993)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectCodeStyleSettingsManager">
+    <option name="PER_PROJECT_SETTINGS">
+      <value />
+    </option>
+  </component>
+</project>
+

Added: gnunet-java/.idea/compiler.xml
===================================================================
--- gnunet-java/.idea/compiler.xml                              (rev 0)
+++ gnunet-java/.idea/compiler.xml      2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <option name="DEFAULT_COMPILER" value="compAPI" />
+    <resourceExtensions />
+    <wildcardResourcePatterns>
+      <entry name="?*.properties" />
+      <entry name="?*.xml" />
+      <entry name="?*.gif" />
+      <entry name="?*.png" />
+      <entry name="?*.jpeg" />
+      <entry name="?*.jpg" />
+      <entry name="?*.html" />
+      <entry name="?*.dtd" />
+      <entry name="?*.tld" />
+      <entry name="?*.ftl" />
+      <entry name="?*.conf" />
+      <entry name="?*.txt" />
+    </wildcardResourcePatterns>
+    <annotationProcessing enabled="false" useClasspath="true" />
+  </component>
+</project>
+

Added: gnunet-java/.idea/copyright/profiles_settings.xml
===================================================================
--- gnunet-java/.idea/copyright/profiles_settings.xml                           
(rev 0)
+++ gnunet-java/.idea/copyright/profiles_settings.xml   2012-01-05 10:37:57 UTC 
(rev 18993)
@@ -0,0 +1,5 @@
+<component name="CopyrightManager">
+  <settings default="">
+    <module2copyright />
+  </settings>
+</component>
\ No newline at end of file

Added: gnunet-java/.idea/dictionaries/dold.xml
===================================================================
--- gnunet-java/.idea/dictionaries/dold.xml                             (rev 0)
+++ gnunet-java/.idea/dictionaries/dold.xml     2012-01-05 10:37:57 UTC (rev 
18993)
@@ -0,0 +1,7 @@
+<component name="ProjectDictionaryState">
+  <dictionary name="dold">
+    <words>
+      <w>undescriptive</w>
+    </words>
+  </dictionary>
+</component>
\ No newline at end of file

Added: gnunet-java/.idea/encodings.xml
===================================================================
--- gnunet-java/.idea/encodings.xml                             (rev 0)
+++ gnunet-java/.idea/encodings.xml     2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" useUTFGuessing="true" 
native2AsciiForPropertiesFiles="false" />
+</project>
+

Added: gnunet-java/.idea/inspectionProfiles/Project_Default.xml
===================================================================
--- gnunet-java/.idea/inspectionProfiles/Project_Default.xml                    
        (rev 0)
+++ gnunet-java/.idea/inspectionProfiles/Project_Default.xml    2012-01-05 
10:37:57 UTC (rev 18993)
@@ -0,0 +1,421 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0" is_locked="false">
+    <option name="myName" value="Project Default" />
+    <option name="myLocal" value="false" />
+    <inspection_tool class="AbstractClassExtendsConcreteClass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AbstractClassNeverImplemented" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AbstractClassWithoutAbstractMethods" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AbstractMethodCallInConstructor" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AbstractMethodOverridesAbstractMethod" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AbstractMethodOverridesConcreteMethod" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AbstractMethodWithMissingImplementations" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AccessToNonThreadSafeStaticFieldFromInstance" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="nonThreadSafeTypes" value="" />
+      <option name="nonThreadSafeClasses">
+        <value />
+      </option>
+    </inspection_tool>
+    <inspection_tool class="AccessToStaticFieldLockedOnInstance" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AmbiguousFieldAccess" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AmbiguousMethodCall" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool 
class="AnonymousClassVariableHidesContainingMethodVariable" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ArchaicSystemPropertyAccess" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ArrayEquality" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="AssignmentToCatchBlockParameter" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AssignmentToCollectionFieldFromParameter" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignorePrivateMethods" value="true" />
+    </inspection_tool>
+    <inspection_tool class="AssignmentToDateFieldFromParameter" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignorePrivateMethods" value="true" />
+    </inspection_tool>
+    <inspection_tool class="AssignmentToForLoopParameter" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_checkForeachParameters" value="false" />
+    </inspection_tool>
+    <inspection_tool class="AssignmentToMethodParameter" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreTransformationOfOriginalParameter" value="false" />
+    </inspection_tool>
+    <inspection_tool class="AssignmentToStaticFieldFromInstanceMethod" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AssignmentUsedAsCondition" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AwaitNotInLoop" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="AwaitWithoutCorrespondingSignal" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="BadOddness" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="BooleanMethodIsAlwaysInverted" enabled="false" 
level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="BreakStatement" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="BreakStatementWithLabel" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="BusyWait" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="CallToNativeMethodWhileLocked" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CallToSimpleGetterInClass" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreGetterCallsOnOtherObjects" value="false" />
+      <option name="onlyReportPrivateGetter" value="false" />
+    </inspection_tool>
+    <inspection_tool class="CallToSimpleSetterInClass" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreSetterCallsOnOtherObjects" value="false" />
+      <option name="onlyReportPrivateSetter" value="false" />
+    </inspection_tool>
+    <inspection_tool class="CastConflictsWithInstanceof" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CastToIncompatibleInterface" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ChannelResource" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="insideTryAllowed" value="false" />
+    </inspection_tool>
+    <inspection_tool class="CheckedExceptionClass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ClassEscapesItsScope" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ClassLoaderInstantiation" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ClassNewInstance" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ClassReferencesSubclass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ClassWithMultipleLoggers" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="loggerNamesString" 
value="java.util.logging.Logger,org.slf4j.Logger,org.apache.commons.logging.Log,org.apache.log4j.Logger"
 />
+    </inspection_tool>
+    <inspection_tool class="CloneableClassInSecureContext" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CollectionAddedToSelf" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CollectionsFieldAccessReplaceableByMethodCall" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CollectionsMustHaveInitialCapacity" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ComparableImplementedButEqualsNotOverridden" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ComparatorNotSerializable" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CompareToUsesNonFinalVariable" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ConditionSignal" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ConditionalExpression" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreSimpleAssignmentsAndReturns" value="true" />
+    </inspection_tool>
+    <inspection_tool class="ConditionalExpressionWithIdenticalBranches" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ConfusingElse" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="reportWhenNoStatementFollow" value="false" />
+    </inspection_tool>
+    <inspection_tool class="ConstantAssertCondition" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ContinueStatement" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ContinueStatementWithLabel" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CovariantCompareTo" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="CovariantEquals" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="CustomClassloader" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="CustomSecurityManager" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="DeclareCollectionAsInterface" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreLocalVariables" value="false" />
+      <option name="ignorePrivateMethodsAndFields" value="false" />
+    </inspection_tool>
+    <inspection_tool class="DefaultNotLastCaseInSwitch" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="DeserializableClassInSecureContext" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="DivideByZero" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="DoubleCheckedLocking" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreOnVolatileVariables" value="false" />
+    </inspection_tool>
+    <inspection_tool class="DoubleNegation" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="DuplicateBooleanBranch" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="DuplicateCondition" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="ignoreMethodCalls" value="false" />
+    </inspection_tool>
+    <inspection_tool class="DynamicRegexReplaceableByCompiledPattern" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="EmptyDirectory" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="EmptyInitializer" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="EmptySynchronizedStatement" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="EnumSwitchStatementWhichMissesCases" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignoreSwitchStatementsWithDefault" value="false" />
+    </inspection_tool>
+    <inspection_tool class="EnumerationCanBeIteration" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="EqualsHashCodeCalledOnUrl" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="EqualsUsesNonFinalVariable" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ErrorRethrown" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ExtendsConcreteCollection" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ExtendsThread" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ExtendsUtilityClass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ExternalizableWithSerializationMethods" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="FallthruInSwitchStatement" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="FeatureEnvy" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="ignoreTestCases" value="false" />
+    </inspection_tool>
+    <inspection_tool class="FieldAccessedSynchronizedAndUnsynchronized" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="countGettersAndSetters" value="false" />
+    </inspection_tool>
+    <inspection_tool class="FieldHidesSuperclassField" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignoreInvisibleFields" value="true" />
+    </inspection_tool>
+    <inspection_tool class="FieldMayBeStatic" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ForLoopReplaceableByWhile" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignoreLoopsWithoutConditions" value="false" />
+    </inspection_tool>
+    <inspection_tool class="ForLoopThatDoesntUseLoopVariable" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ForLoopWithMissingComponent" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreCollectionLoops" value="false" />
+    </inspection_tool>
+    <inspection_tool class="HardcodedFileSeparators" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_recognizeExampleMediaType" value="false" />
+    </inspection_tool>
+    <inspection_tool class="HardcodedLineSeparators" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="HashCodeUsesNonFinalVariable" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="HtmlTagCanBeJavadocTag" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="IOResource" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="ignoredTypesString" 
value="java.io.ByteArrayOutputStream,java.io.ByteArrayInputStream,java.io.StringBufferInputStream,java.io.CharArrayWriter,java.io.CharArrayReader,java.io.StringWriter,java.io.StringReader"
 />
+      <option name="insideTryAllowed" value="false" />
+    </inspection_tool>
+    <inspection_tool class="IfMayBeConditional" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="IfStatementWithIdenticalBranches" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="IfStatementWithTooManyBranches" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_limit" value="3" />
+    </inspection_tool>
+    <inspection_tool class="IncrementDecrementUsedAsExpression" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="InnerClassMayBeStatic" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="InnerClassVariableHidesOuterClassVariable" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="m_ignoreInvisibleFields" value="true" />
+    </inspection_tool>
+    <inspection_tool class="InstanceVariableInitialization" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignorePrimitives" value="false" />
+    </inspection_tool>
+    <inspection_tool class="InstanceVariableUninitializedUse" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignorePrimitives" value="false" />
+      <option name="annotationNamesString" value="" />
+    </inspection_tool>
+    <inspection_tool class="InstanceofChain" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="ignoreInstanceofOnLibraryClasses" value="false" />
+    </inspection_tool>
+    <inspection_tool class="InstanceofIncompatibleInterface" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="InstanceofThis" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="InstantiationOfUtilityClass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="InterfaceNeverImplemented" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreInterfacesThatOnlyDeclareConstants" value="false" />
+    </inspection_tool>
+    <inspection_tool class="IteratorHasNextCallsIteratorNext" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="IteratorNextDoesNotThrowNoSuchElementException" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="JDBCExecuteWithNonConstantString" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="JDBCPrepareStatementWithNonConstantString" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="JavadocReference" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="KeySetIterationMayUseEntrySet" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="LabeledStatement" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="LoadLibraryWithNonConstantString" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="LocalVariableHidingMemberVariable" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignoreInvisibleFields" value="true" />
+      <option name="m_ignoreStaticMethods" value="true" />
+    </inspection_tool>
+    <inspection_tool class="LoopConditionNotUpdatedInsideLoop" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreIterators" value="false" />
+    </inspection_tool>
+    <inspection_tool class="LoopWithImplicitTerminationCondition" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MagicNumber" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="m_ignoreInHashCode" value="true" />
+    </inspection_tool>
+    <inspection_tool class="MapReplaceableByEnumMap" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MethodCanBeVariableArityMethod" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreByteAndShortArrayParameters" value="false" />
+    </inspection_tool>
+    <inspection_tool class="MethodMayBeStatic" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="m_onlyPrivateOrFinal" value="false" />
+      <option name="m_ignoreEmptyMethods" value="true" />
+    </inspection_tool>
+    <inspection_tool class="MethodMayBeSynchronized" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MethodOnlyUsedFromInnerClass" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreMethodsAccessedFromAnonymousClass" value="false" />
+      <option name="ignoreStaticMethodsFromNonStaticInnerClass" value="false" 
/>
+      <option name="onlyReportStaticMethods" value="false" />
+    </inspection_tool>
+    <inspection_tool class="MethodOverloadsParentMethod" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MethodOverridesPackageLocalMethod" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MethodOverridesPrivateMethod" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MethodOverridesStaticMethod" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MisspelledCompareTo" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MisspelledEquals" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="MisspelledHashcode" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="MisspelledToString" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="NakedNotify" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="NegatedConditional" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="m_ignoreNegatedNullComparison" value="true" />
+    </inspection_tool>
+    <inspection_tool class="NegatedIfElse" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="m_ignoreNegatedNullComparison" value="true" />
+    </inspection_tool>
+    <inspection_tool class="NestedAssignment" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="NestedConditionalExpression" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NestedSwitchStatement" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NestedSynchronizedStatement" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonAtomicOperationOnVolatileField" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonFinalClone" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="NonFinalFieldOfException" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonFinalStaticVariableUsedInClassInitialization" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonProtectedConstructorInAbstractClass" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="m_ignoreNonPublicClasses" value="false" />
+    </inspection_tool>
+    <inspection_tool class="NonSerializableFieldInSerializableClass" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignorableAnnotations">
+        <value />
+      </option>
+      <option name="ignoreAnonymousInnerClasses" value="false" />
+      <option name="superClassString" value="" />
+    </inspection_tool>
+    <inspection_tool class="NonSerializableObjectBoundToHttpSession" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonSerializableObjectPassedToObjectStream" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonSerializableWithSerialVersionUIDField" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonSerializableWithSerializationMethods" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonShortCircuitBoolean" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonSynchronizedMethodOverridesSynchronizedMethod" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NonThreadSafeLazyInitialization" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NotifyCalledOnCondition" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NotifyNotInSynchronizedContext" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NotifyWithoutCorrespondingWait" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="NullThrown" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ObjectEquality" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="m_ignoreEnums" value="true" />
+      <option name="m_ignoreClassObjects" value="false" />
+      <option name="m_ignorePrivateConstructors" value="false" />
+    </inspection_tool>
+    <inspection_tool class="ObjectNotify" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ObjectToString" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="OctalAndDecimalIntegersMixed" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="OverlyComplexBooleanExpression" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_limit" value="3" />
+      <option name="m_ignorePureConjunctionsDisjunctions" value="true" />
+    </inspection_tool>
+    <inspection_tool class="OverlyStrongTypeCast" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreInMatchingInstanceof" value="false" />
+    </inspection_tool>
+    <inspection_tool class="OverridableMethodCallDuringObjectConstruction" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="OverriddenMethodCallDuringObjectConstruction" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="PointlessIndexOfComparison" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="PointlessNullCheck" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="PublicFieldAccessedInSynchronizedContext" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="PublicStaticArrayField" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="PublicStaticCollectionField" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="RandomDoubleForRandomInteger" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="RawUseOfParameterizedType" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreObjectConstruction" value="true" />
+      <option name="ignoreTypeCasts" value="false" />
+    </inspection_tool>
+    <inspection_tool class="ReadObjectAndWriteObjectPrivate" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ReadObjectInitialization" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ReadResolveAndWriteReplaceProtected" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="RedundantMethodOverride" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="RedundantStringFormatCall" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="RefusedBequest" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="ignoreEmptySuperMethods" value="false" />
+    </inspection_tool>
+    <inspection_tool class="ReplaceAllDot" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ReplaceAssignmentWithOperatorAssignment" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignoreLazyOperators" value="true" />
+      <option name="ignoreObscureOperators" value="false" />
+    </inspection_tool>
+    <inspection_tool class="ResultOfObjectAllocationIgnored" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ResultSetIndexZero" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ReturnNull" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="m_reportObjectMethods" value="true" />
+      <option name="m_reportArrayMethods" value="true" />
+      <option name="m_reportCollectionMethods" value="true" />
+      <option name="m_ignorePrivateMethods" value="false" />
+    </inspection_tool>
+    <inspection_tool class="RuntimeExecWithNonConstantString" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SafeLock" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="SerialPersistentFieldsWithWrongSignature" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SerialVersionUIDNotStaticFinal" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SerializableClassInSecureContext" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SerializableHasSerialVersionUIDField" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignoreAnonymousInnerClasses" value="false" />
+      <option name="superClassString" value="" />
+    </inspection_tool>
+    <inspection_tool class="SerializableHasSerializationMethods" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignoreAnonymousInnerClasses" value="false" />
+      <option name="superClassString" value="" />
+    </inspection_tool>
+    <inspection_tool class="SerializableInnerClassHasSerialVersionUIDField" 
enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignoreAnonymousInnerClasses" value="false" />
+      <option name="superClassString" value="" />
+    </inspection_tool>
+    <inspection_tool 
class="SerializableInnerClassWithNonSerializableOuterClass" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreAnonymousInnerClasses" value="false" />
+      <option name="superClassString" value="" />
+    </inspection_tool>
+    <inspection_tool class="SerializableWithUnconstructableAncestor" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SignalWithoutCorrespondingAwait" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="Since15" enabled="true" level="ERROR" 
enabled_by_default="true" />
+    <inspection_tool class="SleepWhileHoldingLock" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SpellCheckingInspection" enabled="false" 
level="TYPO" enabled_by_default="false">
+      <option name="processCode" value="false" />
+      <option name="processLiterals" value="false" />
+      <option name="processComments" value="true" />
+    </inspection_tool>
+    <inspection_tool class="StaticCallOnSubclass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="StaticFieldReferenceOnSubclass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="StaticInheritance" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="StaticMethodOnlyUsedInOneClass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="StaticVariableInitialization" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignorePrimitives" value="false" />
+    </inspection_tool>
+    <inspection_tool class="StaticVariableUninitializedUse" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignorePrimitives" value="false" />
+    </inspection_tool>
+    <inspection_tool class="StringBufferField" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="StringBufferReplaceableByString" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="StringConcatenationInFormatCall" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="StringConcatenationInLoops" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignoreUnlessAssigned" value="true" />
+    </inspection_tool>
+    <inspection_tool class="StringConcatenationInMessageFormatCall" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="StringEqualsEmptyString" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="StringReplaceableByStringBuffer" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="onlyWarnOnLoop" value="true" />
+    </inspection_tool>
+    <inspection_tool class="SubstringZero" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="SubtractionInCompareTo" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SuspiciousIndentAfterControlStatement" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SwitchStatement" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="SwitchStatementDensity" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_limit" value="20" />
+    </inspection_tool>
+    <inspection_tool class="SwitchStatementWithConfusingDeclaration" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SwitchStatementWithTooFewBranches" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_limit" value="2" />
+    </inspection_tool>
+    <inspection_tool class="SwitchStatementWithTooManyBranches" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_limit" value="10" />
+    </inspection_tool>
+    <inspection_tool class="SwitchStatementsWithoutDefault" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="m_ignoreFullyCoveredEnums" value="true" />
+    </inspection_tool>
+    <inspection_tool class="SynchronizationOnStaticField" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SynchronizeOnLock" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="SynchronizeOnThis" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="SynchronizedOnLiteralObject" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SystemProperties" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="SystemRunFinalizersOnExit" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="SystemSetSecurityManager" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="TailRecursion" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="TextLabelInSwitchStatement" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ThisEscapedInConstructor" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ThreadDeathRethrown" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ThreadLocalNotStaticFinal" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ThreadPriority" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ThreadRun" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="ThreadStartInConstruction" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ThreadStopSuspendResume" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ThreadWithDefaultRunMethod" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="ThreadYield" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="TransientFieldInNonSerializableClass" 
enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="TransientFieldNotInitialized" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="TrivialStringConcatenation" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="TypeMayBeWeakened" enabled="true" level="WARNING" 
enabled_by_default="true">
+      <option name="useRighthandTypeAsWeakestTypeInAssignments" value="true" />
+      <option name="useParameterizedTypeForCollectionMethods" value="true" />
+      <option name="doNotWeakenToJavaLangObject" value="true" />
+      <option name="onlyWeakentoInterface" value="true" />
+    </inspection_tool>
+    <inspection_tool class="TypeParameterExtendsFinalClass" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="TypeParameterHidesVisibleType" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="UnaryPlus" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="UnconditionalWait" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="UnnecessaryDefault" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="UnnecessaryExplicitNumericCast" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="UnnecessaryInheritDoc" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="UnnecessaryJavaDocLink" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreInlineLinkToSuper" value="false" />
+    </inspection_tool>
+    <inspection_tool class="UnnecessaryUnaryMinus" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="UnsecureRandomNumberGeneration" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="UseOfPropertiesAsHashtable" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="VariableNotUsedInsideIf" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="VolatileArrayField" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="VolatileLongOrDoubleField" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="WaitCalledOnCondition" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="WaitNotInLoop" enabled="true" level="WARNING" 
enabled_by_default="true" />
+    <inspection_tool class="WaitNotInSynchronizedContext" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="WaitOrAwaitWithoutTimeout" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="WaitWhileHoldingTwoLocks" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="WaitWithoutCorrespondingNotify" enabled="true" 
level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="WhileLoopSpinsOnField" enabled="true" 
level="WARNING" enabled_by_default="true">
+      <option name="ignoreNonEmtpyLoops" value="false" />
+    </inspection_tool>
+    <inspection_tool class="ZeroLengthArrayInitialization" enabled="true" 
level="WARNING" enabled_by_default="true" />
+  </profile>
+</component>
\ No newline at end of file

Added: gnunet-java/.idea/inspectionProfiles/profiles_settings.xml
===================================================================
--- gnunet-java/.idea/inspectionProfiles/profiles_settings.xml                  
        (rev 0)
+++ gnunet-java/.idea/inspectionProfiles/profiles_settings.xml  2012-01-05 
10:37:57 UTC (rev 18993)
@@ -0,0 +1,7 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="PROJECT_PROFILE" value="Project Default" />
+    <option name="USE_PROJECT_PROFILE" value="true" />
+    <version value="1.0" />
+  </settings>
+</component>
\ No newline at end of file

Added: gnunet-java/.idea/libraries/junit_4_10.xml
===================================================================
--- gnunet-java/.idea/libraries/junit_4_10.xml                          (rev 0)
+++ gnunet-java/.idea/libraries/junit_4_10.xml  2012-01-05 10:37:57 UTC (rev 
18993)
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="junit-4.10">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/junit-4.10.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file

Added: gnunet-java/.idea/libraries/lib.xml
===================================================================
--- gnunet-java/.idea/libraries/lib.xml                         (rev 0)
+++ gnunet-java/.idea/libraries/lib.xml 2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="lib">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/slf4j-api-1.6.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/slf4j-log4j12-1.6.4.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/log4j-1.2.16.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file

Added: gnunet-java/.idea/misc.xml
===================================================================
--- gnunet-java/.idea/misc.xml                          (rev 0)
+++ gnunet-java/.idea/misc.xml  2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="EntryPointsManager">
+    <entry_points version="2.0" />
+  </component>
+  <component name="ProjectResources">
+    <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" 
assert-keyword="true" jdk-15="true" project-jdk-name="1.6" 
project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+  <component name="SvnBranchConfigurationManager">
+    <option name="mySupportsUserInfoFilter" value="true" />
+  </component>
+</project>
+

Added: gnunet-java/.idea/modules.xml
===================================================================
--- gnunet-java/.idea/modules.xml                               (rev 0)
+++ gnunet-java/.idea/modules.xml       2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/gnunet-java.iml" 
filepath="$PROJECT_DIR$/gnunet-java.iml" />
+    </modules>
+  </component>
+</project>
+

Added: gnunet-java/.idea/scopes/scope_settings.xml
===================================================================
--- gnunet-java/.idea/scopes/scope_settings.xml                         (rev 0)
+++ gnunet-java/.idea/scopes/scope_settings.xml 2012-01-05 10:37:57 UTC (rev 
18993)
@@ -0,0 +1,5 @@
+<component name="DependencyValidationManager">
+  <state>
+    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+  </state>
+</component>
\ No newline at end of file

Added: gnunet-java/.idea/vcs.xml
===================================================================
--- gnunet-java/.idea/vcs.xml                           (rev 0)
+++ gnunet-java/.idea/vcs.xml   2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="svn" />
+  </component>
+</project>
+

Added: gnunet-java/.idea/workspace.xml
===================================================================
--- gnunet-java/.idea/workspace.xml                             (rev 0)
+++ gnunet-java/.idea/workspace.xml     2012-01-05 10:37:57 UTC (rev 18993)
@@ -0,0 +1,1138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" readonly="true" 
id="b4faf44d-8919-474e-bfab-5900bc40cc2b" name="Default" comment="">
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/copyright" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/dictionaries" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/inspectionProfiles" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/libraries" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/scopes" 
/>
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/.name" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/ant.xml" 
/>
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/codeStyleSettings.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/compiler.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/copyright/profiles_settings.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/dictionaries/dold.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/encodings.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/libraries/junit_4_10.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/libraries/lib.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/misc.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/modules.xml" />
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/scopes/scope_settings.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" 
/>
+      <change type="NEW" beforePath="" 
afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/ISSUES" 
afterPath="$PROJECT_DIR$/ISSUES" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/construct/MessageIdAnnotationProcessor.java"
 
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/MessageIdAnnotationProcessor.java"
 />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/exceptions/InternalLogicError.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/exceptions/InternalLogicError.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/service/NSE_UpdateMessage.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/service/NSE_UpdateMessage.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimationService.java"
 
afterPath="$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimationService.java"
 />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTime.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTime.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/util/Client.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/util/Client.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/util/Configuration.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/util/Configuration.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/util/IOContinuation.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/util/IOContinuation.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/util/RelativeTime.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/util/RelativeTime.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/util/RunaboutMessageReceiver.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/util/RunaboutMessageReceiver.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/src/org/gnunet/util/Scheduler.java" 
afterPath="$PROJECT_DIR$/src/org/gnunet/util/Scheduler.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/test/org/gnunet/services/ConfigUtil.java" 
afterPath="$PROJECT_DIR$/test/org/gnunet/services/ConfigUtil.java" />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java"
 
afterPath="$PROJECT_DIR$/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java"
 />
+      <change type="MODIFICATION" 
beforePath="$PROJECT_DIR$/test/org/gnunet/services/StatisticsServiceTest.java" 
afterPath="$PROJECT_DIR$/test/org/gnunet/services/StatisticsServiceTest.java" />
+    </list>
+    <ignored path="gnunet-java.iws" />
+    <ignored path=".idea/workspace.xml" />
+    <option name="TRACKING_ENABLED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="ChangesViewManager" flattened_view="true" 
show_ignored="false" />
+  <component name="CreatePatchCommitExecutor">
+    <option name="PATCH_PATH" value="" />
+  </component>
+  <component name="DaemonCodeAnalyzer">
+    <disable_hints />
+  </component>
+  <component name="DebuggerManager">
+    <breakpoint_any>
+      <breakpoint>
+        <option name="NOTIFY_CAUGHT" value="true" />
+        <option name="NOTIFY_UNCAUGHT" value="true" />
+        <option name="ENABLED" value="false" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+      <breakpoint>
+        <option name="NOTIFY_CAUGHT" value="true" />
+        <option name="NOTIFY_UNCAUGHT" value="true" />
+        <option name="ENABLED" value="false" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+    </breakpoint_any>
+    <breakpoint_rules />
+    <ui_properties />
+  </component>
+  <component name="FavoritesManager">
+    <favorites_list name="gnunet-java" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf>
+      <file leaf-file-name="Runabout.java" pinned="false" current="false" 
current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/org/grothoff/Runabout.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="187" column="12" selection-start="7347" 
selection-end="7347" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ConfigUtil.java" pinned="false" current="false" 
current-in-tab="false">
+        <entry 
file="file://$PROJECT_DIR$/test/org/gnunet/services/ConfigUtil.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="5" column="0" selection-start="70" selection-end="70" 
vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="IOContinuation.java" pinned="false" 
current="false" current-in-tab="false">
+        <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/util/IOContinuation.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="23" column="0" selection-start="845" 
selection-end="845" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="RunaboutMessageReceiver.java" pinned="false" 
current="false" current-in-tab="false">
+        <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/util/RunaboutMessageReceiver.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="4" column="0" selection-start="93" selection-end="93" 
vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Configuration.java" pinned="false" current="false" 
current-in-tab="false">
+        <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/util/Configuration.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="272" column="12" selection-start="8767" 
selection-end="8767" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="IntegerParser.java" pinned="false" current="false" 
current-in-tab="false">
+        <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/construct/parsers/IntegerParser.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="68" column="12" selection-start="1877" 
selection-end="1877" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ISSUES" pinned="false" current="true" 
current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/ISSUES">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="128" column="0" selection-start="4143" 
selection-end="4143" vertical-scroll-proportion="0.673774">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="InternalLogicError.java" pinned="false" 
current="false" current-in-tab="false">
+        <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/exceptions/InternalLogicError.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="11" column="41" selection-start="288" 
selection-end="288" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Scheduler.java" pinned="false" current="false" 
current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Scheduler.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="91" column="16" selection-start="2974" 
selection-end="2974" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="AbsoluteTime.java" pinned="false" current="false" 
current-in-tab="false">
+        <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTime.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="103" column="28" selection-start="3270" 
selection-end="3270" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="FindManager">
+    <FindUsagesManager>
+      <setting name="OPEN_NEW_TAB" value="false" />
+    </FindUsagesManager>
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="changedFiles">
+      <list>
+        <option 
value="$PROJECT_DIR$/src/org/gnunet/util/RelativeTimeMessage.java" />
+        <option 
value="$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTimeMessage.java" />
+        <option value="$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTime.java" />
+        <option value="$PROJECT_DIR$/src/org/gnunet/util/RelativeTime.java" />
+        <option 
value="$PROJECT_DIR$/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java"
 />
+        <option 
value="$PROJECT_DIR$/test/org/gnunet/services/StatisticsServiceTest.java" />
+        <option 
value="$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimationService.java" 
/>
+        <option value="$PROJECT_DIR$/src/org/gnunet/util/Client.java" />
+        <option 
value="$PROJECT_DIR$/src/org/gnunet/construct/MessageIdAnnotationProcessor.java"
 />
+        <option value="$PROJECT_DIR$/src/org/gnunet/util/Scheduler.java" />
+        <option value="$PROJECT_DIR$/test/org/gnunet/services/ConfigUtil.java" 
/>
+        <option value="$PROJECT_DIR$/src/org/gnunet/util/IOContinuation.java" 
/>
+        <option 
value="$PROJECT_DIR$/src/org/gnunet/util/RunaboutMessageReceiver.java" />
+        <option value="$PROJECT_DIR$/src/org/gnunet/util/Configuration.java" />
+        <option 
value="$PROJECT_DIR$/src/org/gnunet/exceptions/InternalLogicError.java" />
+        <option value="$PROJECT_DIR$/ISSUES" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectFrameBounds">
+    <option name="x" value="-6" />
+    <option name="y" value="17" />
+    <option name="width" value="1452" />
+    <option name="height" value="889" />
+  </component>
+  <component name="ProjectInspectionProfilesVisibleTreeState">
+    <entry key="Project Default">
+      <profile-state>
+        <expanded-state>
+          <State>
+            <id />
+          </State>
+          <State>
+            <id>Abstraction issues</id>
+          </State>
+          <State>
+            <id>Assignment issues</id>
+          </State>
+          <State>
+            <id>Assignment issuesGroovy</id>
+          </State>
+          <State>
+            <id>Class structure</id>
+          </State>
+          <State>
+            <id>Code maturity issues</id>
+          </State>
+          <State>
+            <id>Code style issues</id>
+          </State>
+          <State>
+            <id>Concurrency annotation issues</id>
+          </State>
+          <State>
+            <id>Control flow issues</id>
+          </State>
+          <State>
+            <id>Data flow issues</id>
+          </State>
+          <State>
+            <id>Declaration redundancy</id>
+          </State>
+          <State>
+            <id>Error handling</id>
+          </State>
+          <State>
+            <id>Error handlingGroovy</id>
+          </State>
+          <State>
+            <id>General</id>
+          </State>
+          <State>
+            <id>Groovy</id>
+          </State>
+          <State>
+            <id>IDEA Platform Inspections</id>
+          </State>
+          <State>
+            <id>Inheritance issues</id>
+          </State>
+          <State>
+            <id>Initialization issues</id>
+          </State>
+          <State>
+            <id>Internationalization issues</id>
+          </State>
+          <State>
+            <id>J2ME issues</id>
+          </State>
+          <State>
+            <id>JUnit issues</id>
+          </State>
+          <State>
+            <id>Java language level issues</id>
+          </State>
+          <State>
+            <id>Java language level migration aids</id>
+          </State>
+          <State>
+            <id>Javadoc issues</id>
+          </State>
+          <State>
+            <id>Method MetricsGroovy</id>
+          </State>
+          <State>
+            <id>Method metrics</id>
+          </State>
+          <State>
+            <id>Naming ConventionsGroovy</id>
+          </State>
+          <State>
+            <id>Naming conventions</id>
+          </State>
+          <State>
+            <id>Performance issues</id>
+          </State>
+          <State>
+            <id>Probable bugs</id>
+          </State>
+          <State>
+            <id>Properties Files</id>
+          </State>
+          <State>
+            <id>RELAX NG</id>
+          </State>
+          <State>
+            <id>Serialization issues</id>
+          </State>
+          <State>
+            <id>Threading issues</id>
+          </State>
+          <State>
+            <id>Threading issuesGroovy</id>
+          </State>
+          <State>
+            <id>Verbose or redundant code constructs</id>
+          </State>
+          <State>
+            <id>Visibility issues</id>
+          </State>
+        </expanded-state>
+        <selected-state>
+          <State>
+            <id>JUnit issues</id>
+          </State>
+        </selected-state>
+      </profile-state>
+    </entry>
+  </component>
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
+    <OptionsSetting value="true" id="Add" />
+    <OptionsSetting value="true" id="Remove" />
+    <OptionsSetting value="true" id="Checkout" />
+    <OptionsSetting value="true" id="Update" />
+    <OptionsSetting value="true" id="Status" />
+    <OptionsSetting value="true" id="Edit" />
+    <ConfirmationsSetting value="2" id="Add" />
+    <ConfirmationsSetting value="0" id="Remove" />
+  </component>
+  <component name="ProjectReloadState">
+    <option name="STATE" value="0" />
+  </component>
+  <component name="ProjectView">
+    <navigator currentView="ProjectPane" proportions="" version="1" 
splitterProportion="0.5">
+      <flattenPackages />
+      <showMembers />
+      <showModules />
+      <showLibraryContents />
+      <hideEmptyPackages />
+      <abbreviatePackageNames />
+      <autoscrollToSource />
+      <autoscrollFromSource />
+      <sortByType />
+    </navigator>
+    <panes>
+      <pane id="Scope">
+        <subPane subId="Project Files">
+          <PATH>
+            <PATH_ELEMENT USER_OBJECT="Root">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="gnunet-java">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT USER_OBJECT="Root">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="gnunet-java">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="src">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="org">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT USER_OBJECT="Root">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="gnunet-java">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="src">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="org">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="gnunet">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT USER_OBJECT="Root">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="gnunet-java">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="src">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="org">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="gnunet">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT USER_OBJECT="construct">
+              <option name="myItemId" value="" />
+              <option name="myItemType" value="" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+      <pane id="ProjectPane">
+        <subPane>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="test" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="org" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="org" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="util" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="org" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="service" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="org" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+      <pane id="PackagesPane">
+        <subPane>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="gnunet-java" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="org" />
+              <option name="myItemType" 
value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="GenerateAntBuildDialog.generateIdeaHomeProperty" 
value="false" />
+    <property name="GoToFile.includeJavaFiles" value="false" />
+    <property name="project.structure.last.edited" value="Modules" />
+    <property name="OverrideImplement.combined" value="true" />
+    <property name="project.structure.proportion" value="0.15" />
+    <property name="options.splitter.main.proportions" value="0.3" />
+    <property name="GenerateAntBuildDialog.generateSingleFile" value="true" />
+    <property name="recentsLimit" value="5" />
+    <property name="MemberChooser.sorted" value="false" />
+    <property name="options.lastSelected" value="preferences.sourceCode.Java" 
/>
+    <property name="GenerateAntBuildDialog.inclineRuntiemClasspath" 
value="true" />
+    <property name="GenerateAntBuildDialog.forceTargetJdk" value="false" />
+    <property name="project.structure.side.proportion" value="0.2" />
+    <property name="MemberChooser.copyJavadoc" value="false" />
+    <property name="GenerateAntBuildDialog.outputFileNameProperty" 
value="gnunet-java" />
+    <property name="GenerateAntBuildDialog.enableUiFormCompile" value="false" 
/>
+    <property name="GoToClass.toSaveIncludeLibraries" value="false" />
+    <property name="MemberChooser.showClasses" value="true" />
+    <property name="GoToClass.includeLibraries" value="false" />
+    <property name="GenerateAntBuildDialog.backupFiles" value="false" />
+    <property name="options.searchVisible" value="true" />
+    <property name="options.splitter.details.proportions" value="0.2" />
+    <property name="dynamic.classpath" value="false" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/lib" />
+    </key>
+    <key name="IntroduceConstantDialog.RECENTS_KEY">
+      <recent name="org.gnunet.service.NSE_Start" />
+      <recent name="org.gnunet.service.NSE_Update" />
+    </key>
+    <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+      <recent name="org.gnunet.construct" />
+      <recent name="" />
+    </key>
+  </component>
+  <component name="RunManager" 
selected="JUnit.NetworkSizeEstimationServiceTest">
+    <configuration default="false" name="StatisticsServiceTest" type="JUnit" 
factoryName="JUnit" temporary="true">
+      <module name="gnunet-java" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="org.gnunet.services" />
+      <option name="MAIN_CLASS_NAME" 
value="org.gnunet.services.StatisticsServiceTest" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="moduleWithDependencies" />
+      </option>
+      <envs />
+      <patterns />
+      <RunnerSettings RunnerId="Run" />
+      <ConfigurationWrapper RunnerId="Run" />
+      <method />
+    </configuration>
+    <configuration default="false" name="NetworkSizeEstimationServiceTest" 
type="JUnit" factoryName="JUnit" temporary="true">
+      <module name="gnunet-java" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="org.gnunet.services" />
+      <option name="MAIN_CLASS_NAME" 
value="org.gnunet.services.NetworkSizeEstimationServiceTest" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="moduleWithDependencies" />
+      </option>
+      <envs />
+      <patterns />
+      <RunnerSettings RunnerId="Debug">
+        <option name="DEBUG_PORT" value="" />
+        <option name="TRANSPORT" value="0" />
+        <option name="LOCAL" value="true" />
+      </RunnerSettings>
+      <RunnerSettings RunnerId="Run" />
+      <ConfigurationWrapper RunnerId="Debug" />
+      <ConfigurationWrapper RunnerId="Run" />
+      <method />
+    </configuration>
+    <configuration default="false" name="ConstructTest" type="JUnit" 
factoryName="JUnit" temporary="true">
+      <module name="gnunet-java" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="org.gnunet.construct" />
+      <option name="MAIN_CLASS_NAME" 
value="org.gnunet.construct.ConstructTest" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="moduleWithDependencies" />
+      </option>
+      <envs />
+      <patterns />
+      <RunnerSettings RunnerId="Run" />
+      <ConfigurationWrapper RunnerId="Run" />
+      <method />
+    </configuration>
+    <configuration default="true" type="Remote" factoryName="Remote">
+      <option name="USE_SOCKET_TRANSPORT" value="true" />
+      <option name="SERVER_MODE" value="false" />
+      <option name="SHMEM_ADDRESS" value="javadebug" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="5005" />
+      <method>
+        <option name="AntTarget" enabled="false" />
+        <option name="BuildArtifacts" enabled="false" />
+        <option name="Maven.BeforeRunTask" enabled="false" />
+      </method>
+    </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" 
value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <option name="VM_PARAMETERS" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <method>
+        <option name="AntTarget" enabled="false" />
+        <option name="BuildArtifacts" enabled="false" />
+        <option name="Make" enabled="true" />
+        <option name="Maven.BeforeRunTask" enabled="false" />
+      </method>
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application">
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method>
+        <option name="AntTarget" enabled="false" />
+        <option name="BuildArtifacts" enabled="false" />
+        <option name="Make" enabled="true" />
+        <option name="Maven.BeforeRunTask" enabled="false" />
+      </method>
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit">
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="moduleWithDependencies" />
+      </option>
+      <envs />
+      <patterns />
+      <method>
+        <option name="AntTarget" enabled="false" />
+        <option name="BuildArtifacts" enabled="false" />
+        <option name="Make" enabled="true" />
+        <option name="Maven.BeforeRunTask" enabled="false" />
+      </method>
+    </configuration>
+    <list size="3">
+      <item index="0" class="java.lang.String" 
itemvalue="JUnit.StatisticsServiceTest" />
+      <item index="1" class="java.lang.String" 
itemvalue="JUnit.NetworkSizeEstimationServiceTest" />
+      <item index="2" class="java.lang.String" itemvalue="JUnit.ConstructTest" 
/>
+    </list>
+    <configuration name="&lt;template&gt;" type="WebApp" default="true" 
selected="false">
+      <Host>localhost</Host>
+      <Port>5050</Port>
+    </configuration>
+  </component>
+  <component name="ShelveChangesManager" show_recycled="false" />
+  <component name="SvnConfiguration" maxAnnotateRevisions="500">
+    <option name="USER" value="" />
+    <option name="PASSWORD" value="" />
+    <option name="mySSHConnectionTimeout" value="30000" />
+    <option name="mySSHReadTimeout" value="30000" />
+    <option name="LAST_MERGED_REVISION" />
+    <option name="MERGE_DRY_RUN" value="false" />
+    <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
+    <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
+    <option name="IGNORE_SPACES_IN_MERGE" value="false" />
+    <option name="DETECT_NESTED_COPIES" value="true" />
+    <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
+    <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
+    <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
+    <option name="FORCE_UPDATE" value="false" />
+    <configuration 
useDefault="false">$USER_HOME$/.subversion_IDEA</configuration>
+    <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
+    <supportedVersion>125</supportedVersion>
+  </component>
+  <component name="SvnFileUrlMappingImpl">
+    <option name="myMappingRoots">
+      <list>
+        <SvnCopyRootSimple>
+          <option name="myVcsRoot" value="$PROJECT_DIR$" />
+          <option name="myCopyRoot" value="$PROJECT_DIR$" />
+        </SvnCopyRootSimple>
+      </list>
+    </option>
+    <option name="myMoreRealMappingRoots">
+      <list>
+        <SvnCopyRootSimple>
+          <option name="myVcsRoot" value="$PROJECT_DIR$" />
+          <option name="myCopyRoot" value="$PROJECT_DIR$" />
+        </SvnCopyRootSimple>
+      </list>
+    </option>
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-6" y="17" width="1452" height="889" extended-state="0" />
+    <editor active="true" />
+    <layout>
+      <window_info id="Changes" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.24166666" sideWeight="0.6710875" order="1" side_tool="false" 
content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.48763737" 
sideWeight="0.49426112" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" 
sideWeight="0.63708514" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.45054945" sideWeight="0.35786435" order="7" side_tool="true" 
content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.37225273" sideWeight="0.49713057" order="7" side_tool="false" 
content_ui="tabs" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" 
sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Structure" active="false" anchor="left" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.25613275" sideWeight="0.58928573" order="1" side_tool="false" 
content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3181818" 
sideWeight="0.6978022" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Inspection" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" 
weight="0.3021978" sideWeight="0.5" order="5" side_tool="false" 
content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.29395604" 
sideWeight="0.9126984" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Documentation" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="FLOATING" visible="true" 
weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" 
x="88" y="109" width="1260" height="692" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" 
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" 
sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Message" active="false" anchor="bottom" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Commander" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" 
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" 
weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+    </layout>
+  </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
+  <component name="VcsManagerConfiguration">
+    <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" 
value="true" />
+    <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
+    <option name="CHECK_NEW_TODO" value="false" />
+    <option name="myTodoPanelSettings">
+      <value>
+        <are-packages-shown value="false" />
+        <are-modules-shown value="false" />
+        <flatten-packages value="false" />
+        <is-autoscroll-to-source value="false" />
+      </value>
+    </option>
+    <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
+    <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
+    <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" 
/>
+    <option name="ENABLE_BACKGROUND_PROCESSES" value="false" />
+    <option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
+    <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
+    <option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
+    <option name="DEFAULT_PATCH_EXTENSION" value="patch" />
+    <option name="SHORT_DIFF_HORISONTALLY" value="true" />
+    <option name="SHORT_DIFF_EXTRA_LINES" value="2" />
+    <option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
+    <option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
+    <option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
+    <option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
+    <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
+    <option name="LAST_COMMIT_MESSAGE" value="added MsgMap update shell 
script" />
+    <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
+    <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
+    <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
+    <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
+    <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
+    <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" 
value="0.8" />
+    <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
+    <option name="ACTIVE_VCS_NAME" />
+    <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
+    <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
+    <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
+    <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
+    <MESSAGE value="NSE client almost working" />
+    <MESSAGE value="added MsgMap update shell script" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager />
+  </component>
+  <component name="antWorkspaceConfiguration">
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+    <option name="FILTER_TARGETS" value="false" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimationService.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="15" column="9" selection-start="317" selection-end="317" 
vertical-scroll-proportion="0.0">
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#614#630#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/construct/MessageIdAnnotationProcessor.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="72" column="28" selection-start="3062" 
selection-end="3062" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/construct/MessageLoader.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="50" column="17" selection-start="1585" 
selection-end="1585" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/log4j.properties">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="1" column="0" selection-start="62" selection-end="62" 
vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/util/datastructures/BloomFilter.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="42" column="13" selection-start="1649" 
selection-end="1649" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Client.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="373" column="40" selection-start="13033" 
selection-end="13033" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Scheduler.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="91" column="16" selection-start="2974" 
selection-end="2974" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTime.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="103" column="28" selection-start="3270" 
selection-end="3270" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/org/grothoff/Runabout.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="187" column="12" selection-start="7347" 
selection-end="7347" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry 
file="file://$PROJECT_DIR$/test/org/gnunet/services/ConfigUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="5" column="0" selection-start="70" selection-end="70" 
vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/IOContinuation.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="23" column="0" selection-start="845" selection-end="845" 
vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/util/RunaboutMessageReceiver.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="4" column="0" selection-start="93" selection-end="93" 
vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/exceptions/InternalLogicError.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="11" column="41" selection-start="288" selection-end="288" 
vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Configuration.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="272" column="12" selection-start="8767" 
selection-end="8767" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry 
file="file://$PROJECT_DIR$/src/org/gnunet/construct/parsers/IntegerParser.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="68" column="12" selection-start="1877" 
selection-end="1877" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/ISSUES">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="128" column="0" selection-start="4143" 
selection-end="4143" vertical-scroll-proportion="0.673774">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+  </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <last-edited>junit4</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <last-edited>1.6</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <last-edited>gnunet-java</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+                <option value="0.5" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectJDKs.UI">
+        <settings>
+          <last-edited>1.6</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.20000002" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <last-edited>lib</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+    </states>
+  </component>
+</project>
+

Modified: gnunet-java/ISSUES
===================================================================
--- gnunet-java/ISSUES  2012-01-05 07:58:02 UTC (rev 18992)
+++ gnunet-java/ISSUES  2012-01-05 10:37:57 UTC (rev 18993)
@@ -120,12 +120,14 @@
 
  * support for minimum message size in construct?
 
+* what about invalidating handles (e.g. TransmitHandle) after completion of 
the request?
 
 
  * buffering scheme / when is "enough space" in a buffer?
   * where to put messages in a buffer? at the beginning? at (capacity - size)?
 
 
- * what about unifying the many types of callbacks?
- * what about async versions of some api calls? (e.g. for usage in a repl)
-* generic support for subscriptions
\ No newline at end of file
+
+* setAccessible in the runabout?
+
+* what about autoRetry in the middle of sending a message?
\ No newline at end of file

Modified: gnunet-java/src/org/gnunet/construct/MessageIdAnnotationProcessor.java
===================================================================
--- gnunet-java/src/org/gnunet/construct/MessageIdAnnotationProcessor.java      
2012-01-05 07:58:02 UTC (rev 18992)
+++ gnunet-java/src/org/gnunet/construct/MessageIdAnnotationProcessor.java      
2012-01-05 10:37:57 UTC (rev 18993)
@@ -19,7 +19,8 @@
 
 
 /**
- * Creates a resource file 'MsgMap.txt' in the package messages.
+ * Creates a resource file 'MsgMap.txt' in the package 'org.gnunet.construct'.
+ * Restriction: The MessageId annotation currently does not work with inner 
classes
  */
 @SupportedAnnotationTypes({"org.gnunet.construct.MessageId"})
 @SupportedSourceVersion(SourceVersion.RELEASE_6)
@@ -62,7 +63,7 @@
             for (Element e : 
roundEnvironment.getElementsAnnotatedWith(MessageId.class)) {
                 Annotation ann = e.getAnnotation(MessageId.class);
                 if (ann != null) {
-                    int id = ((MessageId) 
e.getAnnotation(MessageId.class)).value();
+                    int id = e.getAnnotation(MessageId.class).value();
                     String fqn = e.asType().toString();
                     if (msgmap.containsKey(id)) {
                         
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR,

Modified: gnunet-java/src/org/gnunet/exceptions/InternalLogicError.java
===================================================================
--- gnunet-java/src/org/gnunet/exceptions/InternalLogicError.java       
2012-01-05 07:58:02 UTC (rev 18992)
+++ gnunet-java/src/org/gnunet/exceptions/InternalLogicError.java       
2012-01-05 10:37:57 UTC (rev 18993)
@@ -8,7 +8,7 @@
  * 
  */
 @SuppressWarnings("serial")
-public class InternalLogicError extends Error {
+public class InternalLogicError extends RuntimeException {
     public InternalLogicError(String s) {
         super(s);
     }

Modified: gnunet-java/src/org/gnunet/service/NSE_UpdateMessage.java
===================================================================
--- gnunet-java/src/org/gnunet/service/NSE_UpdateMessage.java   2012-01-05 
07:58:02 UTC (rev 18992)
+++ gnunet-java/src/org/gnunet/service/NSE_UpdateMessage.java   2012-01-05 
10:37:57 UTC (rev 18993)
@@ -1,7 +1,7 @@
 package org.gnunet.service;
 
+import org.gnunet.construct.Double;
 import org.gnunet.construct.*;
-import org.gnunet.construct.Double;
 import org.gnunet.util.AbsoluteTimeMessage;
 
 @SuppressWarnings("InstanceVariableMayNotBeInitialized")

Modified: gnunet-java/src/org/gnunet/service/NetworkSizeEstimationService.java
===================================================================
--- gnunet-java/src/org/gnunet/service/NetworkSizeEstimationService.java        
2012-01-05 07:58:02 UTC (rev 18992)
+++ gnunet-java/src/org/gnunet/service/NetworkSizeEstimationService.java        
2012-01-05 10:37:57 UTC (rev 18993)
@@ -8,19 +8,25 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Collection;
 import java.util.HashSet;
-import java.util.Set;
 
 
+/**
+ * An API for the network size estimation service.
+ *
+ * @author Florian Dold
+ */
 public class NetworkSizeEstimationService {
-
-
     private static final Logger logger = LoggerFactory
             .getLogger(NetworkSizeEstimationService.class);
 
-    Set<NSE_Subscriber> subscribers = new HashSet<NSE_Subscriber>();
-    
-    class NSE_Receiver implements MessageReceiver {
+    private Collection<NSE_Subscriber> subscribers = new 
HashSet<NSE_Subscriber>(1);
+    private boolean disconnected = false;
+
+    private Client client;
+
+    private class NSE_Receiver implements MessageReceiver {
         @Override
         public void process(Message msg) {
             if (!(msg instanceof NSE_UpdateMessage)) {
@@ -28,9 +34,14 @@
             }
             NSE_UpdateMessage uMsg = (NSE_UpdateMessage) msg;
             System.out.println("got message back!");
+
             for (NSE_Subscriber s : subscribers) {
                 s.update(null, uMsg.sizeEstimate, uMsg.stdDeviation);
             }
+
+            if (!disconnected) {
+                client.receive(this, RelativeTime.FOREVER);
+            }
         }
 
         @Override
@@ -39,9 +50,9 @@
             throw new RuntimeException("unreachable");
         }
     }
-    
-    class NSE_Transmitter implements MessageTransmitter {
 
+    private class NSE_Transmitter implements MessageTransmitter {
+
         @Override
         public void transmit(Client.MessageSink sink) {
             logger.debug("ready to transmit");
@@ -50,43 +61,73 @@
             m.header.messageType = NSE_StartMessage.MSG_ID;
             m.header.messageSize = MessageHeader.SIZE;
             sink.send(m);
-
-
             client.receive(new NSE_Receiver(), RelativeTime.FOREVER);
         }
 
         @Override
         public void handleTimeout() {
             // can't happen
-            throw new RuntimeException("unreachable");
+            throw new AssertionError("unreachable");
         }
     }
 
+
+    /**
+     * A handle for a subscription to the network size estimation service, may 
be used to cancel the
+     * subscription.
+     */
     public class NSE_Subscription {
         private NSE_Subscriber sub;
+
         private NSE_Subscription(NSE_Subscriber sub) {
             this.sub = sub;
         }
+
+        /**
+         * Cancel the subscription.
+         */
         public void cancel() {
             subscribers.remove(sub);
         }
     }
 
+    /**
+     * A NSE_Subscriber receives updates from the service.
+     */
     public interface NSE_Subscriber {
+
+
         public void update(AbsoluteTime timestamp, double estimate, double 
deviation);
-
     }
 
+
+    /**
+     * Subscribe for updates from the service.
+     *
+     * @param s callback for updates
+     * @return a subscription handle that may be used to cancel the 
subscription
+     */
     public NSE_Subscription subscribe(NSE_Subscriber s) {
         subscribers.add(s);
         return new NSE_Subscription(s);
     }
 
-    Client client;
-    
+
+    /**
+     * Create a connection to the network size estimation service.
+     *
+     * @param cfg the configuration to use for connecting with the service
+     */
     public NetworkSizeEstimationService(Configuration cfg) {
-        logger.debug("hi");
         client = new Client("nse", cfg);
         client.notifyTransmitReady(MessageHeader.SIZE, RelativeTime.FOREVER, 
true, new NSE_Transmitter());
     }
+
+    /**
+     * Cancel all subscriptions and disconnect from the service.
+     */
+    public void disconnect() {
+        disconnected = true;
+        client.disconnect();
+    }
 }

Modified: gnunet-java/src/org/gnunet/util/AbsoluteTime.java
===================================================================
--- gnunet-java/src/org/gnunet/util/AbsoluteTime.java   2012-01-05 07:58:02 UTC 
(rev 18992)
+++ gnunet-java/src/org/gnunet/util/AbsoluteTime.java   2012-01-05 10:37:57 UTC 
(rev 18993)
@@ -193,4 +193,12 @@
         }
         return new AbsoluteTime(abs_value - duration.getMilliseconds());
     }
+
+    AbsoluteTimeMessage toNetwork() {
+        return null;
+    }
+
+    static AbsoluteTime fromNetwork(AbsoluteTimeMessage m) {
+        return null;
+    }
 }

Modified: gnunet-java/src/org/gnunet/util/Client.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Client.java 2012-01-05 07:58:02 UTC (rev 
18992)
+++ gnunet-java/src/org/gnunet/util/Client.java 2012-01-05 10:37:57 UTC (rev 
18993)
@@ -34,6 +34,7 @@
 import java.net.ConnectException;
 import java.net.InetSocketAddress;
 import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
 import java.nio.channels.SocketChannel;
 import java.nio.channels.spi.SelectorProvider;
 
@@ -45,12 +46,10 @@
     private static final Logger logger = LoggerFactory
             .getLogger(Client.class);
 
-
-
     private static final int INITIAL_BUFFER_SIZE = 128;
 
     private SocketChannel chan;
-    private boolean recvActive = false;
+    private ReceiveHelper currentReceive = null;
     private ByteBuffer recvBuffer = ByteBuffer.allocate(INITIAL_BUFFER_SIZE);
 
 
@@ -58,16 +57,20 @@
     private Scheduler.TaskIdentifier nextTransmitTimeout = null;
     private ByteBuffer transmitBuffer = 
ByteBuffer.allocate(INITIAL_BUFFER_SIZE);
 
-    private MessageTransmitter nextTransmitter;
-    private boolean connected;
+    private MessageTransmitter nextTransmitter = null;
+    private boolean connected = false;
+    private String serviceName;
+    private Configuration cfg;
 
-    public class TransmitHandle {
+
+    /**
+     * Represents a request for transmission.
+     */
+    public interface TransmitHandle {
         /**
          * Cancel a request for notification.
          */
-        void cancel() {
-            throw new UnsupportedOperationException();
-        }
+        public void cancel();
     }
 
     public interface MessageSink {
@@ -80,15 +83,16 @@
         private MessageReceiver receiver;
         private RelativeTime timeout;
         private boolean headerProcessed = false;
-        private MessageHeader msgh;
+        private MessageHeader msgh = null;
+        private Scheduler.TaskIdentifier recvTask = null;
 
         public ReceiveHelper(MessageReceiver receiver, RelativeTime timeout) {
             this.receiver = receiver;
             this.timeout = timeout;
-            recvActive = true;
         }
 
         public void dispatchMessage() {
+            assert msgh != null;
             receiver.process(MessageLoader.loadMessage(msgh.messageType, 
recvBuffer.array(), 0));
         }
 
@@ -106,7 +110,7 @@
                 }
                 if (recvBuffer.remaining() == 0) {
                     if (headerProcessed) {
-                        recvActive = false;
+                        currentReceive = null;
                         dispatchMessage();
                     } else {
                         msgh = Construct.parseAs(recvBuffer.array(), 0, 
MessageHeader.class);
@@ -115,7 +119,7 @@
                             recvBuffer.limit(msgh.messageSize);
                             schedule();
                         } else {
-                            recvActive = false;
+                            currentReceive = null;
                             dispatchMessage();
                         }
                     }
@@ -129,32 +133,38 @@
         }
 
         public void schedule() {
-            logger.debug("schedulin receive");
-            Scheduler.addRead(timeout, chan, this);
+            recvTask = Scheduler.addRead(timeout, chan, this);
         }
 
-
+        public void cancel() {
+            if (recvTask != null) {
+                recvTask.cancel();
+            }
+        }
     }
 
     private class TransmitHelper implements Task, MessageSink {
         private MessageTransmitter transmitter;
+        private Scheduler.TaskIdentifier transmitTask = null;
 
         public TransmitHelper(MessageTransmitter transmitter) {
             this.transmitter = transmitter;
         }
+        
+        public void cancel() {
+            if (transmitTask != null) {
+                transmitTask.cancel();
+            }
+        }
 
         @Override
         public void run(Context ctx) {
             try {
-                logger.debug("transmitting over chan " + 
transmitBuffer.position());
-                logger.debug("limit is" + transmitBuffer.limit());
                 chan.write(transmitBuffer);
-
             } catch (IOException e) {
                 throw new IOError(e);
             }
             if (transmitBuffer.remaining() == 0) {
-                logger.debug("done transmitting " + transmitBuffer.position());
                 if (nextTransmitter == null) {
                     currentTransmit = null;
                 } else {
@@ -170,13 +180,12 @@
 
 
         public void schedule() {
-            Scheduler.addWrite(RelativeTime.FOREVER, chan, this);
+            transmitTask = Scheduler.addWrite(RelativeTime.FOREVER, chan, 
this);
         }
 
         @Override
         public int getRemaining() {
-            logger.debug("remaining not implemented");
-            return 0;
+            throw new UnsupportedOperationException("not yet implemented");
         }
 
         @Override
@@ -188,13 +197,13 @@
         }
     }
 
-    public class ConnectHelper implements Task {
+    private class ConnectHelper implements Task {
         @Override
         public void run(Context ctx) {
-            tryConnect();
+            finishConnect();
         }
 
-        public void tryConnect() {
+        public void finishConnect() {
             try {
                 if (chan.finishConnect()) {
                     logger.debug("finished connect");
@@ -202,7 +211,7 @@
                     if (currentTransmit == null && nextTransmitter != null) {
                         MessageTransmitter t = nextTransmitter;
                         nextTransmitter = null;
-                        startTransmit(nextTransmitter);
+                        startTransmit(t);
                     }
                 } else {
                     logger.debug("still not finished");
@@ -211,6 +220,8 @@
             } catch (ConnectException e) {
                 logger.debug("got connect exception");
                 Scheduler.addDelayed(new RelativeTime(5), this);
+            } catch (ClosedChannelException e) {
+                do_connect();
             } catch (IOException e) {
                 throw new IOError(e);
             }
@@ -226,7 +237,13 @@
      * @param cfg         configuration to use
      */
     public Client(String serviceName, Configuration cfg) {
-        // XXX: catch exn
+        this.serviceName = serviceName;
+        this.cfg = cfg;
+
+        do_connect();
+    }
+
+    private void do_connect() {
         int port = (int) cfg.getValueNumer(serviceName, "PORT");
         if (port > 0xFFFF || port <= 0) {
             throw new ConfigurationException(String.format("'%s' is not a 
valid Port", port));
@@ -246,13 +263,14 @@
             throw new IOError(e);
         }
         ConnectHelper ct = new ConnectHelper();
-        ct.tryConnect();
+        ct.finishConnect();
     }
 
     /**
      * Call the specified Task after connecting to the service successfully.
      * <p/>
      * XXX: the name is very undescriptive
+     * XXX: can multiple service tests be active at the same time?
      *
      * @param service_name name of the service to wait for
      * @param cfg          configuration to use
@@ -274,17 +292,16 @@
      * @param timeout  timeout after which MessageReceiver.timeout will be 
called
      */
     public void receive(MessageReceiver receiver, RelativeTime timeout) {
-        if (recvActive) {
+        if (currentReceive != null) {
             throw new InterfaceViolationException("receive must not be called 
while receiving");
         }
-        logger.debug("receive requested");
         recvBuffer.clear();
         recvBuffer.limit(MessageHeader.SIZE);
-        ReceiveHelper rh = new ReceiveHelper(receiver, timeout);
-        rh.schedule();
+        currentReceive = new ReceiveHelper(receiver, timeout);
+        currentReceive.schedule();
     }
     
-    public class TransmitTimeoutHelper implements Task {
+    private class TransmitTimeoutHelper implements Task {
 
         private MessageTransmitter transmitter;
         private int size;
@@ -302,7 +319,6 @@
 
     
     private void startTransmit(MessageTransmitter transmitter) {
-        // we can just begin transmitting
         TransmitHelper transmitHelper = new TransmitHelper(transmitter);
         transmitBuffer.clear();
         transmitter.transmit(transmitHelper);
@@ -312,36 +328,81 @@
     }
 
 
+    /**
+     * Ask the client to call us once the last transmission has completed.
+     *
+     * @param size number of bytes to send
+     * @param timeout after how long should we give up (and call
+     *        notify with buf NULL and size 0)?
+     * @param autoRetry if the connection to the service dies, should we
+     *        automatically re-connect and retry (within the timeout period)
+     *        or should we immediately fail in this case?  Pass GNUNET_YES
+     *        if the caller does not care about temporary connection errors,
+     *        for example because the protocol is stateless
+     * @param transmitter ...
+     * @return a handle that can be used to cancel the transmit request
+     */
+
     public TransmitHandle notifyTransmitReady(int size, RelativeTime timeout,
-                                              boolean autoRetry, 
MessageTransmitter transmitter) {
+                                              boolean autoRetry, final 
MessageTransmitter transmitter) {
         if (nextTransmitter != null) {
             throw new InterfaceViolationException(
                     "previous transmit request must have completed before 
calling notifyTransmitReady again");
         }
         if (size > transmitBuffer.capacity()) {
-            throw new RuntimeException("buffer size too small");
+            transmitBuffer = ByteBuffer.allocate(size);
+            logger.debug("bigger transmitBuffer allocated");
         }
         if (currentTransmit == null && connected) {
             startTransmit(transmitter);
+            return new TransmitHandle() {
+                @Override
+                public void cancel() {
+                    // do nothing
+                    // xxx: should we throw an exception here?
+                }
+            };
         } else {
             if (!timeout.isForever()) {
                 TransmitTimeoutHelper h = new 
TransmitTimeoutHelper(transmitter, size);
                 nextTransmitTimeout = Scheduler.addDelayed(timeout, h);
             }
             nextTransmitter = transmitter;
+            return new TransmitHandle() {
+                @Override
+                public void cancel() {
+                    if (nextTransmitter == transmitter) {
+                        nextTransmitter = null;
+                    }
+                    if (nextTransmitTimeout != null) {
+                        nextTransmitTimeout.cancel();
+                    }
+                }
+            };
         }
-        return new TransmitHandle();
     }
 
-    public void shutdown() {
-        logger.warn("client shutdown not yet implemented");
+    /**
+     * Disconnect from the service. Cancel all pending recveive/transmit 
requests.
+     * todo: introduce finishPendingWrites parameter
+     */
+    public void disconnect() {
+        if (currentTransmit != null) {
+            currentTransmit.cancel();
+        }
+        if (currentReceive != null) {
+            currentReceive.cancel();
+        }
+        if (nextTransmitTimeout != null) {
+            nextTransmitTimeout.cancel();
+        }
     }
 
 
     @Override
     protected void finalize() throws Throwable {
         super.finalize();
-        shutdown();
+        disconnect();
     }
 
 }

Modified: gnunet-java/src/org/gnunet/util/Configuration.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Configuration.java  2012-01-05 07:58:02 UTC 
(rev 18992)
+++ gnunet-java/src/org/gnunet/util/Configuration.java  2012-01-05 10:37:57 UTC 
(rev 18993)
@@ -34,7 +34,7 @@
  */
 public class Configuration {
     @SuppressWarnings("serial")
-    public static class ParsingError extends Error {
+    public static class ParsingError extends RuntimeException {
         ParsingError(final String msg) {
             super(msg);
         }

Modified: gnunet-java/src/org/gnunet/util/IOContinuation.java
===================================================================
--- gnunet-java/src/org/gnunet/util/IOContinuation.java 2012-01-05 07:58:02 UTC 
(rev 18992)
+++ gnunet-java/src/org/gnunet/util/IOContinuation.java 2012-01-05 10:37:57 UTC 
(rev 18993)
@@ -22,13 +22,6 @@
 
 package org.gnunet.util;
 
-/**
- * Created by IntelliJ IDEA.
- * User: flodo
- * Date: 12/19/11
- * Time: 5:39 PM
- * To change this template use File | Settings | File Templates.
- */
 public interface IOContinuation {
     void handleSuccess();
     void handleTimeout();

Modified: gnunet-java/src/org/gnunet/util/RelativeTime.java
===================================================================
--- gnunet-java/src/org/gnunet/util/RelativeTime.java   2012-01-05 07:58:02 UTC 
(rev 18992)
+++ gnunet-java/src/org/gnunet/util/RelativeTime.java   2012-01-05 10:37:57 UTC 
(rev 18993)
@@ -164,7 +164,12 @@
     }
 
 
-    public RelativeTimeMessage toNBO() {
+    public boolean equals(Object o) {
+        return (o instanceof RelativeTime) && ((RelativeTime) o).rel_value == 
rel_value;
+    }
+
+
+    public RelativeTimeMessage toNetwork() {
         long rval = this.rel_value;
         assert rval >= 0;
         if (rval == FOREVER.rel_value) {
@@ -173,7 +178,8 @@
         return new RelativeTimeMessage(rval);
     }
 
-    public boolean equals(Object o) {
-        return (o instanceof RelativeTime) && ((RelativeTime) 
o).getMilliseconds() == getMilliseconds();
+    public static RelativeTime fromNetwork(RelativeTimeMessage m) {
+        return null;
     }
+
 }

Modified: gnunet-java/src/org/gnunet/util/RunaboutMessageReceiver.java
===================================================================
--- gnunet-java/src/org/gnunet/util/RunaboutMessageReceiver.java        
2012-01-05 07:58:02 UTC (rev 18992)
+++ gnunet-java/src/org/gnunet/util/RunaboutMessageReceiver.java        
2012-01-05 10:37:57 UTC (rev 18993)
@@ -3,13 +3,6 @@
 import org.gnunet.construct.Message;
 import org.grothoff.Runabout;
 
-/**
- * Created by IntelliJ IDEA.
- * User: flodo
- * Date: 12/19/11
- * Time: 3:08 PM
- * To change this template use File | Settings | File Templates.
- */
 public abstract class RunaboutMessageReceiver extends Runabout implements 
MessageReceiver  {
     public void process(Message msg) {
         this.visitAppropriate(msg);

Modified: gnunet-java/src/org/gnunet/util/Scheduler.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Scheduler.java      2012-01-05 07:58:02 UTC 
(rev 18992)
+++ gnunet-java/src/org/gnunet/util/Scheduler.java      2012-01-05 10:37:57 UTC 
(rev 18993)
@@ -61,18 +61,18 @@
     }
 
 
-    public static HashMap<SelectableChannel, SubscriberSet> subscriptions = 
new HashMap<SelectableChannel, SubscriberSet>();
+    private static HashMap<SelectableChannel, SubscriberSet> subscriptions = 
new HashMap<SelectableChannel, SubscriberSet>();
 
     static class SubscriberSet {
-        HashSet<TimeoutTask> readers = new HashSet<TimeoutTask>();
-        HashSet<TimeoutTask> writers = new HashSet<TimeoutTask>();
+        Set<TimeoutTask> readers = new HashSet<TimeoutTask>();
+        Set<TimeoutTask> writers = new HashSet<TimeoutTask>();
     }
 
     /**
      * A TaskIdentifier represents a Task that will execute or has already 
been executed.
      */
     public static class TaskIdentifier {
-        public final Task task;
+        private final Task task;
         private TaskIdentifier prereq;
         Task.Context ctx = new Task.Context();
         boolean liveness;
@@ -86,15 +86,20 @@
             this.prereq = prereq;
         }
 
-        public void cancel() {
-            pending.remove(this);
-        }
 
         void run() {
             active_task = this;
             task.run(ctx);
             active_task = null;
         }
+
+        public Task getTask() {
+            return task;
+        }
+
+        public void cancel() {
+            pending.remove(this);
+        }
     }
 
 
@@ -113,6 +118,7 @@
 
         @Override
         public void cancel() {
+            pending.remove(this);
             pending_timeout.remove(this);
         }
 
@@ -142,7 +148,6 @@
                 if (ss == null) {
                     ss = new SubscriberSet();
                     subscriptions.put(sc, ss);
-                    ss.readers = new HashSet<TimeoutTask>(1);
                 } else {
                     assert !ss.readers.contains(this);
                 }
@@ -154,7 +159,6 @@
                 if (ss == null) {
                     ss = new SubscriberSet();
                     subscriptions.put(sc, ss);
-                    ss.writers = new HashSet<TimeoutTask>(1);
                 } else {
                     assert !ss.writers.contains(this);
                 }
@@ -182,9 +186,9 @@
 
 
     // tasks that are waiting for an event, which are executed anyway after 
the timeout has occured
-    private static Queue<TimeoutTask> pending_timeout = new 
PriorityQueue<TimeoutTask>();
+    final private static Queue<TimeoutTask> pending_timeout = new 
PriorityQueue<TimeoutTask>();
     // tasks that may be waiting for an event
-    private static List<TaskIdentifier> pending = new 
LinkedList<TaskIdentifier>();
+    final private static List<TaskIdentifier> pending = new 
LinkedList<TaskIdentifier>();
 
     // only valid while a task is executing
     private static TaskIdentifier active_task = null;
@@ -279,7 +283,7 @@
      * && (delay-ready
      * || any-rs-ready
      * || any-ws-ready
-     * || (shutdown-active && run-on-shutdown) )
+     * || (disconnect-active && run-on-disconnect) )
      * </code>
      *
      * @param prio              how important is this task?
@@ -323,13 +327,13 @@
                                          SelectableChannel chan, Task t) {
         logger.debug("scheduling read");
         return Scheduler.addSelect(Priority.KEEP, null, timeout,
-                Collections.singleton(chan), 
Collections.<SelectableChannel>emptySet(), t);
+                Collections.singleton(chan), null, t);
     }
 
     public static TaskIdentifier addWrite(RelativeTime timeout,
                                           SelectableChannel chan, Task t) {
         logger.debug("scheduling write");
-        return Scheduler.addSelect(Priority.KEEP, null, timeout, 
Collections.<SelectableChannel>emptySet(),
+        return Scheduler.addSelect(Priority.KEEP, null, timeout, null,
                 Collections.singleton(chan), t);
     }
 
@@ -341,7 +345,7 @@
 
 
     /**
-     * Check if the system is still life. Trigger shutdown if we have tasks, 
but
+     * Check if the system is still life. Trigger disconnect if we have tasks, 
but
      * none of them give us lifeness.
      *
      * @return true to continue the main loop, false to exit
@@ -362,7 +366,7 @@
         }
         // do we have only tasks pending which are not alive?
         if (!pending.isEmpty() || !pending_timeout.isEmpty()) {
-            logger.debug("tasks pending but not alive -- shutdown");
+            logger.debug("tasks pending but not alive -- disconnect");
             shutdown();
             return true;
         }
@@ -405,9 +409,6 @@
         }
 
         while (checkLiveness()) {
-
-            timeout = (ready_count > 0) ? RelativeTime.ZERO : 
RelativeTime.FOREVER;
-
             AbsoluteTime now = AbsoluteTime.now();
 
             // check if any timeouts occured
@@ -443,18 +444,17 @@
                     logger.debug("receive with timeout ended");
                 }
             } catch (IOException e) {
-                System.out.println("hi");
                 throw new IOError(e);
             }
 
-            HashSet<TimeoutTask> executableTasks = new HashSet<TimeoutTask>();
+            Set<TimeoutTask> executableTasks = new HashSet<TimeoutTask>();
             for (SelectionKey sk : selector.selectedKeys()) {
                 Object obj = sk.attachment();
                 assert (obj instanceof SubscriberSet);
                 SubscriberSet ss = (SubscriberSet) obj;
 
 
-                if ((sk.interestOps() & SelectionKey.OP_READ) != 0) {
+                if (sk.isReadable()) {
                     for (TimeoutTask tt : ss.readers) {
                         executableTasks.add(tt);
                         if (tt.ctx.reasons == null) {
@@ -465,7 +465,7 @@
                     }
 
                 }
-                if ((sk.interestOps() & SelectionKey.OP_WRITE) != 0) {
+                if (sk.isWritable()) {
                     for (TimeoutTask tt : ss.writers) {
                         executableTasks.add(tt);
                         if (tt.ctx.reasons == null) {
@@ -514,13 +514,13 @@
     }
 
     /**
-     * Request the shutdown of a scheduler. Marks all currently pending tasks 
as
-     * ready because of shutdown. This will cause all tasks to run (as soon as
+     * Request the disconnect of a scheduler. Marks all currently pending 
tasks as
+     * ready because of disconnect. This will cause all tasks to run (as soon 
as
      * possible, respecting priorities and prerequisite tasks). Note that tasks
      * scheduled AFTER this call may still be delayed arbitrarily.
      */
     public static void shutdown() {
-        logger.warn("shutdown not yet implemented");
+        logger.warn("disconnect not yet implemented");
     }
 
 }

Modified: gnunet-java/test/org/gnunet/services/ConfigUtil.java
===================================================================
--- gnunet-java/test/org/gnunet/services/ConfigUtil.java        2012-01-05 
07:58:02 UTC (rev 18992)
+++ gnunet-java/test/org/gnunet/services/ConfigUtil.java        2012-01-05 
10:37:57 UTC (rev 18993)
@@ -3,13 +3,7 @@
 import java.io.*;
 import java.net.URL;
 
-/**
- * Created by IntelliJ IDEA.
- * User: dold
- * Date: 1/3/12
- * Time: 12:17 AM
- * To change this template use File | Settings | File Templates.
- */
+
 public class ConfigUtil {
     static File copyConfigResource(String resName) {
         URL res = StatisticsServiceTest.class.getResource("nse.conf");

Modified: 
gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java
===================================================================
--- gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java  
2012-01-05 07:58:02 UTC (rev 18992)
+++ gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java  
2012-01-05 10:37:57 UTC (rev 18993)
@@ -8,43 +8,49 @@
 import org.junit.Test;
 
 import java.io.File;
+import java.io.IOError;
+import java.io.IOException;
 
 public class NetworkSizeEstimationServiceTest{
+    class TestSubscriber implements 
NetworkSizeEstimationService.NSE_Subscriber {
+        public boolean success = false;
+        NetworkSizeEstimationService svc;
+        @Override
+        public void update(AbsoluteTime timestamp, double estimate, double 
deviation) {
+            System.out.println("est:" + estimate + " dev: " + deviation);
+            success = true;
+            svc.disconnect();
+        }
+    }
+
+
+
     @Test
     public void test_1() {
 
-
-
         File tmpFile = ConfigUtil.copyConfigResource("nse.conf");
 
-
-        /*
         Process p;
         try {
-            String[] cmd = {"gnunet-service-statistics", "-c", 
tmpFile.getAbsolutePath()};
+            String[] cmd = {"gnunet-service-nse", "-c", 
tmpFile.getAbsolutePath()};
             p = Runtime.getRuntime().exec(cmd);
         } catch (IOException e) {
             throw new IOError(e);
         }
 
-        */
-
         Configuration cfg = new Configuration(tmpFile.getAbsolutePath());
 
         NetworkSizeEstimationService svc = new 
NetworkSizeEstimationService(cfg);
 
-        svc.subscribe(new NetworkSizeEstimationService.NSE_Subscriber() {
-            @Override
-            public void update(AbsoluteTime t, double estimate, double 
deviation) {
-                System.out.println("------\ngot it\n-------\n");
-                System.out.println("est:" + estimate + " dev: " + deviation);
-            }
-        });
+        TestSubscriber subscriber = new TestSubscriber();
+        subscriber.svc = svc;
 
-        System.out.println("starting scheduler");
+        svc.subscribe(subscriber);
 
         Scheduler.run(Scheduler.NO_TASK);
+        
+        junit.framework.Assert.assertTrue(subscriber.success);
 
-        //p.destroy();
+        p.destroy();
     }
 }

Modified: gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java
===================================================================
--- gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java     
2012-01-05 07:58:02 UTC (rev 18992)
+++ gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java     
2012-01-05 10:37:57 UTC (rev 18993)
@@ -1,18 +1,10 @@
 package org.gnunet.services;
 
 
-import org.gnunet.service.StatisticsService;
-import org.gnunet.util.Configuration;
-import org.junit.Test;
-
-import java.io.File;
-import java.io.IOError;
-import java.io.IOException;
-
 public class StatisticsServiceTest {
 
 
-
+/*
     @Test
     public void test_1() {
 
@@ -35,4 +27,6 @@
 
         p.destroy();
     }
+
+    */
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]