[[PageOutline]] = GENIUS = Genius2 is an open architecture for heterogeneous negotiating parties via the internet. It provides the basis for an implementation of a testbed for negotiating parties that includes a set of negotiation problems for benchmarking parties, a library of negotiation strategies, and analytical tools to evaluate an party's performance and their strategies allows user. The SVN repo is on https://tracinsy.ewi.tudelft.nl/svn/genius2/ This repository contains the core code of Genius2. The servers can be found on * [https://tracinsy.ewi.tudelft.nl/trac/Genius2ProfilesServer profiles server] * [https://tracinsy.ewi.tudelft.nl/trac/Genius2PartiesServer parties server] * [https://tracinsy.ewi.tudelft.nl/trac/Genius2RunServer run server] == Writing a party in Java Negotiation parties are run on a parties server, such as the one provided above. The provided parties server supports only java agents at this time. Example agents can be found [https://tracinsy.ewi.tudelft.nl/trac/Genius2/browser/exampleparties here]. An agent is compiled with maven. After compilation ({{{mvn package}}}) you get a {{{target/yourparty-X.Y.Z-jar-with-dependencies.jar}}} that can be copied into the parties server for deployment. === Some technical info Party jar files must have a Main-Class set in the MANIFEST.MF file. This main-class must have a static main function as usual; this function will be called to start your party. Jar files are loaded with an isolated jar class loader that should avoid collisions with possibly identically named but possibly different packages in other jar files. Your agent has JSON based access to the domain and profile repositories through websockets. Two examples of accsssing the domain and profiles are provided, one based on javax.websocket and one on neovisionaries websocket. == Import all sources in Eclipse Normal developers that write new parties do not need to install the genius2 source code. This is only needed if you want to debug/trace into the genius2 code for instance for debugging or understanding the inner workings of genius2. Install Subclipse using "help/Eclipse MarketPlace" and search for subclipse. Disable the JavaHL native DLLs and install. NOTE: due to a bug in Eclipse Photon the marketplace may not work. We suggest to upgrade... You may get some errors on JavaHL library. To get rid of those, go to preferences/Team/SVN/ * disable General SVN settings / JavaHL * SVN interface/Client: select SVNKit instead of JavaHL. Right click in Package Explorer in Eclipse, select "Import/SVN/Checkout Projects from SVN". Select the root of the project, finish (selecting sub-projects will result in a stupid loop in the checkout procedure in Eclipse and won't lead anywhere...) Richt click on the checked-out project that you want eclipse to recognise as Maven project (the project are maven but Eclipse does not recognise this after check-out). Select import/maven/existing maven projects. Finish. Note. Previous versions of eclipse could recognise Maven directly after checkout. Something seems missing/removed in Eclipse.