001    package com.basilv.examples.rmi;
002    
003    
004    import java.io.Serializable;
005    import java.rmi.*;
006    import java.rmi.registry.LocateRegistry;
007    import java.rmi.server.UnicastRemoteObject;
008    
009    public class TaskExecutorServer extends UnicastRemoteObject implements RemoteTaskExecutor {
010    
011        public static final String REGISTRY_NAME = TaskExecutorServer.class.getName();
012        
013        public TaskExecutorServer() throws RemoteException {
014            super();
015        }
016    
017        public Object executeTask(Task task, Serializable argument) {
018            return task.execute(argument);
019        }
020    
021        public static void main(String[] args) throws Exception {
022            
023            int registryPortNumber = 1099;
024            LocateRegistry.createRegistry(registryPortNumber);
025            
026            Naming.rebind(REGISTRY_NAME, new TaskExecutorServer());
027            
028            System.out.println("Server running...");
029            
030            Thread.sleep(15000);
031            
032            System.out.println("Shutting down server...");
033            Naming.unbind(REGISTRY_NAME);
034            System.exit(1);
035        }
036        
037        
038    }