/* * This file was generated by the Gradle 'init' task. * * This generated file contains a sample Java project to get you started. * For more details take a look at the Java Quickstart chapter in the Gradle * User Manual available at https://docs.gradle.org/5.6.2/userguide/tutorial_java_projects.html */ plugins { // Apply the java plugin to add support for Java id 'java' // Apply the application plugin to add support for building a CLI application id 'application' } ext.hostname = { return System.getProperty("hostname") ?: "localhost" } ext.freshnessPeriod = { return System.getProperty("freshnessPeriod") ?: 60 * 1000 } ext.queryPeriod = { return System.getProperty("queryPeriod") ?: 5 * 1000 } ext.gossipPeriod = { return System.getProperty("gossipPeriod") ?: 5 * 1000 } ext.UDUPServerHostname = { return System.getProperty("hostname") ?: "localhost" } ext.UDUPServerPort = { return System.getProperty("port") ?: 5999; } ext.UDUPServerTimeout = { return System.getProperty("timeout") ?: 5000; } ext.UDUPServerBufsize = { return System.getProperty("bufsize") ?: 512; } ext.querySignerHostname = { return System.getProperty("querySignerHostname") ?: "localhost" } /* Example: -DfallbackContacts=\{\"/uw/violet07\":[192,168,0,11]} escape at the beginning and before " */ ext.fallbackContacts = { return System.getProperty("fallbackContacts") ?: "{}" } ext.ownAddr = { return System.getProperty("ownAddr") ?: "localhost" } /* Possible options: RoundRobinExp RoundRobinUniform RandomExp RandomUniform */ ext.zoneSelectionStrategy = { return System.getProperty("zoneStrategy") ?: "RandomUniform" } ext.zonePath = { return System.getProperty("zonePath") ?: "/uw/violet07" } ext.publicKeyFilename = { return System.getProperty("publicKeyFilename") ?: "build/tmp/query_signer.pub" } ext.privateKeyFilename = { return System.getProperty("privateKeyFilename") ?: "build/tmp/query_signer" } repositories { // Use jcenter for resolving dependencies. // You can declare any Maven/Ivy/file repository here. jcenter() mavenCentral() } dependencies { // This dependency is used by the application. implementation 'com.google.guava:guava:28.0-jre' implementation 'org.springframework.boot:spring-boot-starter-web:2.2.1.RELEASE' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:2.2.1.RELEASE' implementation 'org.springframework.boot:spring-boot-starter-test:2.2.1.RELEASE' implementation 'org.apache.commons:commons-math3:3.6.1' // Use JUnit test framework testImplementation 'junit:junit:4.12' implementation 'com.esotericsoftware:kryo:4.0.2' // For query language parser implementation files('./lib/JLex.jar') implementation files('./lib/cup.jar') implementation 'com.google.code.gson:gson:2.8.6' } application { // Define the main class for the application mainClassName = 'pl.edu.mimuw.cloudatlas.interpreter.Main' } task runAgent(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'pl.edu.mimuw.cloudatlas.agent.Agent' systemProperty 'java.rmi.server.hostname', hostname() systemProperty 'freshness_period', freshnessPeriod() systemProperty 'query_period', queryPeriod() systemProperty 'gossip_period', gossipPeriod() systemProperty 'UDUPServer.hostname', UDUPServerHostname() systemProperty 'UDUPServer.port', UDUPServerPort() systemProperty 'UDUPServer.timeout', UDUPServerTimeout() systemProperty 'UDUPServer.bufsize', UDUPServerBufsize() systemProperty 'Gossip.zone_strategy', zoneSelectionStrategy() systemProperty 'zone_path', zonePath() systemProperty 'public_key_file', publicKeyFilename() } task runClient(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'pl.edu.mimuw.cloudatlas.client.Client' systemProperty 'agent_hostname', hostname() systemProperty 'zone_path', zonePath() systemProperty 'query_signer_hostname', querySignerHostname() } task runFetcher(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'pl.edu.mimuw.cloudatlas.fetcher.Fetcher' args(hostname() , 1099) systemProperty 'zone_path', zonePath() systemProperty 'fallback_contacts', fallbackContacts() systemProperty 'own_addr', ownAddr() } task runInterpreter(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'pl.edu.mimuw.cloudatlas.interpreter.Main' standardInput = System.in } task runQuerySigner(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'pl.edu.mimuw.cloudatlas.querysigner.QuerySigner' systemProperty 'java.rmi.server.hostname', hostname() systemProperty 'query_signer_hostname', querySignerHostname() systemProperty 'public_key_file', publicKeyFilename() systemProperty 'private_key_file', privateKeyFilename() }