Changeset 18


Ignore:
Timestamp:
06/11/20 16:34:40 (5 years ago)
Author:
bart
Message:

Update to version 1.41

Files:
2 added
41 edited

Legend:

Unmodified
Added
Removed
  • bidspace/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>bidspace</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1616                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1717                <jackson-2-version>2.9.10</jackson-2-version>
     18                <geniusweb.version>1.4.1</geniusweb.version>
    1819        </properties>
    1920
     
    3637                        <groupId>geniusweb</groupId>
    3738                        <artifactId>profile</artifactId>
    38                         <version>1.4.0</version>
     39                        <version>${geniusweb.version}</version>
    3940                </dependency>
    4041
     
    4243                        <groupId>tudelft.utilities</groupId>
    4344                        <artifactId>immutablelist</artifactId>
    44                         <version>1.0.1</version>
     45                        <version>1.1.0</version>
    4546                </dependency>
    4647
     
    103104                        <groupId>tudelft.utilities</groupId>
    104105                        <artifactId>junit</artifactId>
    105                         <version>1.0.1</version>
     106                        <version>1.0.3</version>
    106107                        <scope>test</scope>
    107108                </dependency>
  • events/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>events</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    4344                        <groupId>geniusweb</groupId>
    4445                        <artifactId>issuevalue</artifactId>
    45                         <version>1.4.0</version>
     46                        <version>${geniusweb.version}</version>
    4647                </dependency>
    4748                <dependency>
    4849                        <groupId>geniusweb</groupId>
    4950                        <artifactId>references</artifactId>
    50                         <version>1.4.0</version>
     51                        <version>${geniusweb.version}</version>
    5152                </dependency>
    5253
     
    108109                        <groupId>tudelft.utilities</groupId>
    109110                        <artifactId>junit</artifactId>
    110                         <version>1.0.2</version>
     111                        <version>1.0.3</version>
    111112                        <scope>test</scope>
    112113                </dependency>
  • exampleparties/anac2019/agentgg/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties.anac2019</groupId>
    77        <artifactId>agentgg</artifactId>
    8         <version>1.4,0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3233                        <groupId>geniusweb</groupId>
    3334                        <artifactId>issuevalue</artifactId>
    34                         <version>1.4.0</version>
     35                        <version>${geniusweb.version}</version>
    3536                </dependency>
    3637
     
    3839                        <groupId>geniusweb</groupId>
    3940                        <artifactId>party</artifactId>
    40                         <version>1.4.0</version>
     41                        <version>${geniusweb.version}</version>
    4142                </dependency>
    4243
     
    4445                        <groupId>geniusweb</groupId>
    4546                        <artifactId>bidspace</artifactId>
    46                         <version>1.4.0</version>
     47                        <version>${geniusweb.version}</version>
    4748                </dependency>
    4849                <dependency>
    4950                        <groupId>geniusweb</groupId>
    5051                        <artifactId>profileconnection</artifactId>
    51                         <version>1.4.0</version>
     52                        <version>${geniusweb.version}</version>
    5253                </dependency>
    5354                <dependency>
     
    5960                        <groupId>tudelft.utilities</groupId>
    6061                        <artifactId>immutablelist</artifactId>
    61                         <version>1.0.1</version>
     62                        <version>1.1.0</version>
    6263                </dependency>
    6364
  • exampleparties/anac2019/winkyagent/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties.anac2019</groupId>
    77        <artifactId>winkyagent</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3233                        <groupId>geniusweb</groupId>
    3334                        <artifactId>issuevalue</artifactId>
    34                         <version>1.4.0</version>
     35                        <version>${geniusweb.version}</version>
    3536                </dependency>
    3637
     
    3839                        <groupId>geniusweb</groupId>
    3940                        <artifactId>party</artifactId>
    40                         <version>1.4.0</version>
     41                        <version>${geniusweb.version}</version>
    4142                </dependency>
    4243
     
    4445                        <groupId>geniusweb</groupId>
    4546                        <artifactId>bidspace</artifactId>
    46                         <version>1.4.0</version>
     47                        <version>${geniusweb.version}</version>
    4748                </dependency>
    4849                <dependency>
    4950                        <groupId>geniusweb</groupId>
    5051                        <artifactId>profileconnection</artifactId>
    51                         <version>1.4.0</version>
     52                        <version>${geniusweb.version}</version>
    5253                </dependency>
    5354                <dependency>
     
    5960                        <groupId>tudelft.utilities</groupId>
    6061                        <artifactId>immutablelist</artifactId>
    61                         <version>1.0.1</version>
     62                        <version>1.1.0</version>
    6263                </dependency>
    6364
  • exampleparties/boulware/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>boulware</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb.exampleparties</groupId>
    3435                        <artifactId>timedependentparty</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    3637                </dependency>
    3738                <dependency>
  • exampleparties/comparebids/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>comparebids</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb</groupId>
    3435                        <artifactId>party</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738
     
    3940                        <groupId>geniusweb</groupId>
    4041                        <artifactId>bidspace</artifactId>
    41                         <version>1.4.0</version>
     42                        <version>${geniusweb.version}</version>
    4243                </dependency>
    4344                <dependency>
    4445                        <groupId>geniusweb</groupId>
    4546                        <artifactId>profileconnection</artifactId>
    46                         <version>1.4.0</version>
     47                        <version>${geniusweb.version}</version>
    4748                </dependency>
    4849                <dependency>
     
    5455                        <groupId>tudelft.utilities</groupId>
    5556                        <artifactId>immutablelist</artifactId>
    56                         <version>1.0.1</version>
     57                        <version>1.1.0</version>
    5758                </dependency>
    5859
  • exampleparties/conceder/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>conceder</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb.exampleparties</groupId>
    3435                        <artifactId>timedependentparty</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738                <dependency>
  • exampleparties/hardliner/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>hardliner</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb.exampleparties</groupId>
    3435                        <artifactId>timedependentparty</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738                <dependency>
  • exampleparties/humangui/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>humangui</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb</groupId>
    3435                        <artifactId>party</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738
     
    3940                        <groupId>geniusweb</groupId>
    4041                        <artifactId>bidspace</artifactId>
    41                         <version>1.4.0</version>
     42                        <version>${geniusweb.version}</version>
    4243                </dependency>
    4344                <dependency>
    4445                        <groupId>geniusweb</groupId>
    4546                        <artifactId>profileconnection</artifactId>
    46                         <version>1.4.0</version>
     47                        <version>${geniusweb.version}</version>
    4748                </dependency>
    4849                <dependency>
    4950                        <groupId>tudelft.utilities</groupId>
    5051                        <artifactId>immutablelist</artifactId>
    51                         <version>1.0.1</version>
     52                        <version>1.1.0</version>
    5253                </dependency>
    5354                <dependency>
  • exampleparties/linear/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>linear</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb.exampleparties</groupId>
    3435                        <artifactId>timedependentparty</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738                <dependency>
  • exampleparties/randomparty/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>randomparty</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb</groupId>
    3435                        <artifactId>party</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738
     
    3940                        <groupId>geniusweb</groupId>
    4041                        <artifactId>bidspace</artifactId>
    41                         <version>1.4.0</version>
     42                        <version>${geniusweb.version}</version>
    4243                </dependency>
    4344                <dependency>
    4445                        <groupId>geniusweb</groupId>
    4546                        <artifactId>profileconnection</artifactId>
    46                         <version>1.4.0</version>
     47                        <version>${geniusweb.version}</version>
    4748                </dependency>
    4849                <dependency>
     
    5455                        <groupId>tudelft.utilities</groupId>
    5556                        <artifactId>immutablelist</artifactId>
    56                         <version>1.0.1</version>
     57                        <version>1.1.0</version>
    5758                </dependency>
    5859
  • exampleparties/randompartypy/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>randompyparty</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>pythonadapter</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536
     
    3738                        <groupId>geniusweb</groupId>
    3839                        <artifactId>bidspace</artifactId>
    39                         <version>1.4.0</version>
     40                        <version>${geniusweb.version}</version>
    4041                </dependency>
    4142                <dependency>
    4243                        <groupId>geniusweb</groupId>
    4344                        <artifactId>profileconnection</artifactId>
    44                         <version>1.4.0</version>
     45                        <version>${geniusweb.version}</version>
    4546                </dependency>
    4647                <dependency>
    4748                        <groupId>tudelft.utilities</groupId>
    4849                        <artifactId>immutablelist</artifactId>
    49                         <version>1.0.1</version>
     50                        <version>1.1.0</version>
    5051                </dependency>
    5152
  • exampleparties/simpleshaop/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>simpleshaop</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb</groupId>
    3435                        <artifactId>party</artifactId>
    35                         <version>1.4.0</version>
     36                        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738
     
    3940                        <groupId>geniusweb</groupId>
    4041                        <artifactId>bidspace</artifactId>
    41                         <version>1.4.0</version>
     42                        <version>${geniusweb.version}</version>
    4243                </dependency>
    4344                <dependency>
    4445                        <groupId>geniusweb</groupId>
    4546                        <artifactId>profileconnection</artifactId>
    46                         <version>1.4.0</version>
     47                        <version>${geniusweb.version}</version>
    4748                </dependency>
    4849                <dependency>
     
    5455                        <groupId>tudelft.utilities</groupId>
    5556                        <artifactId>immutablelist</artifactId>
    56                         <version>1.0.1</version>
     57                        <version>1.1.0</version>
    5758                </dependency>
    5859
  • exampleparties/timedependentparty/pom.xml

    r14 r18  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>timedependentparty</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3334                        <groupId>geniusweb</groupId>
    3435                        <artifactId>party</artifactId>
    35                         <version>1.4.0</version>
     36        <version>${geniusweb.version}</version>
    3637                </dependency>
    3738
     
    3940                        <groupId>geniusweb</groupId>
    4041                        <artifactId>bidspace</artifactId>
    41                         <version>1.4.0</version>
     42        <version>${geniusweb.version}</version>
    4243                </dependency>
    4344                <dependency>
    4445                        <groupId>geniusweb</groupId>
    4546                        <artifactId>profileconnection</artifactId>
    46                         <version>1.4.0</version>
     47        <version>${geniusweb.version}</version>
    4748                </dependency>
    4849                <dependency>
     
    5455                        <groupId>tudelft.utilities</groupId>
    5556                        <artifactId>immutablelist</artifactId>
    56                         <version>1.0.1</version>
     57                        <version>1.1.0</version>
    5758                </dependency>
    5859
  • exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java

    r10 r18  
    7070                                this.me = settings.getID();
    7171                                this.progress = settings.getProgress();
    72                                 Object newe = settings.getParemeters().get("e");
     72                                Object newe = settings.getParameters().get("e");
    7373                                if (newe != null) {
    7474                                        if (newe instanceof Double) {
  • issuevalue/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>issuevalue</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    8687                        <groupId>tudelft.utilities</groupId>
    8788                        <artifactId>junit</artifactId>
    88                         <version>1.0.2</version>
     89                        <version>1.0.3</version>
    8990                        <scope>test</scope>
    9091                </dependency>
     
    9293                        <groupId>tudelft.utilities</groupId>
    9394                        <artifactId>immutablelist</artifactId>
    94                         <version>1.0.1</version>
     95                        <version>1.1.0</version>
    9596                </dependency>
    9697
  • opponentmodel/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>opponentmodel</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>issuevalue</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536                <dependency>
    3637                        <groupId>geniusweb</groupId>
    3738                        <artifactId>profile</artifactId>
    38                         <version>1.4.0</version>
     39                        <version>${geniusweb.version}</version>
    3940                </dependency>
    4041                <dependency>
    4142                        <groupId>geniusweb</groupId>
    4243                        <artifactId>references</artifactId>
    43                         <version>1.4.0</version>
     44                        <version>${geniusweb.version}</version>
     45                </dependency>
     46                <dependency>
     47                        <groupId>geniusweb</groupId>
     48                        <artifactId>events</artifactId>
     49                        <version>${geniusweb.version}</version>
     50                </dependency>
     51                <dependency>
     52                        <groupId>geniusweb</groupId>
     53                        <artifactId>timeline</artifactId>
     54                        <version>${geniusweb.version}</version>
    4455                </dependency>
    4556
  • opponentmodel/src/main/java/geniusweb/opponentmodel/FrequencyOpponentModel.java

    r14 r18  
    66import java.util.stream.Collectors;
    77
     8import geniusweb.actions.Action;
     9import geniusweb.actions.Offer;
    810import geniusweb.issuevalue.Bid;
    911import geniusweb.issuevalue.Domain;
     
    1214import geniusweb.profile.utilityspace.NumberValueSetUtilities;
    1315import geniusweb.profile.utilityspace.UtilitySpace;
     16import geniusweb.progress.Progress;
    1417
    1518/**
     
    2326 *
    2427 */
    25 public class FrequencyOpponentModel implements OpponentModel, UtilitySpace {
     28public class FrequencyOpponentModel implements UtilitySpace, OpponentModel {
    2629
    2730        private static final int DECIMALS = 4; // accuracy of our computations.
     
    3235
    3336        public FrequencyOpponentModel(Domain domain) {
    34                 // map with empth hashmap for each issue.
     37                /*
     38                 * simply reset the whole model and make a new one... maybe this can be
     39                 * done smarter for minor changes? map with empth hashmap for each
     40                 * issue.
     41                 */
    3542                this(domain,
    3643                                domain.getIssues().stream().collect(
     
    3946        }
    4047
     48        /**
     49         * internal constructor. Assumes the freqs keyset is equal to the available
     50         * issues.
     51         *
     52         * @param domain the domain
     53         * @param freqs  the observed frequencies for all issue values. This map is
     54         *               assumed to be a fresh private-access only copy.
     55         * @param total  the total number of bids contained in the freqs map. This
     56         *               must be equal to the sum of the Integer values in the
     57         *               {@link #bidFrequencies} for each issue (this is not
     58         *               checked).
     59         */
     60        private FrequencyOpponentModel(Domain domain,
     61                        Map<String, Map<Value, Integer>> freqs, BigDecimal total) {
     62                if (domain == null) {
     63                        throw new NullPointerException("domain=null");
     64                }
     65                this.domain = domain;
     66                this.bidFrequencies = freqs;
     67                this.totalBids = total;
     68        }
     69
    4170        @Override
    4271        public BigDecimal getUtility(Bid bid) {
     
    86115        }
    87116
    88         @Override
    89         public FrequencyOpponentModel update(Bid bid) {
     117        /**
     118         * {@inheritDoc}
     119         *
     120         * <h1>change info</h1> This replaces update(Bid). Now you pass the entire
     121         * action and the progress instead of just the bid.
     122         */
     123        @Override
     124        public FrequencyOpponentModel with(Action action, Progress progress) {
     125                if (!(action instanceof Offer))
     126                        return this;
     127
     128                Bid bid = ((Offer) action).getBid();
    90129                String err = domain.isComplete(bid);
    91130                if (err != null) {
     
    108147
    109148        /**
    110          * internal constructor. Assumes the freqs keyset is equal to the available
    111          * issues.
    112          *
    113          * @param domain the domain
    114          * @param freqs  the observed frequencies for all issue values. This map is
    115          *               assumed to be a fresh private-access only copy.
    116          * @param total  the total number of bids contained in the freqs map. This
    117          *               must be equal to the sum of the Integer values in the
    118          *               {@link #bidFrequencies} for each issue (this is not
    119          *               checked).
    120          */
    121         private FrequencyOpponentModel(Domain domain,
    122                         Map<String, Map<Value, Integer>> freqs, BigDecimal total) {
    123                 if (domain == null) {
    124                         throw new NullPointerException("domain=null");
    125                 }
    126                 this.domain = domain;
    127                 this.bidFrequencies = freqs;
    128                 this.totalBids = total;
    129         }
    130 
    131         /**
    132149         *
    133150         * @param freqs
     
    141158                }
    142159                return map;
     160        }
     161
     162        @Override
     163        public Bid getReservationBid() {
     164                // don't throw but we really have no clue.
     165                return new Bid(new HashMap<>());
    143166        }
    144167
     
    188211        }
    189212
    190         @Override
    191         public Bid getReservationBid() {
    192                 throw new UnsupportedOperationException();
    193         }
    194 
    195213}
  • opponentmodel/src/main/java/geniusweb/opponentmodel/OpponentModel.java

    r14 r18  
    11package geniusweb.opponentmodel;
    22
    3 import geniusweb.issuevalue.Bid;
     3import geniusweb.actions.Action;
     4import geniusweb.issuevalue.Domain;
    45import geniusweb.profile.Profile;
    56import geniusweb.profile.utilityspace.UtilitySpace;
     7import geniusweb.progress.Progress;
    68
    79/**
    810 * An opponentmodel estimates a {@link UtilitySpace} from received opponent
    9  * bids.
     11 * actions.
     12 * <h1>Requirement</h1> A OpponentModel must have a constructor that takes the
     13 * Domain as argument. unfortunately this can not be enforced in a java
     14 * interface
    1015 */
    1116public interface OpponentModel extends Profile {
     17
    1218        /**
    13          *
    14          * @param bid the next bid that was received
    15          * @return a new {@link OpponentModel} that takes the next bid into account.
     19         * Update this with a new action that was done by the opponent that this
     20         * model is modeling. {@link #with(Domain)} must be called before calling
     21         * this.
     22         *
     23         * @param action   the new incoming action.
     24         * @param progress the current progress of the negotiation. Calls to this
     25         *                 must be done with increasing progress.
     26         * @return the updated {@link OpponentModel}
    1627         */
    17         OpponentModel update(Bid bid);
     28        OpponentModel with(Action action, Progress progress);
    1829
    1930}
  • opponentmodel/src/test/java/geniusweb/profile/opponentmodel/FrequencyOppModelTest.java

    r14 r18  
    33import static org.junit.Assert.assertEquals;
    44import static org.junit.Assert.assertTrue;
     5import static org.mockito.Mockito.mock;
    56
    67import java.math.BigDecimal;
     
    1415import org.junit.Test;
    1516
     17import geniusweb.actions.Offer;
     18import geniusweb.actions.PartyId;
    1619import geniusweb.issuevalue.Bid;
    1720import geniusweb.issuevalue.DiscreteValue;
     
    2326import geniusweb.issuevalue.ValueSet;
    2427import geniusweb.opponentmodel.FrequencyOpponentModel;
     28import geniusweb.progress.Progress;
    2529import tudelft.utilities.junit.GeneralTests;
    2630
     
    3236        private static final DiscreteValue I1V2 = new DiscreteValue("i1v2");
    3337        private static final DiscreteValue I1V2b = new DiscreteValue("i1v2b");
     38        private static final Progress progress = mock(Progress.class);
     39        private static final PartyId other = new PartyId("other");
    3440
    3541        private static Domain domain, domain2, domain3;
     
    8591                oppModel2 = new FrequencyOpponentModel(domain2);
    8692                oppModel3 = new FrequencyOpponentModel(domain3);
    87                 oppModel4 = (FrequencyOpponentModel) oppModel3.update(bid1);
     93                oppModel4 = oppModel3.with(new Offer(other, bid1), progress);
    8894
    8995        }
     
    106112
    107113        @Test(expected = NullPointerException.class)
    108         public void smokeNullTest() {
     114        public void smokeTestNull() {
    109115                new FrequencyOpponentModel(null);
    110116        }
     
    124130        @Test
    125131        public void testUpdate() {
    126                 FrequencyOpponentModel oppModel = oppModel1.update(bid1);
     132                FrequencyOpponentModel oppModel = oppModel1.with(new Offer(other, bid1),
     133                                progress);
    127134                assertTrue(BigDecimal.ONE.compareTo(oppModel.getUtility(bid1)) == 0);
    128135                assertTrue(BigDecimal.ZERO.compareTo(oppModel.getUtility(bid3)) == 0);
     
    135142                // bid1 and bid2 both want I1V1. They differ on the number value.
    136143                // bid3 wants I1V2 but does have the number value from bid2
    137                 FrequencyOpponentModel oppModel = oppModel1.update(bid1).update(bid2);
     144                FrequencyOpponentModel oppModel = oppModel1
     145                                .with(new Offer(other, bid1), progress)
     146                                .with(new Offer(other, bid2), progress);
    138147                assertTrue(new BigDecimal("0.75")
    139148                                .compareTo(oppModel.getUtility(bid1)) == 0);
  • party/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>party</artifactId>
    8                         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>timeline</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536                <dependency>
    3637                        <groupId>geniusweb</groupId>
    3738                        <artifactId>profile</artifactId>
    38                         <version>1.4.0</version>
     39                        <version>${geniusweb.version}</version>
    3940                </dependency>
    4041                <dependency>
    4142                        <groupId>geniusweb</groupId>
    4243                        <artifactId>events</artifactId>
    43                         <version>1.4.0</version>
     44                        <version>${geniusweb.version}</version>
    4445                </dependency>
    4546                <dependency>
    4647                        <groupId>geniusweb</groupId>
    4748                        <artifactId>references</artifactId>
    48                         <version>1.4.0</version>
     49                        <version>${geniusweb.version}</version>
    4950                </dependency>
    5051                <dependency>
     
    116117                        <groupId>tudelft.utilities</groupId>
    117118                        <artifactId>junit</artifactId>
    118                         <version>1.0.2</version>
     119                        <version>1.0.3</version>
    119120                        <scope>test</scope>
    120121                </dependency>
  • party/src/main/java/geniusweb/party/inform/Settings.java

    r8 r18  
    8989         *         that can be used by the party.
    9090         */
    91         public HashMap<String, Object> getParemeters() {
     91        public HashMap<String, Object> getParameters() {
    9292                return parameters;
    9393        }
  • profile/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>profile</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>issuevalue</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536                <dependency>
    3637                        <groupId>geniusweb</groupId>
    3738                        <artifactId>references</artifactId>
    38                         <version>1.4.0</version>
     39                        <version>${geniusweb.version}</version>
     40                </dependency>
     41                <dependency>
     42                        <groupId>tudelft.utilities</groupId>
     43                        <artifactId>immutablelist</artifactId>
     44                        <version>1.1.0</version>
    3945                </dependency>
    4046
     
    8490                        <groupId>tudelft.utilities</groupId>
    8591                        <artifactId>junit</artifactId>
    86                         <version>1.0.2</version>
     92                        <version>1.0.3</version>
    8793                        <scope>test</scope>
    8894                </dependency>
  • profileconnection/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>profileconnection</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>profile</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536
  • protocol/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>protocol</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>profile</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536                <dependency>
    3637                        <groupId>geniusweb</groupId>
    3738                        <artifactId>party</artifactId>
    38                         <version>1.4.0</version>
     39                        <version>${geniusweb.version}</version>
    3940                </dependency>
    4041                <dependency>
    4142                        <groupId>geniusweb</groupId>
    4243                        <artifactId>references</artifactId>
    43                         <version>1.4.0</version>
     44                        <version>${geniusweb.version}</version>
    4445                </dependency>
    4546                <dependency>
    4647                        <groupId>geniusweb</groupId>
    4748                        <artifactId>events</artifactId>
    48                         <version>1.4.0</version>
     49                        <version>${geniusweb.version}</version>
    4950                </dependency>
    5051                <dependency>
    5152                        <groupId>tudelft.utilities</groupId>
    5253                        <artifactId>immutablelist</artifactId>
    53                         <version>1.0.1</version>
     54                        <version>1.1.0</version>
    5455                </dependency>
    5556                <dependency>
  • protocol/src/main/java/geniusweb/protocol/session/shaop/BareSHAOPState.java

    r11 r18  
    2222 */
    2323public abstract class BareSHAOPState implements SessionState {
     24
    2425        protected final List<Action> actions;
    2526
     
    167168        }
    168169
     170        @Override
     171        public int hashCode() {
     172                final int prime = 31;
     173                int result = 1;
     174                result = prime * result + ((actions == null) ? 0 : actions.hashCode());
     175                result = prime * result + ((error == null) ? 0 : error.hashCode());
     176                result = prime * result
     177                                + ((partyNumbers == null) ? 0 : partyNumbers.hashCode());
     178                result = prime * result
     179                                + ((progress == null) ? 0 : progress.hashCode());
     180                result = prime * result
     181                                + ((settings == null) ? 0 : settings.hashCode());
     182                result = prime * result + teamNr;
     183                result = prime * result
     184                                + ((totalSpent == null) ? 0 : totalSpent.hashCode());
     185                return result;
     186        }
     187
     188        @Override
     189        public boolean equals(Object obj) {
     190                if (this == obj)
     191                        return true;
     192                if (obj == null)
     193                        return false;
     194                if (getClass() != obj.getClass())
     195                        return false;
     196                BareSHAOPState other = (BareSHAOPState) obj;
     197                if (actions == null) {
     198                        if (other.actions != null)
     199                                return false;
     200                } else if (!actions.equals(other.actions))
     201                        return false;
     202                if (error == null) {
     203                        if (other.error != null)
     204                                return false;
     205                } else if (!error.equals(other.error))
     206                        return false;
     207                if (partyNumbers == null) {
     208                        if (other.partyNumbers != null)
     209                                return false;
     210                } else if (!partyNumbers.equals(other.partyNumbers))
     211                        return false;
     212                if (progress == null) {
     213                        if (other.progress != null)
     214                                return false;
     215                } else if (!progress.equals(other.progress))
     216                        return false;
     217                if (settings == null) {
     218                        if (other.settings != null)
     219                                return false;
     220                } else if (!settings.equals(other.settings))
     221                        return false;
     222                if (teamNr != other.teamNr)
     223                        return false;
     224                if (totalSpent == null) {
     225                        if (other.totalSpent != null)
     226                                return false;
     227                } else if (!totalSpent.equals(other.totalSpent))
     228                        return false;
     229                return true;
     230        }
     231
    169232}
  • protocol/src/main/java/geniusweb/protocol/session/shaop/SHAOP.java

    r11 r18  
    5050 * party of this type can execute a RequestComparison(userid) action, which
    5151 * increases the total bother with the elicitationcost. The call results in the
    52  * associated COB party to execute a Comparison action.
     52 * associated COB party to execute a Comparison action. If this parameter is not
     53 * set, the {@link SHAOPState#DEFAULT_ELICITATATION_COST} is used.
    5354 * <p>
    5455 * A SHAOP party keeps the turn until it does an action that is not a
     
    5859 * <p>
    5960 * The Comparison/ComparisonTest actions are private between the
    60  * {@link ShaopTeam}. A SHAOP party can do a {@link ElicitComparison} action
    61  * at any time. These actions are completely transparent to the other parties
    62  * and are not dependent or influencing the normal turn taking.
     61 * {@link ShaopTeam}. A SHAOP party can do a {@link ElicitComparison} action at
     62 * any time. These actions are completely transparent to the other parties and
     63 * are not dependent or influencing the normal turn taking.
    6364 */
    6465public class SHAOP extends DefaultListenable<ProtocolEvent>
     
    162163                        ProtocolToPartyConnFactory connectionfactory)
    163164                        throws InterruptedException, IOException {
    164                 List<PartyWithProfile> participants = state.getSettings()
    165                                 .getTeams().stream().map(team -> team.getAllParties())
     165                List<PartyWithProfile> participants = state.getSettings().getTeams()
     166                                .stream().map(team -> team.getAllParties())
    166167                                .flatMap(List::stream).collect(Collectors.toList());
    167168                List<Reference> parties = participants.stream()
  • protocol/src/main/java/geniusweb/protocol/session/shaop/SHAOPState.java

    r11 r18  
    3030public class SHAOPState extends BareSHAOPState {
    3131
    32         private static final double DEFAULT_ELICITATATION_COST = 0.1d;
     32        public static final double DEFAULT_ELICITATATION_COST = 0.01d;
    3333
    3434        /**
     
    277277                        // shaop party does real action, move to next SHAOP party.
    278278                        newTeam = (teamNr + 1) % settings.getTeams().size();
    279                         if (newprogress instanceof ProgressRounds) {
     279                        // check if we completed a round
     280                        if (newprogress instanceof ProgressRounds && newTeam == 0) {
    280281                                newprogress = ((ProgressRounds) newprogress).advance();
     282                                System.out.println("Progressed rounds " + newprogress
     283                                                + " after action " + action + "");
    281284                        }
    282285                }
  • protocol/src/main/java/geniusweb/protocol/tournament/allpermutations/AllPermutationsSettings.java

    r16 r18  
    11package geniusweb.protocol.tournament.allpermutations;
    22
     3import java.math.BigInteger;
    34import java.util.Collections;
    45import java.util.List;
     6import java.util.function.BiFunction;
    57
    68import com.fasterxml.jackson.annotation.JsonCreator;
     
    1719import geniusweb.references.PartyWithProfile;
    1820import tudelft.utilities.immutablelist.FixedList;
    19 import tudelft.utilities.immutablelist.Function2;
    2021import tudelft.utilities.immutablelist.ImmutableList;
    2122import tudelft.utilities.immutablelist.MapList;
     
    2526import tudelft.utilities.immutablelist.PermutationsWithReturn;
    2627import tudelft.utilities.immutablelist.PermutationsWithoutReturn;
     28import tudelft.utilities.immutablelist.Repeat;
    2729import tudelft.utilities.immutablelist.Tuple;
    2830import tudelft.utilities.immutablelist.Tuples;
     
    5658public class AllPermutationsSettings implements TournamentSettings {
    5759
    58         public static final String COB_PARTY = "comparebids-1.2.0";
    5960        private final List<Team> teams;
    6061        private final List<ProfileList> profileslists;
     
    6263        private final int teamsPerSession;
    6364        private final SessionSettings sessionsettings;
     65        private final int numberTournaments;
    6466
    6567        /**
    6668         *
    67          * @param teams           a list of {@link Team}s. Must contain at least
    68          *                        {@link #teamsPerSession} elements. The <teamsize>
    69          *                        must match the protocol: (SAOP:1, SHAOP:2)
    70          * @param reuseTeams      if true, we use PermutationsWithReturn, if false
    71          *                        we use PermutationsWithoutReturn to create the
    72          *                        teams.
    73          * @param plists          list of available {@link ProfileList}s to be
    74          *                        permutated over the teams. Each
    75          *                        {@link ProfileList} must contain <teamsize>
    76          *                        elements.
    77          * @param teamsPerSession number of parties per session, must be at least 2.
    78          * @param sesettings      The generic {@link SessionSetting}.
    79          *                        {@link SessionSettings#with(PartyWithProfile)}
    80          *                        will be used to add the required
    81          *                        {@link PartyWithProfile}s
     69         * @param teams             a list of {@link Team}s. Must contain at least
     70         *                          {@link #teamsPerSession} elements. The
     71         *                          <teamsize> must match the protocol: (SAOP:1,
     72         *                          SHAOP:2)
     73         * @param reuseTeams        if true, we use PermutationsWithReturn, if false
     74         *                          we use PermutationsWithoutReturn to create the
     75         *                          teams.
     76         * @param plists            list of available {@link ProfileList}s to be
     77         *                          permutated over the teams. Each
     78         *                          {@link ProfileList} must contain <teamsize>
     79         *                          elements.
     80         * @param teamsPerSession   number of parties per session, must be at least
     81         *                          2.
     82         * @param sesettings        The generic {@link SessionSetting}.
     83         *                          {@link SessionSettings#with(PartyWithProfile)}
     84         *                          will be used to add the required
     85         *                          {@link PartyWithProfile}s
     86         * @param numberTournaments the number of times the tournament should be
     87         *                          run.
    8288         */
    8389        @JsonCreator
     
    8692                        @JsonProperty("reuseTeams") boolean reuseTeams,
    8793                        @JsonProperty("teamsPerSession") int teamsPerSession,
    88                         @JsonProperty("sessionsettings") SessionSettings sesettings) {
     94                        @JsonProperty("sessionsettings") SessionSettings sesettings,
     95                        @JsonProperty("numberTournaments") int nTournaments) {
    8996                if (teamsPerSession < 2)
    9097                        throw new IllegalArgumentException("teamsPerSession must be >=2");
     
    96103                                        "profileslist must contain at least " + teamsPerSession
    97104                                                        + " ProfileList's");
     105                if (nTournaments <= 0)
     106                        throw new IllegalArgumentException("nTournaments must be >0");
    98107                int teamsize;
    99108                if (sesettings instanceof SAOPSettings)
     
    117126                                                                + teamsize + " but found "
    118127                                                                + profile.getProfiles().size());
    119 
    120128                        }
    121129                }
     
    125133                this.profileslists = plists;
    126134                this.sessionsettings = sesettings;
     135                this.numberTournaments = nTournaments;
    127136        }
    128137
     
    159168                return "AllPermutationsSettings[" + teams + "," + reuseTeams + ","
    160169                                + profileslists + "," + teamsPerSession + "," + sessionsettings
    161                                 + "]";
     170                                + "," + numberTournaments + "]";
    162171        }
    163172
     
    166175                final int prime = 31;
    167176                int result = 1;
    168                 result = prime * result + ((teams == null) ? 0 : teams.hashCode());
    169                 result = prime * result + teamsPerSession;
     177                result = prime * result + numberTournaments;
    170178                result = prime * result
    171179                                + ((profileslists == null) ? 0 : profileslists.hashCode());
     
    173181                result = prime * result
    174182                                + ((sessionsettings == null) ? 0 : sessionsettings.hashCode());
     183                result = prime * result + ((teams == null) ? 0 : teams.hashCode());
     184                result = prime * result + teamsPerSession;
    175185                return result;
    176186        }
     
    185195                        return false;
    186196                AllPermutationsSettings other = (AllPermutationsSettings) obj;
     197                if (numberTournaments != other.numberTournaments)
     198                        return false;
     199                if (profileslists == null) {
     200                        if (other.profileslists != null)
     201                                return false;
     202                } else if (!profileslists.equals(other.profileslists))
     203                        return false;
     204                if (reuseTeams != other.reuseTeams)
     205                        return false;
     206                if (sessionsettings == null) {
     207                        if (other.sessionsettings != null)
     208                                return false;
     209                } else if (!sessionsettings.equals(other.sessionsettings))
     210                        return false;
    187211                if (teams == null) {
    188212                        if (other.teams != null)
     
    191215                        return false;
    192216                if (teamsPerSession != other.teamsPerSession)
    193                         return false;
    194                 if (profileslists == null) {
    195                         if (other.profileslists != null)
    196                                 return false;
    197                 } else if (!profileslists.equals(other.profileslists))
    198                         return false;
    199                 if (reuseTeams != other.reuseTeams)
    200                         return false;
    201                 if (sessionsettings == null) {
    202                         if (other.sessionsettings != null)
    203                                 return false;
    204                 } else if (!sessionsettings.equals(other.sessionsettings))
    205217                        return false;
    206218                return true;
     
    251263                                partiesPermutations, profilesPermutations);
    252264
    253                 return new MapList<Tuple<ImmutableList<Team>, ImmutableList<ProfileList>>, ImmutableList<TeamOfPartiesAndProfiles>>(
     265                MapList<Tuple<ImmutableList<Team>, ImmutableList<ProfileList>>, ImmutableList<TeamOfPartiesAndProfiles>> tournamentsettings = new MapList<Tuple<ImmutableList<Team>, ImmutableList<ProfileList>>, ImmutableList<TeamOfPartiesAndProfiles>>(
    254266                                tuple -> teamlist(tuple), tuples);
     267                return new Repeat<ImmutableList<TeamOfPartiesAndProfiles>>(
     268                                tournamentsettings, BigInteger.valueOf(numberTournaments),
     269                                true);
    255270        }
    256271
     
    264279        private ImmutableList<TeamOfPartiesAndProfiles> teamlist(
    265280                        Tuple<ImmutableList<Team>, ImmutableList<ProfileList>> tuple) {
    266                 Function2<Team, ProfileList, TeamOfPartiesAndProfiles> makeparty = new Function2<Team, ProfileList, TeamOfPartiesAndProfiles>() {
     281                BiFunction<Team, ProfileList, TeamOfPartiesAndProfiles> makeparty = new BiFunction<Team, ProfileList, TeamOfPartiesAndProfiles>() {
    267282                        @Override
    268283                        public TeamOfPartiesAndProfiles apply(Team team,
     
    288303        }
    289304
    290 //      /**
    291 //       * Extract the raw URL, without the part after the question mark
    292 //       *
    293 //       * @param party   a party reference (for another party)
    294 //       * @param profile a profile that may have a filter like "?partial=XX"
    295 //       * @return profile without the filter and with a cob party on the same
    296 //       *         machine. IT IS ASSUMED that there will the default
    297 //       *         "comparebids-1.0.0" party on the same machine as where the other
    298 //       *         party is
    299 //       */
    300 //      protected static PartyWithProfile makeCob(PartyRef party,
    301 //                      ProfileRef profile) {
    302 //              try {
    303 //                      URI profileuri = profile.getURI();
    304 //                      URI partyuri = party.getURI();
    305 //                      ProfileRef cobprof = new ProfileRef(profileuri.getScheme() + "://"
    306 //                                      + profileuri.getAuthority() + profileuri.getPath());
    307 //                      String partypath = partyuri.getPath();
    308 //                      partypath = partypath.substring(0, partypath.lastIndexOf('/'));
    309 //                      PartyWithParameters cobparty = new PartyWithParameters(new PartyRef(
    310 //                                      partyuri.getScheme() + "://" + partyuri.getAuthority()
    311 //                                                      + partypath + "/" + COB_PARTY),
    312 //                                      new Parameters());
    313 //                      return new PartyWithProfile(cobparty, cobprof);
    314 //
    315 //              } catch (URISyntaxException e) {
    316 //                      throw new IllegalArgumentException(
    317 //                                      "Failed making cob party with profile " + profile, e);
    318 //              }
    319 //      }
    320 
    321305}
  • protocol/src/test/java/geniusweb/protocol/tournament/allpermutations/AllPermutationsSettingsTest.java

    r14 r18  
    3232        private final ObjectMapper jackson = new ObjectMapper();
    3333
    34         private final String serialized = "{\"AllPermutationsSettings\":{\"teams\":[{\"Team\":[{\"partyref\":\"party1\",\"parameters\":{}}]},{\"Team\":[{\"partyref\":\"party2\",\"parameters\":{}}]}],\"profileslists\":[{\"ProfileList\":[\"profile1\"]},{\"ProfileList\":[\"profile2\"]},{\"ProfileList\":[\"profile3\"]}],\"reuseTeams\":false,\"teamsPerSession\":2,\"sessionsettings\":{\"SAOPSettings\":{\"participants\":[],\"deadline\":{\"deadlinetime\":{\"durationms\":10000}}}}}}";
     34        private final String serialized = "{\"AllPermutationsSettings\":{\"teams\":[{\"Team\":[{\"partyref\":\"party1\",\"parameters\":{}}]},{\"Team\":[{\"partyref\":\"party2\",\"parameters\":{}}]}],\"profileslists\":[{\"ProfileList\":[\"profile1\"]},{\"ProfileList\":[\"profile2\"]},{\"ProfileList\":[\"profile3\"]}],\"reuseTeams\":false,\"teamsPerSession\":2,\"sessionsettings\":{\"SAOPSettings\":{\"participants\":[],\"deadline\":{\"deadlinetime\":{\"durationms\":10000}}}},\"numberTournaments\":1}}";
    3535        private AllPermutationsSettings settings, settings1a, settings2, settings3,
    36                         settings4;
     36                        settings4, settings5;
    3737
    3838        // use directly because there is some hard coding currently.
     
    7676
    7777                settings = new AllPermutationsSettings(parties, profiles, false, 2,
    78                                 saopsettings);
     78                                saopsettings, 1);
    7979
    8080                settings1a = new AllPermutationsSettings(parties, profiles, false, 2,
    81                                 saopsettings);
     81                                saopsettings, 1);
    8282
    8383                settings2 = new AllPermutationsSettings(Arrays.asList(partywithparams1,
    8484                                partywithparams2, partywithparams3), profiles, false, 2,
    85                                 saopsettings);
     85                                saopsettings, 1);
    8686
    8787                settings3 = new AllPermutationsSettings(parties, profiles, true, 2,
    88                                 saopsettings);
     88                                saopsettings, 1);
    8989
    9090                settings4 = new AllPermutationsSettings(parties,
    9191                                Arrays.asList(profiles1, profiles2, profiles3, profiles1),
    92                                 false, 2, saopsettings);
     92                                false, 2, saopsettings, 1);
     93
     94                settings5 = new AllPermutationsSettings(parties, profiles, false, 2,
     95                                saopsettings, 2);
    9396
    9497        }
     
    98101                return Arrays.asList(Arrays.asList(settings, settings1a),
    99102                                Arrays.asList(settings2), Arrays.asList(settings3),
    100                                 Arrays.asList(settings4));
     103                                Arrays.asList(settings4), Arrays.asList(settings5));
    101104        }
    102105
     
    104107        public List<String> getGeneralTestStrings() {
    105108                return Arrays.asList(
    106                                 "AllPermutationsSettings.*party1.*party2.*,false,.*profile1.*profile2.*profile3.*,2,SAOPSettings.*",
    107                                 "AllPermutationsSettings.*party1.*party2.*party3.*,false,.*profile1.*profile2.*profile3.*,2,SAOPSettings.*",
    108                                 "AllPermutationsSettings.*party1.*party2.*,true,.*profile1.*profile2.*profile3.*,2,SAOPSettings.*",
    109                                 "AllPermutationsSettings.*party1.*party2.*,false,.*profile1.*profile2.*profile3.*profile1.*,2,SAOPSettings.*");
     109                                "AllPermutationsSettings.*party1.*party2.*,false,.*profile1.*profile2.*profile3.*,2,SAOPSettings.*1.*",
     110                                "AllPermutationsSettings.*party1.*party2.*party3.*,false,.*profile1.*profile2.*profile3.*,2,SAOPSettings.*1.*",
     111                                "AllPermutationsSettings.*party1.*party2.*,true,.*profile1.*profile2.*profile3.*,2,SAOPSettings.*1.*",
     112                                "AllPermutationsSettings.*party1.*party2.*,false,.*profile1.*profile2.*profile3.*profile1.*,2,SAOPSettings.*1.*",
     113                                "AllPermutationsSettings.*party1.*party2.*,false,.*profile1.*profile2.*profile3.*,2,SAOPSettings.*2.*");
    110114        }
    111115
     
    137141                new AllPermutationsSettings(null,
    138142                                Arrays.asList(profiles1, profiles2, profiles3, profiles1), true,
    139                                 2, saopsettings);
     143                                2, saopsettings, 1);
    140144
    141145        }
     
    145149                new AllPermutationsSettings(Collections.emptyList(),
    146150                                Arrays.asList(profiles1, profiles2, profiles3, profiles1), true,
    147                                 2, saopsettings);
     151                                2, saopsettings, 1);
    148152
    149153        }
     
    151155        @Test(expected = IllegalArgumentException.class)
    152156        public void testNullProfiles() {
    153                 new AllPermutationsSettings(parties, null, true, 2, saopsettings);
     157                new AllPermutationsSettings(parties, null, true, 2, saopsettings, 1);
    154158
    155159        }
     
    159163                new AllPermutationsSettings(parties,
    160164                                Arrays.asList(profiles1, profiles2, profiles3, profiles1), true,
    161                                 4, saopsettings);
     165                                4, saopsettings, 1);
    162166
    163167        }
     
    167171                new AllPermutationsSettings(parties,
    168172                                Arrays.asList(profiles1, profiles2, profiles3, profiles1), true,
    169                                 4, null);
     173                                4, null, 1);
    170174
    171175        }
     
    175179                new AllPermutationsSettings(parties,
    176180                                Arrays.asList(profiles1, profiles2, profiles3, profiles1), true,
    177                                 1, saopsettings);
     181                                1, saopsettings, 1);
    178182
    179183        }
  • pythonadapter/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>pythonadapter</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>party</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536
  • references/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>references</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3738                        <groupId>tudelft.utilities</groupId>
    3839                        <artifactId>repository</artifactId>
    39                         <version>1.0.1</version>
     40                        <version>1.1.0</version>
    4041                </dependency>
    4142                <!-- the core, which includes Streaming API, shared low-level abstractions
     
    9596                        <groupId>tudelft.utilities</groupId>
    9697                        <artifactId>junit</artifactId>
    97                         <version>1.0.2</version>
     98                        <version>1.0.3</version>
    9899                        <scope>test</scope>
    99100                </dependency>
  • simplerunner/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>simplerunner</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
     19                <geniusweb.version>1.4.1</geniusweb.version>
    1920        </properties>
    2021
     
    3132                        <groupId>geniusweb</groupId>
    3233                        <artifactId>protocol</artifactId>
    33                         <version>1.4.0</version>
     34                        <version>${geniusweb.version}</version>
    3435                </dependency>
    3536                <dependency>
    3637                        <groupId>geniusweb</groupId>
    3738                        <artifactId>party</artifactId>
    38                         <version>1.4.0</version>
     39                        <version>${geniusweb.version}</version>
    3940                </dependency>
    4041                <dependency>
    4142                        <groupId>geniusweb.exampleparties</groupId>
    4243                        <artifactId>randomparty</artifactId>
    43                         <version>1.4.0</version>
    44                         <scope>test</scope>
     44                        <version>${geniusweb.version}</version>
     45                        <scope>
     46                                test
     47                        </scope>
    4548                </dependency>
    4649                <dependency>
    4750                        <groupId>geniusweb.exampleparties</groupId>
    4851                        <artifactId>comparebids</artifactId>
    49                         <version>1.4.0</version>
    50                         <scope>test</scope>
     52                        <version>${geniusweb.version}</version>
     53                        <scope>
     54                                test
     55                        </scope>
    5156                </dependency>
    5257                <dependency>
    5358                        <groupId>geniusweb.exampleparties</groupId>
    5459                        <artifactId>simpleshaop</artifactId>
    55                         <version>1.4.0</version>
    56                         <scope>test</scope>
     60                        <version>${geniusweb.version}</version>
     61                        <scope>
     62                                test
     63                        </scope>
    5764                </dependency>
    5865
  • simplerunner/src/main/java/geniusweb/simplerunner/NegoRunner.java

    r10 r18  
    77import java.util.logging.Level;
    88
     9import com.fasterxml.jackson.core.JsonProcessingException;
    910import com.fasterxml.jackson.databind.ObjectMapper;
    1011
     
    1314import geniusweb.protocol.NegoProtocol;
    1415import geniusweb.protocol.NegoSettings;
     16import geniusweb.protocol.NegoState;
    1517import geniusweb.protocol.partyconnection.ProtocolToPartyConnFactory;
    16 import tudelft.utilities.logging.ReportToLogger;
    1718import tudelft.utilities.logging.Reporter;
    1819
     
    2728        private final NegoProtocol protocol;
    2829        private final ProtocolToPartyConnFactory connectionfactory;
    29         private final Reporter log;
     30        protected final Reporter log;
    3031        private final static ObjectMapper jackson = new ObjectMapper();
    3132
     
    5556
    5657        protected void stop() {
    57                 if (protocol.getState().getError() != null) {
    58                         log.log(Level.WARNING, "protocol terminated abnormally",
    59                                         protocol.getState().getError());
    60                 } else {
    61                         log.log(Level.INFO,
    62                                         "protocol ended normally: " + protocol.getState());
     58                Level level = protocol.getState().getError() == null ? Level.INFO
     59                                : Level.WARNING;
     60                logFinal(level, protocol.getState());
     61        }
     62
     63        /**
     64         * Separate so that we can intercept this when mocking, as this will crash
     65         * on mocks
     66         *
     67         * @param level
     68         * @param state
     69         */
     70        protected void logFinal(Level level, NegoState state) {
     71                try {
     72                        log.log(level, "protocol ended normally: "
     73                                        + jackson.writeValueAsString(protocol.getState()));
     74                } catch (JsonProcessingException e) {
     75                        e.printStackTrace();
    6376                }
    6477        }
     
    7588
    7689                NegoRunner runner = new NegoRunner(settings,
    77                                 new ClassPathConnectionFactory(),
    78                                 new ReportToLogger("sessionrunner"));
     90                                new ClassPathConnectionFactory(), new StdOutReporter());
    7991                runner.run();
    8092        }
     
    90102        }
    91103}
     104
     105class StdOutReporter implements Reporter {
     106
     107        @Override
     108        public void log(Level arg0, String arg1) {
     109                System.out.println(arg0 + ":" + arg1);
     110        }
     111
     112        @Override
     113        public void log(Level arg0, String arg1, Throwable arg2) {
     114                System.out.println(arg0 + ">" + arg1);
     115        }
     116
     117}
  • simplerunner/src/test/java/geniusweb/simplerunner/SessionRunnerTest.java

    r9 r18  
    1717
    1818import geniusweb.protocol.CurrentNegoState;
     19import geniusweb.protocol.NegoState;
    1920import geniusweb.protocol.ProtocolException;
    2021import geniusweb.protocol.partyconnection.ProtocolToPartyConnFactory;
     
    2223import geniusweb.protocol.session.SessionSettings;
    2324import geniusweb.protocol.session.SessionState;
    24 import geniusweb.simplerunner.NegoRunner;
    2525import tudelft.utilities.listener.Listener;
    2626import tudelft.utilities.logging.ReportToLogger;
     
    5959                                ProtocolToPartyConnFactory.class);
    6060
    61                 NegoRunner runner = spy(
    62                                 new NegoRunner(settings, factory, logger));
     61                NegoRunner runner = spy(new NegoRunner(settings, factory, logger));
    6362                runner.run();
    6463
     
    8281                ProtocolToPartyConnFactory factory = mock(
    8382                                ProtocolToPartyConnFactory.class);
    84                 NegoRunner runner = spy(
    85                                 new NegoRunner(settings, factory, logger));
     83                NegoRunner runner = spy(new NegoRunner(settings, factory, logger) {
     84                        @Override
     85                        protected void logFinal(Level level, NegoState state) {
     86                                log.log(level, state.toString());
     87                        }
     88                });
    8689                ArgumentCaptor<Listener> listener = ArgumentCaptor
    8790                                .forClass(Listener.class);
     
    109112                ProtocolToPartyConnFactory factory = mock(
    110113                                ProtocolToPartyConnFactory.class);
    111                 NegoRunner runner = spy(
    112                                 new NegoRunner(settings, factory, logger));
     114                NegoRunner runner = spy(new NegoRunner(settings, factory, logger) {
     115                        @Override
     116                        protected void logFinal(Level level, NegoState state) {
     117                                log.log(level, state.toString());
     118                        }
     119                });
    113120                ArgumentCaptor<Listener> listener = ArgumentCaptor
    114121                                .forClass(Listener.class);
     
    120127                verify(runner, times(1)).stop();
    121128                // check that the protocol error is logged properly
    122                 verify(logger, times(1)).log(eq(Level.WARNING), any(String.class),
    123                                 eq(PROTOCOL_EXC));
     129                verify(logger, times(1)).log(eq(Level.WARNING), any(String.class));
    124130        }
    125131
  • simplerunner/src/test/resources/settings2.json

    r8 r18  
    1313                        }
    1414                }
     15               
    1516        }
    1617}
  • simplerunner/src/test/resources/shaoptoursettings.json

    r14 r18  
    5959                                }
    6060                        }
    61                 }
     61                },
     62                "numberTournaments":1
    6263        }
    6364}
  • timeline/pom.xml

    r14 r18  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>timeline</artifactId>
    8         <version>1.4.0</version>
     8        <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1616                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1717                <jackson-2-version>2.9.10</jackson-2-version>
     18                <geniusweb.version>1.4.1</geniusweb.version>
    1819        </properties>
    1920
  • timeline/src/main/java/geniusweb/progress/Progress.java

    r1 r18  
    3434         *         eye on {@link #getTerminationTime()}.
    3535         */
    36         Double get(long currentTimeMs);
     36        Double get(Long currentTimeMs);
    3737
    3838        /**
     
    5151         * @return true iff the progress has passed the deadline.
    5252         */
    53         boolean isPastDeadline(long currentTimeMs);
     53        boolean isPastDeadline(Long currentTimeMs);
    5454}
  • timeline/src/main/java/geniusweb/progress/ProgressRounds.java

    r12 r18  
    99/**
    1010 * progress in terms of number of rounds. The round has to be updated by the
    11  * user of this class, calling {@link #advance()}.
     11 * user of this class, calling {@link #advance()}. immutable.
    1212 */
    1313@JsonTypeName("rounds")
     
    4949        /**
    5050         *
    51          * @return the current round. First round is 0. It is not recommended to use
    52          *         this, as this may make your code working with rounds only.
     51         * @return the current round. First round is 0. It is recommended that you
     52         *         use the functions in {@link Progress} instead of this, to ensure
     53         *         your code works with all implementations of Progress including
     54         *         future developments.
    5355         */
    5456        public Integer getCurrentRound() {
     
    5860        /**
    5961         *
    60          * @return total number of rounds. It is not recommended to use this, as
    61          *         this may make your code working with rounds only.
     62         * @return total number of rounds. It is recommended that you use the
     63         *         functions in {@link Progress} instead of this, to ensure your
     64         *         code works with all implementations of Progress including future
     65         *         developments.
    6266         */
    6367        public Integer getTotalRounds() {
     
    6670
    6771        @Override
    68         public Double get(long currentTimeMs) {
     72        public Double get(Long currentTimeMs) {
    6973                // deadline and current both are limited to MAXINT is 32 bits; double
    7074                // fits 52
     
    7983
    8084        @Override
    81         public boolean isPastDeadline(long currentTimeMs) {
     85        public boolean isPastDeadline(Long currentTimeMs) {
    8286                return currentRound >= duration || currentTimeMs > endtime.getTime();
    8387        }
  • timeline/src/main/java/geniusweb/progress/ProgressTime.java

    r1 r18  
    5151
    5252        @Override
    53         public Double get(long currentTimeMs) {
     53        public Double get(Long currentTimeMs) {
    5454                long delta = currentTimeMs - start.getTime();
    5555                // double should have ~53 digits of precision, and we're computing
     
    6666
    6767        @Override
    68         public boolean isPastDeadline(long currentTimeMs) {
     68        public boolean isPastDeadline(Long currentTimeMs) {
    6969                return currentTimeMs > start.getTime() + duration;
    7070        }
Note: See TracChangeset for help on using the changeset viewer.