[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r19737 - in gnunet-java: . .idea .idea/inspectionProfiles .
From: |
gnunet |
Subject: |
[GNUnet-SVN] r19737 - in gnunet-java: . .idea .idea/inspectionProfiles .idea/libraries src src/org/gnunet src/org/gnunet/construct src/org/gnunet/nse src/org/gnunet/statistics src/org/gnunet/util src/org/gnunet/util/getopt test/org/gnunet/construct test/org/gnunet/services |
Date: |
Thu, 9 Feb 2012 11:09:40 +0100 |
Author: dold
Date: 2012-02-09 11:09:40 +0100 (Thu, 09 Feb 2012)
New Revision: 19737
Added:
gnunet-java/.idea/libraries/commons_io_2_1.xml
gnunet-java/src/org/gnunet/nse/
gnunet-java/src/org/gnunet/nse/NetworkSizeEstimation.java
gnunet-java/src/org/gnunet/statistics/
gnunet-java/src/org/gnunet/statistics/StatisticsService.java
Removed:
gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java
Modified:
gnunet-java/.idea/inspectionProfiles/Project_Default.xml
gnunet-java/.idea/workspace.xml
gnunet-java/ISSUES
gnunet-java/src/log4j.properties
gnunet-java/src/org/gnunet/construct/Construct.java
gnunet-java/src/org/gnunet/construct/MsgMap.txt
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/Program.java
gnunet-java/src/org/gnunet/util/RelativeTime.java
gnunet-java/src/org/gnunet/util/Resolver.java
gnunet-java/src/org/gnunet/util/getopt/Parser.java
gnunet-java/test/org/gnunet/construct/ConstructTest.java
gnunet-java/test/org/gnunet/services/ConfigUtil.java
gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java
Log:
fixed various issues with command line parsing, rewrote configuration parser,
fixed resolver
Modified: gnunet-java/.idea/inspectionProfiles/Project_Default.xml
===================================================================
--- gnunet-java/.idea/inspectionProfiles/Project_Default.xml 2012-02-09
10:09:09 UTC (rev 19736)
+++ gnunet-java/.idea/inspectionProfiles/Project_Default.xml 2012-02-09
10:09:40 UTC (rev 19737)
@@ -136,7 +136,6 @@
<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">
@@ -145,9 +144,6 @@
</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">
Added: gnunet-java/.idea/libraries/commons_io_2_1.xml
===================================================================
--- gnunet-java/.idea/libraries/commons_io_2_1.xml
(rev 0)
+++ gnunet-java/.idea/libraries/commons_io_2_1.xml 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+ <library name="commons-io-2.1">
+ <CLASSES>
+ <root url="jar://$PROJECT_DIR$/lib/commons-io-2.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+</component>
\ No newline at end of file
Modified: gnunet-java/.idea/workspace.xml
===================================================================
--- gnunet-java/.idea/workspace.xml 2012-02-09 10:09:09 UTC (rev 19736)
+++ gnunet-java/.idea/workspace.xml 2012-02-09 10:09:40 UTC (rev 19737)
@@ -2,36 +2,27 @@
<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$/src/org/gnunet/construct/MessageUnion.java" />
- <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/Union.java" />
- <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/parsers/UnionParser.java" />
- <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/src/org/gnunet/util/getopt/OptionAction.java" />
- <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/test/org/gnunet/construct/UnionTest.java" />
- <change type="DELETED"
beforePath="$PROJECT_DIR$/src/org/gnunet/util/getopt/Argument.java"
afterPath="" />
- <change type="MOVED"
beforePath="$PROJECT_DIR$/src/org/gnunet/construct/TaggedUnion.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/UnionCase.java" />
- <change type="MOVED"
beforePath="$PROJECT_DIR$/src/org/gnunet/service/Resolver.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/util/Resolver.java" />
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/resolver"
afterPath="$PROJECT_DIR$/resolver" />
+ <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/src/org/gnunet/nse" />
+ <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/src/org/gnunet/statistics" />
+ <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/.idea/libraries/commons_io_2_1.xml" />
+ <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/src/org/gnunet/nse/NetworkSizeEstimation.java" />
+ <change type="NEW" beforePath=""
afterPath="$PROJECT_DIR$/src/org/gnunet/statistics/StatisticsService.java" />
+ <change type="DELETED"
beforePath="$PROJECT_DIR$/test/org/gnunet/services/StatisticsServiceTest.java"
afterPath="" />
<change type="MODIFICATION"
beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml"
afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
- <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/.idea/libraries/lib.xml"
afterPath="$PROJECT_DIR$/.idea/libraries/lib.xml" />
<change type="MODIFICATION"
beforePath="$PROJECT_DIR$/.idea/workspace.xml"
afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/ISSUES"
afterPath="$PROJECT_DIR$/ISSUES" />
<change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/log4j.properties"
afterPath="$PROJECT_DIR$/src/log4j.properties" />
<change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/construct/Construct.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/Construct.java" />
- <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/construct/MessageLoader.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/MessageLoader.java" />
<change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/construct/MsgMap.txt"
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/MsgMap.txt" />
- <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/construct/Nested.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/Nested.java" />
- <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/construct/parsers/IntegerParser.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/construct/parsers/IntegerParser.java" />
- <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimation.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimation.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/Program.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/util/Program.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/Scheduler.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/util/Scheduler.java" />
- <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/util/getopt/Option.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/util/getopt/Option.java" />
+ <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/util/Resolver.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/util/Resolver.java" />
<change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/gnunet/util/getopt/Parser.java"
afterPath="$PROJECT_DIR$/src/org/gnunet/util/getopt/Parser.java" />
- <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/src/org/grothoff/Runabout.java"
afterPath="$PROJECT_DIR$/src/org/grothoff/Runabout.java" />
- <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/test/org/gnunet/construct/ByteFillMessage.java"
afterPath="$PROJECT_DIR$/test/org/gnunet/construct/ByteFillMessage.java" />
+ <change type="MODIFICATION"
beforePath="$PROJECT_DIR$/test/org/gnunet/construct/ConstructTest.java"
afterPath="$PROJECT_DIR$/test/org/gnunet/construct/ConstructTest.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"
/>
</list>
<ignored path="gnunet-java.iws" />
@@ -90,97 +81,96 @@
</component>
<component name="FileEditorManager">
<leaf>
- <file leaf-file-name="UnionParser.java" pinned="false" current="false"
current-in-tab="false">
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/construct/parsers/UnionParser.java">
+ <file leaf-file-name="Parser.java" pinned="false" current="false"
current-in-tab="false">
+ <entry
file="file://$PROJECT_DIR$/src/org/gnunet/util/getopt/Parser.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="68" column="0" selection-start="2086"
selection-end="2086" vertical-scroll-proportion="0.0">
+ <state line="24" column="7" selection-start="632"
selection-end="632" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="MessageLoader.java" pinned="false" current="false"
current-in-tab="false">
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/construct/MessageLoader.java">
+ <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="106" column="68" selection-start="3991"
selection-end="3991" vertical-scroll-proportion="0.0">
+ <state line="53" column="51" selection-start="1656"
selection-end="1656" vertical-scroll-proportion="0.0">
<folding>
- <element signature="e#1363#1393#0" expanded="true" />
+ <element signature="e#1345#1372#0" expanded="true" />
+ <element signature="e#10585#10591#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="NetworkSizeEstimation.java" pinned="false"
current="false" current-in-tab="false">
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimation.java">
+ <file leaf-file-name="Client.java" pinned="false" current="false"
current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Client.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="69" column="61" selection-start="1769"
selection-end="1769" vertical-scroll-proportion="0.0">
+ <state line="434" column="38" selection-start="15676"
selection-end="15676" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="NetworkSizeEstimationServiceTest.java"
pinned="false" current="false" current-in-tab="false">
- <entry
file="file://$PROJECT_DIR$/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java">
+ <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="23" column="5" selection-start="747"
selection-end="747" vertical-scroll-proportion="0.0">
+ <state line="209" column="0" selection-start="7413"
selection-end="7413" vertical-scroll-proportion="1.3073497">
<folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="Construct.java" pinned="false" current="false"
current-in-tab="false">
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/construct/Construct.java">
+ <file leaf-file-name="log4j.properties" pinned="false" current="false"
current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/log4j.properties">
<provider selected="true" editor-type-id="text-editor">
- <state line="79" column="0" selection-start="2570"
selection-end="2570" vertical-scroll-proportion="0.0">
- <folding>
- <element signature="e#3565#3603#0" expanded="true" />
- </folding>
+ <state line="6" column="0" selection-start="194"
selection-end="194" vertical-scroll-proportion="0.0">
+ <folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="Resolver.java" pinned="false" current="true"
current-in-tab="true">
- <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Resolver.java">
+ <file leaf-file-name="UnionTest.java" pinned="false" current="false"
current-in-tab="false">
+ <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/UnionTest.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="40" column="27" selection-start="1171"
selection-end="1171" vertical-scroll-proportion="0.6780627">
- <folding>
- <element signature="e#617#673#0" expanded="true" />
- </folding>
+ <state line="5" column="24" selection-start="80"
selection-end="80" 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">
+ <file leaf-file-name="Resolver.java" pinned="false" current="false"
current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Resolver.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="42" column="13" selection-start="1133"
selection-end="1133" vertical-scroll-proportion="0.0">
- <folding />
+ <state line="334" column="20" selection-start="10112"
selection-end="10112" vertical-scroll-proportion="0.0">
+ <folding>
+ <element signature="e#617#673#0" expanded="true" />
+ </folding>
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="ISSUES" pinned="false" current="false"
current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/ISSUES">
+ <file leaf-file-name="StringMessage.java" pinned="false" current="false"
current-in-tab="false">
+ <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/StringMessage.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="180" column="30" selection-start="6264"
selection-end="6264" vertical-scroll-proportion="0.0">
+ <state line="2" column="13" selection-start="44"
selection-end="44" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="log4j.properties" pinned="false" current="false"
current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/src/log4j.properties">
+ <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="0" column="21" selection-start="21"
selection-end="21" vertical-scroll-proportion="0.0">
+ <state line="137" column="0" selection-start="4148"
selection-end="4456" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="UnionTest.java" pinned="false" current="false"
current-in-tab="false">
- <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/UnionTest.java">
+ <file leaf-file-name="Program.java" pinned="false" current="false"
current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Program.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="11" column="23" selection-start="265"
selection-end="265" vertical-scroll-proportion="0.0">
+ <state line="110" column="15" selection-start="3615"
selection-end="3615" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
@@ -196,22 +186,22 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
- <option value="$PROJECT_DIR$/src/org/gnunet/util/getopt/Option.java" />
- <option value="$PROJECT_DIR$/src/org/gnunet/util/Program.java" />
- <option
value="$PROJECT_DIR$/src/org/gnunet/construct/MessageUnion.java" />
- <option value="$PROJECT_DIR$/src/org/gnunet/construct/MsgMap.txt" />
- <option value="$PROJECT_DIR$/src/org/gnunet/construct/Union.java" />
- <option value="$PROJECT_DIR$/src/org/gnunet/util/getopt/Parser.java" />
- <option
value="$PROJECT_DIR$/src/org/gnunet/construct/MessageIdAnnotationProcessor.java"
/>
- <option value="$PROJECT_DIR$/test/org/gnunet/construct/UnionTest.java"
/>
<option
value="$PROJECT_DIR$/src/org/gnunet/construct/parsers/UnionParser.java" />
- <option value="$PROJECT_DIR$/src/log4j.properties" />
- <option value="$PROJECT_DIR$/src/org/gnunet/construct/Construct.java"
/>
<option
value="$PROJECT_DIR$/src/org/gnunet/construct/MessageLoader.java" />
<option
value="$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimation.java" />
<option
value="$PROJECT_DIR$/src/org/gnunet/construct/parsers/IntegerParser.java" />
- <option value="$PROJECT_DIR$/ISSUES" />
+ <option
value="$PROJECT_DIR$/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java"
/>
+ <option value="$PROJECT_DIR$/test/org/gnunet/services/ConfigUtil.java"
/>
+ <option
value="$PROJECT_DIR$/test/org/gnunet/construct/ConstructTest.java" />
+ <option value="$PROJECT_DIR$/src/org/gnunet/construct/Construct.java"
/>
+ <option value="$PROJECT_DIR$/src/log4j.properties" />
+ <option value="$PROJECT_DIR$/src/org/gnunet/util/getopt/Parser.java" />
+ <option value="$PROJECT_DIR$/src/org/gnunet/util/Configuration.java" />
+ <option value="$PROJECT_DIR$/src/org/gnunet/util/Program.java" />
+ <option value="$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTime.java" />
<option value="$PROJECT_DIR$/src/org/gnunet/util/Resolver.java" />
+ <option value="$PROJECT_DIR$/src/org/gnunet/util/Client.java" />
+ <option value="$PROJECT_DIR$/ISSUES" />
</list>
</option>
</component>
@@ -371,32 +361,84 @@
<sortByType />
</navigator>
<panes>
- <pane id="PackagesPane">
- <subPane>
+ <pane id="Scope">
+ <subPane subId="Project Files">
<PATH>
- <PATH_ELEMENT>
- <option name="myItemId" value="gnunet-java" />
- <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
+ <PATH_ELEMENT USER_OBJECT="Root">
+ <option name="myItemId" value="" />
+ <option name="myItemType" value="" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="gnunet-java" />
- <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
+ <PATH_ELEMENT USER_OBJECT="gnunet-java">
+ <option name="myItemId" value="" />
+ <option name="myItemType" value="" />
</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 USER_OBJECT="Root">
+ <option name="myItemId" value="" />
+ <option name="myItemType" value="" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="gnunet-java" />
- <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
+ <PATH_ELEMENT USER_OBJECT="gnunet-java">
+ <option name="myItemId" value="" />
+ <option name="myItemType" value="" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="org" />
- <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
+ <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">
@@ -430,10 +472,6 @@
<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>
@@ -453,7 +491,7 @@
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="construct" />
+ <option name="myItemId" value="services" />
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@@ -467,51 +505,15 @@
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="src" />
+ <option name="myItemId" value="test" />
<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="myItemId" value="construct" />
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@@ -528,22 +530,6 @@
<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_ELEMENT>
- <option name="myItemId" value="getopt" />
- <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -562,10 +548,6 @@
<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>
<PATH>
<PATH_ELEMENT>
@@ -589,7 +571,7 @@
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="exceptions" />
+ <option name="myItemId" value="util" />
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@@ -615,9 +597,13 @@
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="construct" />
+ <option name="myItemId" value="util" />
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="getopt" />
+ <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -640,14 +626,6 @@
<option name="myItemId" value="gnunet" />
<option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="construct" />
- <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
- <PATH_ELEMENT>
- <option name="myItemId" value="parsers" />
- <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
- </PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -665,84 +643,32 @@
</PATH>
</subPane>
</pane>
- <pane id="Scope">
- <subPane subId="Project Files">
+ <pane id="PackagesPane">
+ <subPane>
<PATH>
- <PATH_ELEMENT USER_OBJECT="Root">
- <option name="myItemId" value="" />
- <option name="myItemType" value="" />
+ <PATH_ELEMENT>
+ <option name="myItemId" value="gnunet-java" />
+ <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT USER_OBJECT="gnunet-java">
- <option name="myItemId" value="" />
- <option name="myItemType" value="" />
+ <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 USER_OBJECT="Root">
- <option name="myItemId" value="" />
- <option name="myItemType" value="" />
+ <PATH_ELEMENT>
+ <option name="myItemId" value="gnunet-java" />
+ <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT USER_OBJECT="gnunet-java">
- <option name="myItemId" value="" />
- <option name="myItemType" value="" />
+ <PATH_ELEMENT>
+ <option name="myItemId" value="gnunet-java" />
+ <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
- <PATH_ELEMENT USER_OBJECT="src">
- <option name="myItemId" value="" />
- <option name="myItemType" value="" />
+ <PATH_ELEMENT>
+ <option name="myItemId" value="org" />
+ <option name="myItemType"
value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</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>
</panes>
@@ -757,7 +683,7 @@
<property name="GenerateAntBuildDialog.generateSingleFile" value="true" />
<property name="recentsLimit" value="5" />
<property name="MemberChooser.sorted" value="false" />
- <property name="options.lastSelected" value="editing.templates" />
+ <property name="options.lastSelected" value="preferences.editor" />
<property name="GenerateAntBuildDialog.inclineRuntiemClasspath"
value="true" />
<property name="GenerateAntBuildDialog.forceTargetJdk" value="false" />
<property name="project.structure.side.proportion" value="0.2" />
@@ -781,11 +707,13 @@
<recent name="org.gnunet.service.NSE_Update" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+ <recent name="org.gnunet.statistics" />
+ <recent name="org.gnunet.nse" />
<recent name="org.gnunet.construct" />
<recent name="" />
</key>
</component>
- <component name="RunManager" selected="JUnit.UnionTest">
+ <component name="RunManager" selected="JUnit.ConstructTest">
<configuration default="false" name="StatisticsServiceTest" type="JUnit"
factoryName="JUnit" temporary="true">
<module name="gnunet-java" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@@ -980,8 +908,8 @@
<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"
/>
- <item index="3" class="java.lang.String"
itemvalue="Application.Resolver" />
- <item index="4" class="java.lang.String" itemvalue="JUnit.UnionTest" />
+ <item index="3" class="java.lang.String" itemvalue="JUnit.UnionTest" />
+ <item index="4" class="java.lang.String"
itemvalue="Application.Resolver" />
</list>
<configuration name="<template>" type="WebApp" default="true"
selected="false">
<Host>localhost</Host>
@@ -1052,24 +980,24 @@
</component>
<component name="ToolWindowManager">
<frame x="-6" y="17" width="1452" height="889" extended-state="0" />
- <editor active="true" />
+ <editor active="false" />
<layout>
- <window_info id="Changes" active="false" anchor="bottom"
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false"
weight="0.32967034" 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.24313186" sideWeight="0.49713057" order="7" side_tool="false"
content_ui="tabs" />
+ <window_info id="Changes" active="true" anchor="bottom"
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true"
weight="0.32967034" 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="TODO" active="false" anchor="bottom" auto_hide="false"
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32967034"
sideWeight="0.5" order="6" 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.24098124" 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.1826923"
sideWeight="0.49426112" order="1" 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.23015873" 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.24891774"
sideWeight="0.6703297" order="0" 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.44230768"
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="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="Run" active="false" anchor="bottom" auto_hide="false"
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39680427"
sideWeight="0.9126984" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom"
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false"
weight="0.1456044" sideWeight="0.0" 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.2967033" 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.32967034"
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.23015873" 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.22655122"
sideWeight="0.76236266" order="0" 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.23763736"
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="Find" active="false" anchor="bottom" auto_hide="false"
internal_type="DOCKED" type="DOCKED" visible="false" weight="0.1826923"
sideWeight="0.49426112" order="1" 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" />
<window_info id="Inspection" active="false" anchor="bottom"
auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false"
weight="0.4945055" sideWeight="0.5" order="5" side_tool="false"
content_ui="tabs" />
@@ -1109,7 +1037,7 @@
<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="implemented message unions,
parameter parsing" />
+ <option name="LAST_COMMIT_MESSAGE" value="fixed various issues with
command line parsing, rewrote configuration parser, fixed resolver" />
<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" />
@@ -1127,8 +1055,11 @@
<MESSAGE value="fixes / documentation" />
<MESSAGE value="added libs" />
<MESSAGE value="rudimentary version of resolve tool completed" />
- <MESSAGE value="fix" />
<MESSAGE value="implemented message unions, parameter parsing" />
+ <MESSAGE value="fix" />
+ <MESSAGE value="message unions now used in resolver" />
+ <MESSAGE value="fixed parameter parsing bug" />
+ <MESSAGE value="fixed various issues with command line parsing, rewrote
configuration parser, fixed resolver" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
@@ -1138,126 +1069,104 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
- <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/getopt/Parser.java">
+ <entry
file="file://$PROJECT_DIR$/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="51" column="8" selection-start="1569"
selection-end="1569" vertical-scroll-proportion="0.0">
- <folding>
- <element signature="e#1109#1117#0" expanded="true" />
- </folding>
- </state>
+ <state line="55" column="0" selection-start="1528"
selection-end="1528" vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/StringMessage.java">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Scheduler.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="2" column="13" selection-start="44" selection-end="44"
vertical-scroll-proportion="0.0">
- <folding />
- </state>
+ <state line="269" column="33" selection-start="8696"
selection-end="8696" vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/construct/MessageIdAnnotationProcessor.java">
+ <entry
file="file://$PROJECT_DIR$/test/org/gnunet/services/ConfigUtil.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="107" column="85" selection-start="4974"
selection-end="4974" vertical-scroll-proportion="0.0">
- <folding>
- <element signature="imports" expanded="true" />
- <element signature="e#1053#1083#0" expanded="true" />
- </folding>
- </state>
+ <state line="7" column="24" selection-start="121" selection-end="121"
vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/src/org/grothoff/Runabout.java">
+ <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/ConstructTest.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="113" column="7" selection-start="4566"
selection-end="4566" vertical-scroll-proportion="0.0">
- <folding />
- </state>
+ <state line="67" column="0" selection-start="1826"
selection-end="1826" vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/src/org/gnunet/construct/MsgMap.txt">
+ <entry file="file://$PROJECT_DIR$/src/org/grothoff/Runabout.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="11" column="0" selection-start="661" selection-end="661"
vertical-scroll-proportion="0.0">
- <folding />
- </state>
+ <state line="104" column="0" selection-start="4232"
selection-end="4232" vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/ConstructTest.java">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/construct/Construct.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="7" column="13" selection-start="123" selection-end="123"
vertical-scroll-proportion="0.0">
- <folding />
- </state>
+ <state line="222" column="10" selection-start="7093"
selection-end="7093" vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/UnionTest.java">
+ <entry file="file://$PROJECT_DIR$/src/log4j.properties">
<provider selected="true" editor-type-id="text-editor">
- <state line="11" column="23" selection-start="265" selection-end="265"
vertical-scroll-proportion="0.0">
- <folding />
- </state>
+ <state line="6" column="0" selection-start="194" selection-end="194"
vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/construct/parsers/UnionParser.java">
+ <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/UnionTest.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="68" column="0" selection-start="2086"
selection-end="2086" vertical-scroll-proportion="0.0">
- <folding />
- </state>
+ <state line="5" column="24" selection-start="80" selection-end="80"
vertical-scroll-proportion="0.0" />
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/src/log4j.properties">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/getopt/Parser.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="0" column="21" selection-start="21" selection-end="21"
vertical-scroll-proportion="0.0">
+ <state line="24" column="7" selection-start="632" selection-end="632"
vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/src/org/gnunet/construct/Construct.java">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Configuration.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="79" column="0" selection-start="2570"
selection-end="2570" vertical-scroll-proportion="0.0">
+ <state line="53" column="51" selection-start="1656"
selection-end="1656" vertical-scroll-proportion="0.0">
<folding>
- <element signature="e#3565#3603#0" expanded="true" />
+ <element signature="e#1345#1372#0" expanded="true" />
+ <element signature="e#10585#10591#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/construct/MessageLoader.java">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Program.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="106" column="68" selection-start="3991"
selection-end="3991" vertical-scroll-proportion="0.0">
- <folding>
- <element signature="e#1363#1393#0" expanded="true" />
- </folding>
+ <state line="110" column="15" selection-start="3615"
selection-end="3615" vertical-scroll-proportion="0.0">
+ <folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/service/NetworkSizeEstimation.java">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/AbsoluteTime.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="69" column="61" selection-start="1769"
selection-end="1769" vertical-scroll-proportion="0.0">
+ <state line="137" column="0" selection-start="4148"
selection-end="4456" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Resolver.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="23" column="5" selection-start="747" selection-end="747"
vertical-scroll-proportion="0.0">
- <folding />
+ <state line="334" column="20" selection-start="10112"
selection-end="10112" vertical-scroll-proportion="0.0">
+ <folding>
+ <element signature="e#617#673#0" expanded="true" />
+ </folding>
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/src/org/gnunet/construct/parsers/IntegerParser.java">
+ <entry
file="file://$PROJECT_DIR$/test/org/gnunet/construct/StringMessage.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="42" column="13" selection-start="1133"
selection-end="1133" vertical-scroll-proportion="0.0">
+ <state line="2" column="13" selection-start="44" selection-end="44"
vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/ISSUES">
+ <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Client.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="180" column="30" selection-start="6264"
selection-end="6264" vertical-scroll-proportion="0.0">
+ <state line="434" column="38" selection-start="15676"
selection-end="15676" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/src/org/gnunet/util/Resolver.java">
+ <entry file="file://$PROJECT_DIR$/ISSUES">
<provider selected="true" editor-type-id="text-editor">
- <state line="40" column="27" selection-start="1171"
selection-end="1171" vertical-scroll-proportion="0.6780627">
- <folding>
- <element signature="e#617#673#0" expanded="true" />
- </folding>
+ <state line="209" column="0" selection-start="7413"
selection-end="7413" vertical-scroll-proportion="1.3073497">
+ <folding />
</state>
</provider>
</entry>
Modified: gnunet-java/ISSUES
===================================================================
--- gnunet-java/ISSUES 2012-02-09 10:09:09 UTC (rev 19736)
+++ gnunet-java/ISSUES 2012-02-09 10:09:40 UTC (rev 19737)
@@ -179,3 +179,31 @@
* AF_* etc. seem to be system specific
* inconsistent message formats
+
+================================================
+
+* Should Connection connect in the Constructor or in a seperate connect method?
+
+
+* choice of coverage tool:
+ * cobertura sucks (bad documentation, non-existing error messages (e.g. when
not passing the coverage data file to the jvm)
+ * results are poor / just doesn't seem to work correctly
+ * integration into the project structure was frustrating
+ * EMMA: isn't maintained anymore, can't do branch coverage
+ * JaCoCo is very new / mostly undocumented / mostly an (still unstable) API
+ * uses agents
(http://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html)
+ instead of compile-time instrumentation
+ * CodeCover (http://codecover.org)
+ * looks promising
+
+
+* bash scripts (for collecting source/class files, building, testing,
coverage, annotation-processing etc.)
+ are non-portable
+ * different compiler options (e.g. -g is needed for coverage)
+ * use some java-based scripting language? (e.g. clojure)
+
+
+* how do we collect test cases
+ * test suites
+ * custom annotation processor (collects all classes with @Test-annotated
methods)
+ * by filename convention
Modified: gnunet-java/src/log4j.properties
===================================================================
--- gnunet-java/src/log4j.properties 2012-02-09 10:09:09 UTC (rev 19736)
+++ gnunet-java/src/log4j.properties 2012-02-09 10:09:40 UTC (rev 19737)
@@ -3,4 +3,4 @@
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-5p %c:\n%m%n
\ No newline at end of file
+log4j.appender.A1.layout.ConversionPattern=%-5p %c:\n%m%n
Modified: gnunet-java/src/org/gnunet/construct/Construct.java
===================================================================
--- gnunet-java/src/org/gnunet/construct/Construct.java 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/construct/Construct.java 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -224,7 +224,8 @@
path = old_path;
c = old_c;
- parser = new NestedParser(p, new LinkedList<Field>(frameSizePath),
n.optional(), old_f);
+ LinkedList<Field> copy = frameSizePath == null ? null : new
LinkedList<Field>(frameSizePath);
+ parser = new NestedParser(p, copy, n.optional(), old_f);
}
public void visit(ByteFill bf) {
Modified: gnunet-java/src/org/gnunet/construct/MsgMap.txt
===================================================================
--- gnunet-java/src/org/gnunet/construct/MsgMap.txt 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/construct/MsgMap.txt 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -1,11 +1,11 @@
5=org.gnunet.util.Resolver$ResolverResponse
291=org.gnunet.construct.QueryMessage
-323=org.gnunet.service.NetworkSizeEstimation$NSE_UpdateMessage
-321=org.gnunet.service.NetworkSizeEstimation$NSE_StartMessage
+323=org.gnunet.nse.NetworkSizeEstimation$NSE_UpdateMessage
+321=org.gnunet.nse.NetworkSizeEstimation$NSE_StartMessage
3210=org.gnunet.construct.SimpleTestMessage
987=org.gnunet.construct.SizeTestMessage
0|org.gnunet.construct.UnionTest.TestUnion=org.gnunet.construct.UnionTest$TestUnionCase0
1|org.gnunet.construct.UnionTest.TestUnion=org.gnunet.construct.UnionTest$TestUnionCase1
-3|org.gnunet.util.Resolver.AddressUnion=org.gnunet.util.Resolver$AddressString
-45|org.gnunet.util.Resolver.AddressUnion=org.gnunet.util.Resolver$AddressBinary
-# generated 2012/01/25 18:47:40
+0|org.gnunet.util.Resolver.AddressUnion=org.gnunet.util.Resolver$TextualAddress
+1|org.gnunet.util.Resolver.AddressUnion=org.gnunet.util.Resolver$NumericAddress
+# generated 2012/01/27 18:56:31
Copied: gnunet-java/src/org/gnunet/nse/NetworkSizeEstimation.java (from rev
19420, gnunet-java/src/org/gnunet/service/NetworkSizeEstimation.java)
===================================================================
--- gnunet-java/src/org/gnunet/nse/NetworkSizeEstimation.java
(rev 0)
+++ gnunet-java/src/org/gnunet/nse/NetworkSizeEstimation.java 2012-02-09
10:09:40 UTC (rev 19737)
@@ -0,0 +1,195 @@
+package org.gnunet.nse;
+
+
+import org.gnunet.construct.*;
+import org.gnunet.construct.Double;
+import org.gnunet.exceptions.MessageFormatException;
+import org.gnunet.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+
+/**
+ * An API for the network size estimation service.
+ *
+ * @author Florian Dold
+ */
+public class NetworkSizeEstimation {
+ private static final Logger logger = LoggerFactory
+ .getLogger(NetworkSizeEstimation.class);
+
+ private Collection<NSE_Subscriber> subscribers = new
HashSet<NSE_Subscriber>(1);
+ private boolean disconnected = false;
+
+ private Client client;
+
+
+
+ @SuppressWarnings("InstanceVariableMayNotBeInitialized")
+ @MessageId(NSE_StartMessage.MSG_ID)
+ public static class NSE_StartMessage implements Message {
+ public static final int MSG_ID = 321;
+
+ @Nested
+ public MessageHeader header;
+ }
+
+ @SuppressWarnings("InstanceVariableMayNotBeInitialized")
+ @MessageId(NSE_UpdateMessage.MSG_ID)
+ public static class NSE_UpdateMessage implements Message {
+ public static final int MSG_ID = 323;
+
+ @Nested
+ public MessageHeader header;
+
+ @UInt32
+ public int reserved;
+
+ @Nested
+ public AbsoluteTimeMessage timestamp;
+
+ @Double
+ public double sizeEstimate;
+
+ @Double
+ public double stdDeviation;
+
+ }
+
+
+
+ private class NSE_Receiver implements MessageReceiver {
+ @Override
+ public void process(Message msg) {
+ if (!(msg instanceof NSE_UpdateMessage)) {
+ throw new MessageFormatException("got unexcpected message");
+ }
+ NSE_UpdateMessage uMsg = (NSE_UpdateMessage) msg;
+
+ for (NSE_Subscriber s : subscribers) {
+ s.update(AbsoluteTime.fromNetwork(uMsg.timestamp),
uMsg.sizeEstimate, uMsg.stdDeviation);
+ }
+
+ if (!disconnected) {
+ client.receive(this, RelativeTime.FOREVER);
+ }
+ }
+
+ @Override
+ public void handleTimeout() {
+ // can't happen
+ throw new RuntimeException("unreachable");
+ }
+ }
+
+ private class NSE_Transmitter implements MessageTransmitter {
+
+ @Override
+ public void transmit(Client.MessageSink sink) {
+ logger.debug("ready to transmit");
+ NSE_StartMessage m = new NSE_StartMessage();
+ m.header = new MessageHeader();
+ 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 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);
+ }
+
+
+ /**
+ * Create a connection to the network size estimation service.
+ *
+ * @param cfg the configuration to use for connecting with the service
+ */
+ public NetworkSizeEstimation(Configuration cfg) {
+ 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();
+ }
+
+ public static void main (String[] args)
+ {
+ new Program (args) {
+
+ public int f_foo; // shortname: f, long name: foo, type: "int"
+
+ public boolean b_bar; // shortname: b, long name: bar, type:
boolean flag (present: true, absent: false)
+ // or with annotations...
+
+ public void run ()
+ {
+ final NetworkSizeEstimation svc = new
NetworkSizeEstimation(cfg);
+ NSE_Subscriber subscriber = new NSE_Subscriber() {
+ @Override
+ public void update(AbsoluteTime timestamp, double estimate,
double deviation) {
+ System.out.println("est:" + estimate + " dev: " +
deviation + " t: ");
+ svc.disconnect();
+ }
+ };
+ svc.subscribe(subscriber);
+
+ }
+ }.start();
+
+
+ }
+
+}
Copied: gnunet-java/src/org/gnunet/statistics/StatisticsService.java (from rev
19281, gnunet-java/src/org/gnunet/service/StatisticsService.java)
===================================================================
--- gnunet-java/src/org/gnunet/statistics/StatisticsService.java
(rev 0)
+++ gnunet-java/src/org/gnunet/statistics/StatisticsService.java
2012-02-09 10:09:40 UTC (rev 19737)
@@ -0,0 +1,17 @@
+/*
+ * The stuff below does nothing whatsoever, first milestone of
+ * this project is to implement the StatisticsService api
+ *
+ */
+
+package org.gnunet.statistics;
+
+import org.gnunet.util.Client;
+import org.gnunet.util.Configuration;
+
+public class StatisticsService {
+
+ public StatisticsService(Configuration cfg) {
+ Client client = new Client("statistics", cfg);
+ }
+}
Modified: gnunet-java/src/org/gnunet/util/AbsoluteTime.java
===================================================================
--- gnunet-java/src/org/gnunet/util/AbsoluteTime.java 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/util/AbsoluteTime.java 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -138,7 +138,7 @@
/**
* Gets the duration of an operation as the difference of the current time
* and address@hidden this}.
- *
+ *
* @return start_time(=this) - now
*/
public RelativeTime getDuration() {
Modified: gnunet-java/src/org/gnunet/util/Client.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Client.java 2012-02-09 10:09:09 UTC (rev
19736)
+++ gnunet-java/src/org/gnunet/util/Client.java 2012-02-09 10:09:40 UTC (rev
19737)
@@ -202,10 +202,12 @@
private class ConnectHelper implements Task, Resolver.AddressCallback {
private boolean resolveActive = false;
private LinkedList<InetAddress> addrList = new
LinkedList<InetAddress>();
+ private int currentAddr = 0;
private String hostname;
private int port;
private RelativeTime backoff = RelativeTime.MILLISECOND;
+
public ConnectHelper(String hostname, int port) {
this.hostname = hostname;
this.port = port;
@@ -215,9 +217,9 @@
public void run(Context ctx) {
connectStep();
}
-
+
private void increaseBackoff() {
- backoff = RelativeTime.max(backoff.multiply(2),
RelativeTime.SECOND);
+ backoff = RelativeTime.min(backoff.multiply(2),
RelativeTime.SECOND.multiply(5));
}
private void resetBackoff() {
backoff = RelativeTime.MILLISECOND;
@@ -238,9 +240,11 @@
throw new IOError(e);
}
}
+
if (chan.isConnected()) {
return;
}
+
try {
if (chan.isConnectionPending()) {
if (chan.finishConnect()) {
@@ -257,18 +261,18 @@
this.increaseBackoff();
}
} else {
- InetAddress addr = addrList.poll();
+ InetAddress addr = addrList.pollFirst();
if (addr == null && !resolveActive) {
startResolve();
} else {
logger.debug("connecting to " + addr + " on " + port);
chan.connect(new InetSocketAddress(addr, port));
- resetBackoff();
Scheduler.add(this, backoff);
}
}
} catch (IOException e) {
- logger.debug("got exception while connecting, retrying", e);
+ logger.debug("got exception while connecting", e);
+ logger.debug("retrying in {}ms", backoff.getMilliseconds());
chan = null;
Scheduler.add(this, backoff);
increaseBackoff();
@@ -287,6 +291,13 @@
Scheduler.add(this, backoff);
}
+ @Override
+ public void onTimeout() {
+ increaseBackoff();
+ this.resolveActive = false;
+ Scheduler.add(this, backoff);
+ }
+
public void startResolve() {
this.resolveActive = true;
Resolver.getInstance().resolveHostname(hostname,
RelativeTime.FOREVER, this);
Modified: gnunet-java/src/org/gnunet/util/Configuration.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Configuration.java 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/util/Configuration.java 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -20,11 +20,18 @@
package org.gnunet.util;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.LineIterator;
+import org.gnunet.exceptions.ConfigurationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
import java.util.*;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
@@ -35,23 +42,22 @@
public class Configuration {
@SuppressWarnings("serial")
public static class ParsingError extends RuntimeException {
- ParsingError(final String msg) {
+ ParsingError(String msg) {
super(msg);
}
- ParsingError(final String msg, final Throwable t) {
+ ParsingError(String msg, final Throwable t) {
super(msg, t);
}
}
private static final Logger logger = LoggerFactory
.getLogger(Configuration.class);
+
private static Pattern section = Pattern.compile("\\[(.*?)\\]");
- private static Pattern tag = Pattern.compile("(\\S+?) =( ?.*?)");
- private static Pattern comment = Pattern.compile("\\s*[%#].*\n?");
+ private static Pattern tag = Pattern.compile("(\\S+?)\\s*=(.*?)");
+ private static Pattern whitspace = Pattern.compile("\\s*");
- private static Pattern delim = Pattern.compile("\\s*\\n\\s*");
-
private final Map<String, Map<String, String>> sections = new
LinkedHashMap<String, Map<String, String>>();
/**
@@ -59,15 +65,7 @@
*/
public Configuration() {
}
-
- public Configuration(String s) {
- parse(s);
- }
- public boolean appendValueFilename(final String section,
- final String option, final String
value) {
- throw new UnsupportedOperationException();
- }
/**
* Expand an expression of the form "$FOO/BAR" to "DIRECTORY/BAR" where
@@ -78,7 +76,7 @@
* @return $-expanded string
*/
public String expandDollar(String orig) {
- final Map<String, String> env = System.getenv();
+ Map<String, String> env = System.getenv();
for (final Map.Entry<String, String> e : env.entrySet()) {
orig = orig.replace("$" + e.getKey(), e.getValue());
}
@@ -98,8 +96,8 @@
* @param s the section of interest
* @return an unmodifiable view of the section.
*/
- public Map<String, String> getSection(final String s) {
- final Map<String, String> m = sections.get(s);
+ public Map<String, String> getSection(String s) {
+ Map<String, String> m = sections.get(s);
if (m == null) {
throw new ParsingError("configuration section not found");
}
@@ -124,15 +122,15 @@
* @return matching value from choices
* @throws ParsingError
*/
- public String getValueChoice(final String section, final String option,
- final Iterable<String> choices) {
- final String value = getValueString(section, option);
+ public String getValueChoice(String section, String option,
+ Iterable<String> choices) {
+ String value = getValueString(section, option);
if (value == null) {
throw new ParsingError(String.format(
"Failure in configuration section %s: value not found",
section));
}
- for (final String c : choices) {
+ for (String c : choices) {
if (c.equals(value)) {
return value;
}
@@ -141,15 +139,7 @@
"Failure in configuration section %s: invalid value",
section));
}
- public String getValueFileName(final String section, final String option) {
- throw new UnsupportedOperationException();
- }
- public List<String> getValueFilenames(final String section,
- final String option) {
- throw new UnsupportedOperationException();
- }
-
/**
* Get a configuration value that should be a number
*
@@ -157,15 +147,15 @@
* @param option
* @return null if value not in configuration, the option's value otherwise
*/
- public long getValueNumer(final String section, final String option) {
- final String num_str = getValueString(section, option);
+ public long getValueNumer(String section, String option) {
+ String num_str = getValueString(section, option);
if (num_str == null) {
throw new ParsingError("Failure in configuration section "
+ section + " option " + option + ": value empty");
}
try {
return Long.parseLong(num_str);
- } catch (final NumberFormatException e) {
+ } catch (NumberFormatException e) {
throw new ParsingError("Failure in configuration section "
+ section + " option " + option + ": " + e.getMessage(),
e);
}
@@ -179,34 +169,18 @@
* @throws ParsingError
* @return
*/
- public String getValueString(final String section, final String option) {
- if (!sections.containsKey(section)) {
- throw new ParsingError(String.format(
- "Failure in configuration section %s: option %s not found",
- section, option));
- }
+ public String getValueString(String section, String option) {
+ ensureSectionExists(section);
return sections.get(section).get(option);
}
-
/**
- * XXX: how is the time stored?
- *
- * @param section
- * @param option
- * @return null if option not found
- */
- public RelativeTime getValueTime(final String section, final String
option) {
- throw new UnsupportedOperationException();
- }
-
- /**
* Gets a configuration value that should be in a set of {"YES","NO"}.
*
* @param section section of interest
* @param option option of interest
* @return true, false, null
*/
- public boolean getValueYesNo(final String section, final String option) {
+ public boolean getValueYesNo(String section, String option) {
final String v = getValueChoice(section, option,
Arrays.asList("YES", "NO"));
if (v == null) {
@@ -231,20 +205,12 @@
* @param option option of interest
* @return true if so, false of not
*/
- public boolean haveValue(final String section, final String option) {
+ public boolean haveValue(String section, String option) {
return sections.containsKey(section)
&& sections.get(section).containsKey(option);
}
/**
- * Test if there are configuration options that were changed since the last
- * save.
- */
- public boolean isDirty() {
- throw new UnsupportedOperationException();
- }
-
- /**
* Parse a configuration file, add all of the options in the file to the
* configuration environment.
*
@@ -252,56 +218,66 @@
* @throws ParsingError
*/
public void parse(String filename) {
- Scanner sc;
+ filename = replaceHome(filename);
+
+ String current_section = "";
+
+ LineIterator it;
try {
- sc = new Scanner(new File(filename)).useDelimiter(delim);
- } catch (final FileNotFoundException e) {
- throw new ParsingError("Configuration file \"" + filename
- + "\" not found");
+ it = FileUtils.lineIterator(new File(filename));
+ } catch (IOException e) {
+ throw new ParsingError("Cannot read configuration file '" +
filename+ "'");
}
- String current_section = "";
+ int lineNumer = 1;
- while (true) {
- if (sc.hasNext(comment)) {
- sc.next(comment);
- } else if (sc.hasNext(section)) {
- sc.next(section);
- current_section = sc.match().group(1).trim();
- } else if (sc.hasNext(tag)) {
- sc.next(tag);
- final String option = sc.match().group(1).trim();
- String value = sc.match().group(2).trim();
+ try {
+ while (it.hasNext()) {
+ String line = it.nextLine();
+ // strip comment
+ line = line.split("#")[0];
+ Matcher m;
- if (value.length() != 0 && value.charAt(0) == '"') {
- final int pos = value.indexOf('"', 1);
- if (pos == -1) {
- logger.warn("incorrecly quoted config value");
- continue;
+ if ((m=tag.matcher(line)).matches()) {
+ String option = m.group(1).trim();
+ String value = m.group(2).trim();
+
+ if (value.length() != 0 && value.charAt(0) == '"') {
+ int pos = value.indexOf('"', 1);
+ if (pos == -1) {
+ logger.warn("incorrecly quoted config value");
+ continue;
+ }
+ value = value.substring(1, pos);
}
- value = value.substring(1, pos);
+ setValueString(current_section, option, value);
+ } else if ((m=section.matcher(line)).matches()) {
+ current_section = m.group(1).trim();
+ } else if (whitspace.matcher(line).matches()) {
+ // whitespace is ok
+ } else {
+ logger.warn(String.format("skipped unreadable line %s in
configuration file '%s': '%s'", lineNumer, filename, line));
}
- setValueString(current_section, option, value);
- } else if (!sc.hasNext()) {
- break;
- } else {
- logger.warn("skipped unreadable configuration line");
- sc.next();
+
+ lineNumer++;
}
+ } finally {
+ it.close();
}
}
+ private String replaceHome(String filename) {
+ String home = System.getenv("HOME");
+ return home != null ? filename.replace("~", home) : filename;
+ }
+
/**
* Remove the given section and all options in it.
*/
- public void removeSection(final String section) {
+ public void removeSection(String section) {
sections.remove(section);
}
- public boolean removeValueFilename(final String section,
- final String option, final String
value) {
- throw new UnsupportedOperationException();
- }
/**
* Set an option to a string value in a section.
@@ -310,8 +286,8 @@
* @param option
* @param value
*/
- public void setValueNumber(final String section, final String option,
- final long value) {
+ public void setValueNumber(String section, String option,
+ long value) {
setValueString(section, option, "" + value);
}
@@ -322,8 +298,8 @@
* @param option
* @param value
*/
- public void setValueString(final String section, final String option,
- final String value) {
+ public void setValueString(String section, String option,
+ String value) {
Map<String, String> table = sections.get(section);
if (table == null) {
table = new LinkedHashMap<String, String>();
@@ -338,14 +314,14 @@
* @param filename where to write the configuration
* @throws IOException
*/
- public void write(final String filename) throws IOException {
- final BufferedWriter w = new BufferedWriter(new FileWriter(new File(
+ public void write(String filename) throws IOException {
+ BufferedWriter w = new BufferedWriter(new FileWriter(new File(
filename)));
- for (final Map.Entry<String, Map<String, String>> s : sections
+ for (Map.Entry<String, Map<String, String>> s : sections
.entrySet()) {
w.write(s.getKey());
w.newLine();
- for (final Map.Entry<String, String> e : s.getValue().entrySet()) {
+ for (Map.Entry<String, String> e : s.getValue().entrySet()) {
w.write(e.getKey() + " = " + e.getValue());
w.newLine();
}
@@ -355,9 +331,16 @@
public void loadDefaults() {
- final String[] dirs = {"/usr/share/", "/usr/local/share/"};
- for (String d : dirs) {
- File dir = new File(d + "gnunet/config.d/");
+ ArrayList<File> dirs = new ArrayList<File>();
+ dirs.add(new File("/usr/share/gnunet/config.d/"));
+ dirs.add(new File("/usr/local/share/gnunet/config.d/"));
+ String pfx = System.getenv("GNUNET_PREFIX");
+ if (pfx != null) {
+ dirs.add(new File(pfx, "share/config.d/"));
+ dirs.add(new File(pfx, "config.d/"));
+ dirs.add(new File(pfx, "gnunet/config.d/"));
+ }
+ for (File dir : dirs) {
if (dir.exists() && dir.isDirectory()) {
for (File f : dir.listFiles()) {
parse(f.getAbsolutePath());
@@ -365,16 +348,10 @@
}
}
}
-
- /**
- * Write only configuration entries that have been changed to configuration
- * file.
- *
- * @param cfgNew new configuration
- * @param filename where to write the configuration diff between default
and new
- */
- public void writeDiffs(final Configuration cfgNew, final String filename) {
- throw new UnsupportedOperationException();
+
+ private void ensureSectionExists(String section) {
+ if (!sections.containsKey(section)) {
+ throw new ConfigurationException("Required section '"+section+"'
not in configuration");
+ }
}
-
}
Modified: gnunet-java/src/org/gnunet/util/Program.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Program.java 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/util/Program.java 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -1,11 +1,14 @@
package org.gnunet.util;
+import org.apache.log4j.*;
import org.gnunet.util.getopt.Option;
import org.gnunet.util.getopt.OptionAction;
import org.gnunet.util.getopt.Parser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+
public abstract class Program {
private static final Logger logger = LoggerFactory
.getLogger(Resolver.class);
@@ -18,19 +21,32 @@
description = "Path of the configuration file",
argumentName = "FILENAME",
action = OptionAction.STORE_STRING)
- public String cfgFileName;
+ public String cfgFileName = null;
@Option(shortname = "h", longname = "help",
description = "print this help message",
action = OptionAction.SET)
- public boolean printHelp;
+ public boolean printHelp = false;
@Option(shortname = "v", longname = "version",
- description = "display version information",
+ description = "print version",
action = OptionAction.SET)
- public boolean showVersion;
+ public boolean showVersion = false;
+ @Option(shortname = "L", longname = "log",
+ description = "configure logging to use LOGLEVEL",
+ argumentName = "LOGLEVEL",
+ action = OptionAction.STORE_STRING)
+ public String logLevel = null;
+
+ @Option(shortname = "l", longname = "logfile",
+ description = "configure logging to write logs to LOGFILE",
+ argumentName = "LOGFILE",
+ action = OptionAction.STORE_STRING)
+ public String logFile = null;
+
+
protected final String[] unprocessedArgs;
private Parser optParser;
@@ -47,6 +63,39 @@
optParser = new Parser(this);
unprocessedArgs = optParser.parse(args);
+ org.apache.log4j.Logger rootLogger = LogManager.getRootLogger();
+
+ if (logLevel == null) {
+ // do nothing
+ } else if (logLevel.equalsIgnoreCase("debug")) {
+ rootLogger.setLevel(Level.DEBUG);
+ } else if (logLevel.equalsIgnoreCase("info")) {
+ rootLogger.setLevel(Level.INFO);
+ } else if (logLevel.equalsIgnoreCase("warn") ||
logLevel.equalsIgnoreCase("warning")) {
+ rootLogger.setLevel(Level.WARN);
+ } else if (logLevel.equalsIgnoreCase("error")) {
+ rootLogger.setLevel(Level.ERROR);
+ } else if (logLevel.equalsIgnoreCase("off")) {
+ rootLogger.setLevel(Level.OFF);
+ } else {
+ rootLogger.setLevel(Level.INFO);
+ logger.info("unknown log level '{}'; defaulting to INFO",
logLevel);
+ }
+
+ if (logFile != null) {
+ Layout layout = new PatternLayout("%-5p %c:\n%m%n");
+ Appender appender = null;
+ try {
+ appender = new FileAppender(layout, logFile);
+ } catch (IOException e) {
+ logger.warn("could not open log file {}", logFile);
+ }
+ if (appender!= null) {
+ rootLogger.removeAllAppenders();
+ rootLogger.addAppender(appender);
+ }
+ }
+
cfg.loadDefaults();
if (cfgFileName != null) {
@@ -54,13 +103,14 @@
cfg.parse(cfgFileName);
}
+
Resolver.getInstance().setConfiguration(cfg);
}
protected String getHelpDescription() {
return "gnunet-java tool";
}
-
+
protected String getVersionDescription() {
return "development version of gnunet-java";
}
Modified: gnunet-java/src/org/gnunet/util/RelativeTime.java
===================================================================
--- gnunet-java/src/org/gnunet/util/RelativeTime.java 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/util/RelativeTime.java 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -109,7 +109,7 @@
*
* @return min(this, other)
*/
- public RelativeTime min(RelativeTime t1, RelativeTime t2) {
+ public static RelativeTime min(RelativeTime t1, RelativeTime t2) {
return t1.rel_value <= t2.rel_value ? t1 : t2;
}
Modified: gnunet-java/src/org/gnunet/util/Resolver.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Resolver.java 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/util/Resolver.java 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -38,12 +38,13 @@
@UInt32
public int domain;
- @Union(tag="direction", optional = true)
+ @Union(tag = "direction", optional = true)
public AddressUnion addr;
}
-
- public static interface AddressUnion extends MessageUnion {}
+ public static interface AddressUnion extends MessageUnion {
+ }
+
@UnionCase(GetMessage.DIRECTION_GET_IP)
public static class TextualAddress implements AddressUnion {
@ZeroTerminatedString
@@ -57,9 +58,7 @@
public byte[] addr;
}
-
-
@MessageId(ResolverResponse.MSG_ID)
public static class ResolverResponse implements Message {
final static int MSG_ID = 5;
@@ -71,41 +70,13 @@
public static class ResponseBody implements Message {
- @UInt8
- public int domain;
- @UInt8
- public byte pad1;
- @UInt8
- public byte pad2;
- @UInt8
- public byte pad3;
@ByteFill
public byte[] addr;
-
- // xxx: direction does not seem to be transmitted
- // @Nested(union_on="direction")
- // AddressUnion address;
}
- /*
- public interface AddressUnion extends MessageUnion {
- }
- @UnionCase(value = 3)
- public static class AddressString implements AddressUnion {
- @ZeroTerminatedString
- public String addr;
- }
- @UnionCase(value = 45)
- public static class AddressBinary implements AddressUnion {
- @ByteFill
- public byte[] addr;
- }
- */
-
-
/* @Nullable */
public InetAddress getInet4AddressFromString(String ip) {
String[] components = ip.split(".");
@@ -183,6 +154,8 @@
public void onAddress(InetAddress addr);
public void onFinished();
+
+ void onTimeout();
}
@@ -219,8 +192,8 @@
client = new Client("resolver", cfg);
}
}
-
-
+
+
public void resolveReverse(InetAddress inAddr, RelativeTime timeout,
HostnameCallback cb) {
lazyConnect();
@@ -244,14 +217,12 @@
gmsg.addr = nAddr;
gmsg.header.messageSize = Construct.getSize(gmsg);
-
-
-
+
+
System.out.println("msgsize: " + gmsg.header.messageSize);
System.out.println("really: " + (Construct.toBinary(gmsg).length));
-
client.notifyTransmitReady(gmsg.header.messageSize, timeout, true, new
MessageTransmitter() {
@Override
public void transmit(Client.MessageSink sink) {
@@ -263,7 +234,6 @@
public void process(Message msg) {
System.out.println("receiving");
ResolverResponse resp = (ResolverResponse) msg;
- System.out.println(resp.responseBody.domain);
}
@Override
@@ -280,17 +250,46 @@
});
}
-
+ private InetAddress getInet4Localhost() {
+ try {
+ return InetAddress.getByAddress(new byte[]{127, 0, 0, 1});
+ } catch (UnknownHostException e) {
+ throw new RuntimeException();
+ }
+ }
+
+ private InetAddress getInet6Localhost() {
+ try {
+ return InetAddress.getByAddress(new byte[16]);
+ } catch (UnknownHostException e) {
+ throw new RuntimeException();
+ }
+ }
+
+
public void resolveHostname(String hostname, RelativeTime timeout, final
AddressCallback cb) {
// try if hostname is numeric IP or loopback
- InetAddress inetAddr = resolveHostnameLocal(hostname);
+ if (hostname.equalsIgnoreCase("localhost")) {
+ cb.onAddress(getInet6Localhost());
+ cb.onAddress(getInet4Localhost());
+ cb.onFinished();
+ return;
+ }
+ if (hostname.equalsIgnoreCase("ip6-localhost")) {
+ cb.onAddress(getInet6Localhost());
+ cb.onFinished();
+ return;
+ }
+
+ InetAddress inetAddr = getInetAddressFromString(hostname);
if (inetAddr != null) {
cb.onAddress(inetAddr);
cb.onFinished();
return;
}
+
lazyConnect();
final GetMessage req = new GetMessage();
@@ -306,12 +305,11 @@
req.header.messageSize = Construct.getSize(req);
- logger.debug("" + req.header.messageSize);
+ final AbsoluteTime deadline = timeout.toAbsolute();
-
client.notifyTransmitReady(
Construct.getSize(req),
- RelativeTime.FOREVER, true,
+ deadline.getRemaining(), true,
new MessageTransmitter() {
@Override
public void transmit(Client.MessageSink sink) {
@@ -324,15 +322,11 @@
if (gmsg.responseBody != null) {
try {
InetAddress in_addr;
- if (gmsg.responseBody.domain ==
GetMessage.AF_INET) {
- in_addr = InetAddress.getByAddress(
-
Arrays.copyOfRange(gmsg.responseBody.addr, 0, 4));
-
- } else if (gmsg.responseBody.domain ==
GetMessage.AF_INET6) {
- in_addr =
Inet6Address.getByAddress(
-
Arrays.copyOfRange(gmsg.responseBody.addr, 4, 20));
+ int len =
gmsg.responseBody.addr.length;
+ if (len == 4 || len == 16) {
+ in_addr =
InetAddress.getByAddress(gmsg.responseBody.addr);
} else {
- throw new
MessageFormatException("unknown AF_* domain");
+ throw new
MessageFormatException("malformed address message");
}
cb.onAddress(in_addr);
@@ -347,15 +341,17 @@
@Override
public void handleTimeout() {
- throw new RuntimeException("unreachable");
+ logger.debug("timeout in recv");
+ cb.onTimeout();
}
- }, RelativeTime.FOREVER);
+ }, deadline.getRemaining());
}
@Override
public void handleTimeout() {
- throw new RuntimeException("unreachable");
+ logger.debug("timeout in notifyTransmitReady");
+ cb.onTimeout();
}
});
@@ -381,33 +377,26 @@
@Override
public void run() {
if (isReverse) {
- try {
-
Resolver.getInstance().resolveReverse(Inet4Address.getByName("173.194.69.105"),
RelativeTime.FOREVER,
- new HostnameCallback() {
- @Override
- public void onHostname(String hostname) {
- }
-
- @Override
- public void onFinished() {
- }
- });
- } catch (UnknownHostException e) {
- throw new RuntimeException("bla");
- }
+ System.out.println("reverse lookup not supported");
} else {
resolve();
}
-
}
public void resolve() {
+ for (String s : unprocessedArgs) {
+ System.out.println(s);
+ }
+
+ final RelativeTime timeout = RelativeTime.SECOND;
+
if (unprocessedArgs.length == 0) {
System.out.println("no hostnames given");
} else {
System.out.println("resolving hostname '" +
unprocessedArgs[0] + "'");
- Resolver.getInstance().resolveHostname(unprocessedArgs[0],
RelativeTime.FOREVER, new AddressCallback() {
+ Resolver.getInstance().resolveHostname(unprocessedArgs[0],
timeout, new AddressCallback() {
int next = 1;
+
@Override
public void onAddress(InetAddress addr) {
System.out.println(addr);
@@ -418,10 +407,15 @@
System.out.println("done.");
if (unprocessedArgs.length > next) {
System.out.println("resolving hostname '" +
unprocessedArgs[next] + "'");
-
Resolver.getInstance().resolveHostname(unprocessedArgs[next],
RelativeTime.FOREVER, this);
+
Resolver.getInstance().resolveHostname(unprocessedArgs[next], timeout, this);
next++;
}
}
+
+ @Override
+ public void onTimeout() {
+ System.out.println("timed out");
+ }
});
}
Modified: gnunet-java/src/org/gnunet/util/getopt/Parser.java
===================================================================
--- gnunet-java/src/org/gnunet/util/getopt/Parser.java 2012-02-09 10:09:09 UTC
(rev 19736)
+++ gnunet-java/src/org/gnunet/util/getopt/Parser.java 2012-02-09 10:09:40 UTC
(rev 19737)
@@ -6,14 +6,25 @@
import java.lang.reflect.Modifier;
import java.util.*;
+/**
+ * Parser for command line options, in the format indicated by the
+ * annotated members of the target object's class.
+ */
+public class Parser {
-public class Parser {
+ /**
+ * An ArgumentError is thrown if the command line parameters do not match
their
+ * specification in the target object's class.
+ */
public static class ArgumentError extends RuntimeException {
public ArgumentError(String s) {
super(s);
}
}
+ /**
+ * An option together with its target field.
+ */
static class OptionField {
Option opt;
Field f;
@@ -40,6 +51,7 @@
private Object targetObject;
+
public Parser(Object targetObject) {
this.targetObject = targetObject;
// gather option annotations
@@ -87,6 +99,8 @@
return helpString.toString();
}
+
+
/**
* Parses the given arguments, and sets the target object's fields
* according to its annotations.
@@ -96,46 +110,57 @@
*/
public String[] parse(String[] args) {
// unprocessed positional args
- Deque<String> posArgs = new LinkedList<String>();
+ Deque<String> positionalArgs = new LinkedList<String>();
+ // current part of args that is being looked at
int p = 0;
while (p < args.length) {
// arguments after single "--" are all positional
if (args[p].equals("--")) {
- posArgs.addAll(Arrays.asList(args).subList(p + 1,
args.length));
+ positionalArgs.addAll(Arrays.asList(args).subList(p + 1,
args.length));
break;
}
-
+ // long args
if (args[p].startsWith("--")) {
+ // remove leading slashes
String longOptionString = args[p].substring(2);
+ // maybe it is in the format --opt=val
String[] components = longOptionString.split("=", 2);
OptionField of = longOpt.get(components[0]);
if (of == null) {
- throw new ArgumentError(String.format("unknown long
option: %s", args[p]));
+ throw new ArgumentError(String.format("unknown long
option: '%s'", components[0]));
}
+ Option option = of.opt;
+ Field field = of.f;
try {
+ Class targetFieldType = of.f.getType();
switch (of.opt.action()) {
case SET:
- if (!of.f.getType().equals(Boolean.TYPE)) {
+ if (!targetFieldType.equals(Boolean.TYPE)) {
throw new InterfaceViolationException("action
SET only valid on boolean member");
}
of.f.set(targetObject, true);
break;
case RESET:
- if (!of.f.getType().equals(Boolean.TYPE)) {
+ if (!targetFieldType.equals(Boolean.TYPE)) {
throw new InterfaceViolationException("action
RESET only valid on boolean member");
}
of.f.set(targetObject, true);
break;
case STORE_STRING:
- if (!of.f.getType().equals(String.class)) {
+ if (!targetFieldType.equals(String.class)) {
throw new InterfaceViolationException("action
STORE_STRING only valid on boolean member");
}
if (components.length == 1) {
- throw new ArgumentError("missing string
argument to option " + of.opt.longname());
+ p++;
+ if (p >= args.length) {
+ throw new ArgumentError("missing string
argument to option " + of.opt.longname());
+ }
+ of.f.set(targetObject, args[p]);
+ } else {
+ of.f.set(targetObject, components[1]);
}
- of.f.set(targetObject, components[1]);
break;
case STORE_INT:
throw new UnsupportedOperationException("not yet
implemented");
@@ -147,8 +172,10 @@
String.format("cannot acces member %s with @Option
annotation", of.f.getName()));
}
} else if (args[p].length() > 1 && args[p].startsWith("-")) {
+ SHORTOPT:
for (int i = 1; i < args[p].length(); ++i) {
- OptionField of = shortOpt.get(args[p].substring(i, i+1));
+ String optShortName =args[p].substring(i, i + 1);
+ OptionField of = shortOpt.get(optShortName);
if (of == null) {
throw new ArgumentError(String.format("unknown short
option: -%s", args[p].charAt(i)));
}
@@ -170,15 +197,19 @@
if (!of.f.getType().equals(String.class)) {
throw new
InterfaceViolationException("action STORE_STRING only valid on boolean member");
}
- if (i != 1 || args[p].length() != 2) {
- throw new ArgumentError("short options
with argument may not be combined");
+ if (i != 1) {
+ throw new ArgumentError("short options
with argument must be seperate");
}
- p++;
- if (args.length <= p) {
- throw new ArgumentError("missing string
argument to option -" + of.opt.shortname());
+ if (args[p].length() == 2) { // -X
+ p++;
+ if (p >= args.length) {
+ throw new
ArgumentError(String.format("no argument for short option '%s'", optShortName));
+ }
+ of.f.set(targetObject, args[p]);
+ } else {
+ of.f.set(targetObject,
args[p].substring(2)); // -Pxxx...
}
- of.f.set(targetObject, args[p]);
- break;
+ break SHORTOPT;
case STORE_INT:
throw new UnsupportedOperationException("not
yet implemented");
case INCREMENT:
@@ -190,13 +221,13 @@
}
}
} else {
- posArgs.add(args[p]);
+ positionalArgs.add(args[p]);
}
p++;
}
- return posArgs.toArray(new String[0]);
+ return positionalArgs.toArray(new String[positionalArgs.size()]);
}
}
Modified: gnunet-java/test/org/gnunet/construct/ConstructTest.java
===================================================================
--- gnunet-java/test/org/gnunet/construct/ConstructTest.java 2012-02-09
10:09:09 UTC (rev 19736)
+++ gnunet-java/test/org/gnunet/construct/ConstructTest.java 2012-02-09
10:09:40 UTC (rev 19737)
@@ -76,7 +76,6 @@
for (int i = 0; i < stm.mns.length; i++) {
Assert.assertEquals(stm.mns[i].value, stm2.mns[i].value);
-
}
}
Modified: gnunet-java/test/org/gnunet/services/ConfigUtil.java
===================================================================
--- gnunet-java/test/org/gnunet/services/ConfigUtil.java 2012-02-09
10:09:09 UTC (rev 19736)
+++ gnunet-java/test/org/gnunet/services/ConfigUtil.java 2012-02-09
10:09:40 UTC (rev 19737)
@@ -6,7 +6,7 @@
public class ConfigUtil {
static File copyConfigResource(String resName) {
- URL res = StatisticsServiceTest.class.getResource("nse.conf");
+ URL res = ConfigUtil.class.getResource(resName);
File tmpFile;
Modified:
gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java
===================================================================
--- gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java
2012-02-09 10:09:09 UTC (rev 19736)
+++ gnunet-java/test/org/gnunet/services/NetworkSizeEstimationServiceTest.java
2012-02-09 10:09:40 UTC (rev 19737)
@@ -1,7 +1,7 @@
package org.gnunet.services;
-import org.gnunet.service.NetworkSizeEstimation;
+import org.gnunet.nse.NetworkSizeEstimation;
import org.gnunet.util.AbsoluteTime;
import org.gnunet.util.Configuration;
import org.gnunet.util.Scheduler;
@@ -36,7 +36,8 @@
throw new IOError(e);
}
- Configuration cfg = new Configuration(tmpFile.getAbsolutePath());
+ Configuration cfg = new Configuration();
+ cfg.parse(tmpFile.getAbsolutePath());
NetworkSizeEstimation svc = new NetworkSizeEstimation(cfg);
Deleted: gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java
===================================================================
--- gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java
2012-02-09 10:09:09 UTC (rev 19736)
+++ gnunet-java/test/org/gnunet/services/StatisticsServiceTest.java
2012-02-09 10:09:40 UTC (rev 19737)
@@ -1,32 +0,0 @@
-package org.gnunet.services;
-
-
-public class StatisticsServiceTest {
-
-
-/*
- @Test
- public void test_1() {
-
-
- File tmpFile = ConfigUtil.copyConfigResource("statistics.conf");
-
- Process p;
- try {
- String[] cmd = {"gnunet-service-statistics", "-c",
tmpFile.getAbsolutePath()};
- p = Runtime.getRuntime().exec(cmd);
- } catch (IOException e) {
- throw new IOError(e);
- }
-
- Configuration cfg = new Configuration(tmpFile.getAbsolutePath());
-
-
-
- StatisticsService s = new StatisticsService(cfg);
-
- p.destroy();
- }
-
- */
-}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r19737 - in gnunet-java: . .idea .idea/inspectionProfiles .idea/libraries src src/org/gnunet src/org/gnunet/construct src/org/gnunet/nse src/org/gnunet/statistics src/org/gnunet/util src/org/gnunet/util/getopt test/org/gnunet/construct test/org/gnunet/services,
gnunet <=