From 238c61f4d30de061e22211be267a4c9207c8169c Mon Sep 17 00:00:00 2001 From: Giovanni Di Grezia Date: Mon, 1 Dec 2014 00:36:16 +0100 Subject: [PATCH] Factory sample (Hello world with different languages) --- rmi_hello_world_factory/Hello.java | 11 +++++ .../HelloImplementedEn.java | 23 ++++++++++ .../HelloImplementedFr.java | 23 ++++++++++ .../HelloImplementedIt.java | 23 ++++++++++ rmi_hello_world_factory/LaunchClient.java | 45 +++++++++++++++++++ rmi_hello_world_factory/LaunchServer.java | 31 +++++++++++++ rmi_hello_world_factory/ServerFactory.java | 11 +++++ .../ServerFactoryImplemented.java | 27 +++++++++++ 8 files changed, 194 insertions(+) create mode 100644 rmi_hello_world_factory/Hello.java create mode 100644 rmi_hello_world_factory/HelloImplementedEn.java create mode 100644 rmi_hello_world_factory/HelloImplementedFr.java create mode 100644 rmi_hello_world_factory/HelloImplementedIt.java create mode 100644 rmi_hello_world_factory/LaunchClient.java create mode 100644 rmi_hello_world_factory/LaunchServer.java create mode 100644 rmi_hello_world_factory/ServerFactory.java create mode 100644 rmi_hello_world_factory/ServerFactoryImplemented.java diff --git a/rmi_hello_world_factory/Hello.java b/rmi_hello_world_factory/Hello.java new file mode 100644 index 0000000..35b599c --- /dev/null +++ b/rmi_hello_world_factory/Hello.java @@ -0,0 +1,11 @@ +package rmi_hello_world_factory; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +/** + * Created by Giovanni on 30/11/2014. + */ +public interface Hello extends Remote { + String sayhello () throws RemoteException; +} diff --git a/rmi_hello_world_factory/HelloImplementedEn.java b/rmi_hello_world_factory/HelloImplementedEn.java new file mode 100644 index 0000000..cf5ad34 --- /dev/null +++ b/rmi_hello_world_factory/HelloImplementedEn.java @@ -0,0 +1,23 @@ +package rmi_hello_world_factory; + +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; + +/** + * Created by Giovanni on 01/12/2014. + */ +public class HelloImplementedEn extends UnicastRemoteObject implements Hello { + + + private static final long serialVersionUID = 2025591618699941247L; + + public HelloImplementedEn(String in) throws RemoteException { + nome=in; + } + + @Override + public String sayhello() throws RemoteException { + return "Hello " + nome; + } + private String nome; +} diff --git a/rmi_hello_world_factory/HelloImplementedFr.java b/rmi_hello_world_factory/HelloImplementedFr.java new file mode 100644 index 0000000..f5730dc --- /dev/null +++ b/rmi_hello_world_factory/HelloImplementedFr.java @@ -0,0 +1,23 @@ +package rmi_hello_world_factory; + +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; + +/** + * Created by Giovanni on 01/12/2014. + */ +public class HelloImplementedFr extends UnicastRemoteObject implements Hello { + + + private static final long serialVersionUID = 2025591618699941247L; + + public HelloImplementedFr(String in) throws RemoteException { + nome=in; + } + + @Override + public String sayhello() throws RemoteException { + return "Bonjour " + nome; + } + private String nome; +} diff --git a/rmi_hello_world_factory/HelloImplementedIt.java b/rmi_hello_world_factory/HelloImplementedIt.java new file mode 100644 index 0000000..4dd01e1 --- /dev/null +++ b/rmi_hello_world_factory/HelloImplementedIt.java @@ -0,0 +1,23 @@ +package rmi_hello_world_factory; + +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; + +/** + * Created by Giovanni on 01/12/2014. + */ +public class HelloImplementedIt extends UnicastRemoteObject implements Hello { + + + private static final long serialVersionUID = 2025591618699941247L; + + public HelloImplementedIt(String in) throws RemoteException { + nome=in; + } + + @Override + public String sayhello() throws RemoteException { + return "Ciao " + nome; + } + private String nome; +} diff --git a/rmi_hello_world_factory/LaunchClient.java b/rmi_hello_world_factory/LaunchClient.java new file mode 100644 index 0000000..f380ba9 --- /dev/null +++ b/rmi_hello_world_factory/LaunchClient.java @@ -0,0 +1,45 @@ +package rmi_hello_world_factory; + +import com.sun.corba.se.spi.activation.Server; + +import java.net.MalformedURLException; +import java.rmi.Naming; +import java.rmi.NotBoundException; +import java.rmi.RemoteException; + +/** + * Created by Giovanni on 01/12/2014. + */ +public class LaunchClient { + + + public static void main (String[] args){ + + System.setSecurityManager(new SecurityManager()); + + try { + ServerFactory f = (ServerFactory) Naming.lookup("rmi://localhost/Factory"); + Hello h = f.request_hello_object("Italy","Mario"); + System.out.println(h.sayhello()); + + h = f.request_hello_object("France","Mario"); + System.out.println(h.sayhello()); + + h = f.request_hello_object("Germany","Mario"); + System.out.println(h.sayhello()); + + + } catch (NotBoundException e) { + e.printStackTrace(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (RemoteException e) { + e.printStackTrace(); + } + + + } + + + +} diff --git a/rmi_hello_world_factory/LaunchServer.java b/rmi_hello_world_factory/LaunchServer.java new file mode 100644 index 0000000..cb312c2 --- /dev/null +++ b/rmi_hello_world_factory/LaunchServer.java @@ -0,0 +1,31 @@ +package rmi_hello_world_factory; + +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; + +/** + * Created by Giovanni on 30/11/2014. + */ +public class LaunchServer { + + + public static void main (String[] args){ + + System.setSecurityManager(new SecurityManager()); + + try { + ServerFactory f = new ServerFactoryImplemented(); + Registry r = LocateRegistry.getRegistry(); + r.rebind("Factory",f); + + + } catch (RemoteException e) { + e.printStackTrace(); + } + + + } + + +} diff --git a/rmi_hello_world_factory/ServerFactory.java b/rmi_hello_world_factory/ServerFactory.java new file mode 100644 index 0000000..63f00cf --- /dev/null +++ b/rmi_hello_world_factory/ServerFactory.java @@ -0,0 +1,11 @@ +package rmi_hello_world_factory; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +/** + * Created by Giovanni on 30/11/2014. + */ +public interface ServerFactory extends Remote{ + Hello request_hello_object(String nationality, String nome) throws RemoteException; +} diff --git a/rmi_hello_world_factory/ServerFactoryImplemented.java b/rmi_hello_world_factory/ServerFactoryImplemented.java new file mode 100644 index 0000000..077a1f6 --- /dev/null +++ b/rmi_hello_world_factory/ServerFactoryImplemented.java @@ -0,0 +1,27 @@ +package rmi_hello_world_factory; + +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; + +/** + * Created by Giovanni on 30/11/2014. + */ +public class ServerFactoryImplemented extends UnicastRemoteObject implements ServerFactory { + + + public ServerFactoryImplemented() throws RemoteException { + + } + + + @Override + public Hello request_hello_object(String nationality, String nome) throws RemoteException { + if (nationality.equals("Italy")){ + return new HelloImplementedIt(nome); + }else if (nationality.equals("France")){ + return new HelloImplementedFr(nome); + }else { + return new HelloImplementedEn(nome); + } + } +}