001package com.basilv.examples.rmi;
002
003
004import java.io.Serializable;
005import java.rmi.*;
006import java.rmi.registry.LocateRegistry;
007import java.rmi.server.UnicastRemoteObject;
008
009public 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}