diff options
| author | Magdalena Grodzińska <mag.grodzinska@gmail.com> | 2019-12-25 16:06:01 +0100 | 
|---|---|---|
| committer | Magdalena Grodzińska <mag.grodzinska@gmail.com> | 2019-12-25 16:06:01 +0100 | 
| commit | 8189c108befee400be89b8a0989bf367187fd375 (patch) | |
| tree | d225a3063c471ebdc7d870151490a09448629cfd /src/main | |
| parent | 08bd4342ae7ac18b21843a1c61c0023455d94d65 (diff) | |
Move registry binding to RMI module
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java | 26 | ||||
| -rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/RMI.java | 39 | 
2 files changed, 43 insertions, 22 deletions
| diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java index 4bd522d..4e75a51 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java @@ -1,8 +1,5 @@  package pl.edu.mimuw.cloudatlas.agent; -import java.rmi.registry.LocateRegistry; -import java.rmi.registry.Registry; -import java.rmi.server.UnicastRemoteObject;  import java.util.ArrayList;  import java.util.HashMap;  import java.util.Iterator; @@ -10,29 +7,15 @@ import java.util.Map;  import pl.edu.mimuw.cloudatlas.agent.messages.AgentMessage;  import pl.edu.mimuw.cloudatlas.agent.modules.Module; -import pl.edu.mimuw.cloudatlas.api.Api; -import pl.edu.mimuw.cloudatlas.interpreter.Main; -import pl.edu.mimuw.cloudatlas.model.ZMI; +import pl.edu.mimuw.cloudatlas.agent.modules.RMI; +import pl.edu.mimuw.cloudatlas.agent.modules.TimerScheduler;  public class Agent { -    public static void runRegistry() { -        try { -            ZMI root = Main.createTestHierarchy2(); -            ApiImplementation api = new ApiImplementation(root); -            Api apiStub = -                    (Api) UnicastRemoteObject.exportObject(api, 0); -            Registry registry = LocateRegistry.getRegistry(); -            registry.rebind("Api", apiStub); -            System.out.println("Agent: api bound"); -        } catch (Exception e) { -            System.err.println("Agent registry initialization exception:"); -            e.printStackTrace(); -        } -    } -      public static HashMap<AgentMessage.AgentModule, Module> initializeModules() {          HashMap<AgentMessage.AgentModule, Module> modules = new HashMap<AgentMessage.AgentModule, Module>(); +        modules.put(AgentMessage.AgentModule.TIMER_SCHEDULER, new TimerScheduler(AgentMessage.AgentModule.TIMER_SCHEDULER)); +        modules.put(AgentMessage.AgentModule.RMI, new RMI(AgentMessage.AgentModule.RMI));          // TODO add modules as we implement them          return modules;      } @@ -90,7 +73,6 @@ public class Agent {      }      public static void main(String[] args) { -        runRegistry();          runModulesAsThreads();      }  } diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/RMI.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/RMI.java new file mode 100644 index 0000000..452b214 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/RMI.java @@ -0,0 +1,39 @@ +package pl.edu.mimuw.cloudatlas.agent.modules; + +import pl.edu.mimuw.cloudatlas.agent.ApiImplementation; +import pl.edu.mimuw.cloudatlas.agent.messages.AgentMessage; +import pl.edu.mimuw.cloudatlas.agent.messages.TimerSchedulerMessage; +import pl.edu.mimuw.cloudatlas.api.Api; +import pl.edu.mimuw.cloudatlas.interpreter.Main; +import pl.edu.mimuw.cloudatlas.model.ZMI; + +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.UnicastRemoteObject; + +public class RMI extends Module { +    public RMI(AgentMessage.AgentModule moduleType) { +        super(moduleType); +        runRegistry(); +    } + +    public void runRegistry() { +        try { +            ZMI root = Main.createTestHierarchy2(); +            ApiImplementation api = new ApiImplementation(root); +            Api apiStub = +                    (Api) UnicastRemoteObject.exportObject(api, 0); +            Registry registry = LocateRegistry.getRegistry(); +            registry.rebind("Api", apiStub); +            System.out.println("Agent: api bound"); +        } catch (Exception e) { +            System.err.println("Agent registry initialization exception:"); +            e.printStackTrace(); +        } +    } + +    @Override +    public void handle(AgentMessage event) throws InterruptedException { +        assert event.getDestinationModule() == event.getCorrectMessageType(); +    } +} |