Skip to content

Commit 19e8849

Browse files
gautamshettypivovarit
authored andcommitted
[BAEL 1209] - Java RMI Files. (eugenp#3374)
* [BAEL 1209] - Java RMI Files. * Added parent tag and deleted dependency tag for junit. * Added java-rmi module. * Removed duplicate java-lite module entry. * Deleting this file as it is covered in test class. * Spell check.
1 parent 70e4a55 commit 19e8849

6 files changed

Lines changed: 151 additions & 2 deletions

File tree

java-rmi/pom.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>com.baeldung.rmi</groupId>
6+
<artifactId>java-rmi</artifactId>
7+
<version>1.0-SNAPSHOT</version>
8+
<packaging>jar</packaging>
9+
10+
<parent>
11+
<groupId>com.baeldung</groupId>
12+
<artifactId>parent-modules</artifactId>
13+
<version>1.0.0-SNAPSHOT</version>
14+
</parent>
15+
16+
<properties>
17+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18+
</properties>
19+
20+
</project>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.baeldung.rmi;
2+
3+
import java.io.Serializable;
4+
5+
public class Message implements Serializable {
6+
7+
private String messageText;
8+
9+
private String contentType;
10+
11+
public Message() {
12+
}
13+
14+
public Message(String messageText, String contentType) {
15+
16+
this.messageText = messageText;
17+
this.contentType = contentType;
18+
}
19+
20+
public String getMessageText() {
21+
return messageText;
22+
}
23+
24+
public void setMessageText(String messageText) {
25+
this.messageText = messageText;
26+
}
27+
28+
public String getContentType() {
29+
return contentType;
30+
}
31+
32+
public void setContentType(String contentType) {
33+
this.contentType = contentType;
34+
}
35+
36+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.baeldung.rmi;
2+
3+
import java.rmi.Remote;
4+
import java.rmi.RemoteException;
5+
6+
public interface MessengerService extends Remote {
7+
8+
public String sendMessage(String clientMessage) throws RemoteException;
9+
10+
public Message sendMessage(Message clientMessage) throws RemoteException;
11+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.baeldung.rmi;
2+
3+
import java.rmi.RemoteException;
4+
import java.rmi.registry.LocateRegistry;
5+
import java.rmi.registry.Registry;
6+
import java.rmi.server.UnicastRemoteObject;
7+
8+
public class MessengerServiceImpl implements MessengerService {
9+
10+
public String sendMessage(String clientMessage) {
11+
12+
String serverMessage = null;
13+
if (clientMessage.equals("Client Message")) {
14+
serverMessage = "Server Message";
15+
}
16+
17+
return serverMessage;
18+
}
19+
20+
public void createStubAndBind() throws RemoteException {
21+
22+
MessengerService stub = (MessengerService) UnicastRemoteObject.exportObject((MessengerService) this, 0);
23+
Registry registry = LocateRegistry.createRegistry(1099);
24+
registry.rebind("MessengerService", stub);
25+
}
26+
27+
public Message sendMessage(Message clientMessage) throws RemoteException {
28+
29+
Message serverMessage = null;
30+
if (clientMessage.getMessageText().equals("Client Message")) {
31+
serverMessage = new Message("Server Message", "text/plain");
32+
}
33+
34+
return serverMessage;
35+
}
36+
37+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.baeldung.rmi;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.fail;
5+
6+
import java.rmi.NotBoundException;
7+
import java.rmi.RemoteException;
8+
import java.rmi.registry.LocateRegistry;
9+
import java.rmi.registry.Registry;
10+
11+
import org.junit.BeforeClass;
12+
import org.junit.Test;
13+
14+
public class JavaRMIIntegrationTest {
15+
16+
@BeforeClass
17+
public static void whenRunServer_thenServerStarts() {
18+
19+
try {
20+
MessengerServiceImpl server = new MessengerServiceImpl();
21+
server.createStubAndBind();
22+
} catch (RemoteException e) {
23+
fail("Exception Occurred");
24+
}
25+
}
26+
27+
@Test
28+
public void whenClientSendsMessageToServer_thenServerSendsResponseMessage() {
29+
30+
try {
31+
Registry registry = LocateRegistry.getRegistry();
32+
MessengerService server = (MessengerService) registry.lookup("MessengerService");
33+
String responseMessage = server.sendMessage("Client Message");
34+
35+
String expectedMessage = "Server Message";
36+
assertEquals(responseMessage, expectedMessage);
37+
} catch (RemoteException e) {
38+
fail("Exception Occurred");
39+
} catch (NotBoundException nb) {
40+
fail("Exception Occurred");
41+
}
42+
}
43+
44+
}

pom.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@
8787
<module>jackson</module>
8888
<!-- <module>persistence-modules/java-cassandra</module> -->
8989
<module>vavr</module>
90-
<module>java-lite</module>
91-
<module>java-vavr-stream</module>
90+
<module>java-lite</module>
91+
<module>java-rmi</module>
92+
<module>java-vavr-stream</module>
9293
<module>javax-servlets</module>
9394
<module>javaxval</module>
9495
<module>jaxb</module>

0 commit comments

Comments
 (0)