diff --git a/libraries/src/main/java/com/baeldung/caffeine/DataObject.java b/libraries/src/main/java/com/baeldung/caffeine/DataObject.java index 2a8b60b045..a90b3e9f21 100644 --- a/libraries/src/main/java/com/baeldung/caffeine/DataObject.java +++ b/libraries/src/main/java/com/baeldung/caffeine/DataObject.java @@ -1,9 +1,13 @@ package com.baeldung.caffeine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + final class DataObject { private final String data; private static int objectCounter = 0; + private static final Logger log = LoggerFactory.getLogger(DataObject.class); private DataObject(String data) { this.data = data; @@ -22,7 +26,7 @@ final class DataObject { public static DataObject get(String data) { objectCounter++; - System.out.println(String.format("Initializing DataObject#%d with data '%s'", objectCounter, data)); + log.info("Init DataObject#{} with '{}'", objectCounter, data); return new DataObject(data); } } diff --git a/rmi/client.policy b/rmi/client.policy new file mode 100644 index 0000000000..5d74bde76d --- /dev/null +++ b/rmi/client.policy @@ -0,0 +1,3 @@ +grant { + permission java.security.AllPermission; +}; \ No newline at end of file diff --git a/rmi/server.policy b/rmi/server.policy new file mode 100644 index 0000000000..5d74bde76d --- /dev/null +++ b/rmi/server.policy @@ -0,0 +1,3 @@ +grant { + permission java.security.AllPermission; +}; \ No newline at end of file diff --git a/rmi/src/org/baeldung/Client.java b/rmi/src/org/baeldung/Client.java new file mode 100644 index 0000000000..0376952bab --- /dev/null +++ b/rmi/src/org/baeldung/Client.java @@ -0,0 +1,20 @@ +package org.baeldung; + +import java.rmi.NotBoundException; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; + +public class Client { + public static void main(String[] args) throws RemoteException, NotBoundException { + System.setProperty("java.security.policy", "file:./client.policy"); + if (System.getSecurityManager() == null) { + System.setSecurityManager(new SecurityManager()); + } + String name = "RandomNumberGenerator"; + Registry registry = LocateRegistry.getRegistry(); + RandomNumberGenerator randomNumberGenerator = (RandomNumberGenerator) registry.lookup(name); + int number = randomNumberGenerator.get(); + System.out.println("Received random number:" + number); + } +} diff --git a/rmi/src/org/baeldung/RandomNumberGenerator.java b/rmi/src/org/baeldung/RandomNumberGenerator.java new file mode 100644 index 0000000000..50e49d2652 --- /dev/null +++ b/rmi/src/org/baeldung/RandomNumberGenerator.java @@ -0,0 +1,8 @@ +package org.baeldung; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +public interface RandomNumberGenerator extends Remote{ + int get() throws RemoteException; +} diff --git a/rmi/src/org/baeldung/RandomNumberGeneratorEngine.java b/rmi/src/org/baeldung/RandomNumberGeneratorEngine.java new file mode 100644 index 0000000000..04d90b2ff9 --- /dev/null +++ b/rmi/src/org/baeldung/RandomNumberGeneratorEngine.java @@ -0,0 +1,10 @@ +package org.baeldung; + +import java.rmi.RemoteException; + +public class RandomNumberGeneratorEngine implements RandomNumberGenerator { + @Override + public int get() throws RemoteException { + return (int) (100 * Math.random()); + } +} diff --git a/rmi/src/org/baeldung/Server.java b/rmi/src/org/baeldung/Server.java new file mode 100644 index 0000000000..8e613cb6bb --- /dev/null +++ b/rmi/src/org/baeldung/Server.java @@ -0,0 +1,22 @@ +package org.baeldung; + +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.UnicastRemoteObject; + +public class Server { + public static void main(String[] args) throws RemoteException { + System.setProperty("java.security.policy", "file:./server.policy"); + if (System.getSecurityManager() == null) { + System.setSecurityManager(new SecurityManager()); + } + String name = "RandomNumberGenerator"; + RandomNumberGenerator randomNumberGenerator = new RandomNumberGeneratorEngine(); + RandomNumberGenerator stub = + (RandomNumberGenerator) UnicastRemoteObject.exportObject(randomNumberGenerator, 0); + Registry registry = LocateRegistry.getRegistry(); + registry.rebind(name, stub); + System.out.println("RandomNumberGenerator bound"); + } +}