From 68b2cba1cf2bc96a996a15220e4df95b2e86520e Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Thu, 14 Nov 2019 20:09:45 +0100 Subject: Add basic client --- build.gradle | 8 +++++ .../pl/edu/mimuw/cloudatlas/client/Client.java | 42 ++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/main/java/pl/edu/mimuw/cloudatlas/client/Client.java diff --git a/build.gradle b/build.gradle index 8294b27..732e30d 100644 --- a/build.gradle +++ b/build.gradle @@ -18,12 +18,15 @@ 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' + // Use JUnit test framework testImplementation 'junit:junit:4.12' @@ -47,3 +50,8 @@ task runAgent(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'pl.edu.mimuw.cloudatlas.agent.Agent' } + +task runClient(type: JavaExec) { + classpath = sourceSets.main.runtimeClasspath + main = 'pl.edu.mimuw.cloudatlas.client.Client' +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/client/Client.java b/src/main/java/pl/edu/mimuw/cloudatlas/client/Client.java new file mode 100644 index 0000000..e573d6c --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/client/Client.java @@ -0,0 +1,42 @@ +package pl.edu.mimuw.cloudatlas.client; + +import pl.edu.mimuw.cloudatlas.agent.Api; + +import java.rmi.registry.LocateRegistry; +import java.rmi.RemoteException; +import java.rmi.registry.Registry; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Main class for a client. + * + * Set the following properties on the command line: + * + *
+ * -Djava.rmi.server.useCodebaseOnly=false + *
+ * -Djava.rmi.server.codebase=file:/path/to/compiled/classes/ + *
+ * -Djava.security.policy=client.policy + *
+ * + * NOTE: MAKE SURE YOU HAVE THE TRAILING / ON THE CODEBASE PATH + */ + +// https://github.com/rm5248/Java-RMI-Example/ + +@SpringBootApplication +public class Client { + public static void main(String[] args) { + try { + Registry registry = LocateRegistry.getRegistry("localhost"); + Api api = (Api) registry.lookup("Api"); + + SpringApplication.run(Client.class, args); + } catch (Exception e) { + System.err.println("Client exception:"); + e.printStackTrace(); + } + } +} -- cgit v1.2.3