Package jrdesktop.rmi.server

Source Code of jrdesktop.rmi.server.RMIServer

package jrdesktop.rmi.server;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import javax.rmi.ssl.SslRMIClientSocketFactory;
import javax.rmi.ssl.SslRMIServerSocketFactory;
import javax.swing.JOptionPane;

import jrdesktop.Commons;
import jrdesktop.SystemProperties;
import jrdesktop.Config;
import jrdesktop.Settings;
import jrdesktop.rmi.client.MultihomeRMIClientSocketFactory;
import jrdesktop.utilities.FileUtility;
import jrdesktop.utilities.InetAdrUtility;

/**
* RMIServer.java
* @author benbac
*/

public class RMIServer {  
   
    private static Registry registry;
    private static ServerImpl serverImpl;
    public static Config serverConfig = new Config(Commons.serverSide, "");  
   
    public static boolean Start(Config config) {
        serverConfig = config;
        return Start();
    }
   
    public static boolean Start() {           
        if (serverConfig.ssl_enabled) {       
            FileUtility.extractFile(Settings.keyStore);
            FileUtility.extractFile(Settings.trustStore);
            SystemProperties.setSSLProps();
        }
        else
            SystemProperties.clearSSLProps();
       
        if (serverConfig.default_address)
            SystemProperties.setDefaultAdr(serverConfig.server_address);
        else
            SystemProperties.clearDefaultAdr();

        try {
            if (serverConfig.ssl_enabled)
                registry = LocateRegistry.createRegistry(serverConfig.server_port,
                        new SslRMIClientSocketFactory(),
                        new SslRMIServerSocketFactory(null, null, true));
            else
                registry = LocateRegistry.createRegistry(serverConfig.server_port);

            if (serverConfig.ssl_enabled && serverConfig.multihomed_enabled)
                serverImpl = new ServerImpl(
                        new MultihomeRMIClientSocketFactory(
                            new SslRMIClientSocketFactory(),
                            InetAdrUtility.getLocalIPAdresses()),
                        new SslRMIServerSocketFactory(null, null, true)/*,
                        serverConfig.server_port*/);
            else if (serverConfig.ssl_enabled && !serverConfig.multihomed_enabled)
                serverImpl = new ServerImpl(
                        new SslRMIClientSocketFactory(),
                        new SslRMIServerSocketFactory(null, null, true),
                        serverConfig.server_port);
            else if (!serverConfig.ssl_enabled && serverConfig.multihomed_enabled) {
                serverImpl = new ServerImpl(
                        new MultihomeRMIClientSocketFactory(null,
                        InetAdrUtility.getLocalIPAdresses()), null/*,
                        serverConfig.server_port*/);
            }
            else if (!serverConfig.ssl_enabled && !serverConfig.multihomed_enabled)
                serverImpl = new ServerImpl(serverConfig.server_port);

            System.out.println(serverImpl);

            registry.rebind("jrdesktop", serverImpl);
           
          /* Naming.rebind("rmi://" + serverConfig.server_address + ":" +
                   serverConfig.server_port + "/jrdesktop", (ServerInterface) serverImpl);*/
      // }  catch (ExportException ee) {
            // registry already exists, we'll just use it.
        }catch (Exception e) {
            Stop();
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, e.getMessage(), "Error !!",
                    JOptionPane.ERROR_MESSAGE);          
            return false;
        }  

        System.out.println(getStatus());   
        return true;
    }             
   
    public static void Stop() {
        try {           
            if (registry != null) {
                UnicastRemoteObject.unexportObject(registry, true);
            }
        } catch (Exception e) {
            e.printStackTrace();
       
        registry = null;
        serverImpl = null;
    }
   
    public static String getStatus() {
        boolean auth = (serverConfig.username.length() != 0) ||
            (serverConfig.password.length() != 0);
        String status = "Running ..." +
            "\nat: " + serverConfig.server_address + ":" + serverConfig.server_port +
            "\nauthentication: " + (auth == true ? "enabled" : "disabled") +
            "\nencryption: " +
            (serverConfig.ssl_enabled == true ? "enabled" : "disabled") +
            "\nmultihomed: " +
            (serverConfig.multihomed_enabled == true ? "enabled" : "disabled") +
            "\nreverse connection: " +
            (serverConfig.reverseConnection == true ? "enabled" : "disabled");       
        return status;
    }
}
TOP

Related Classes of jrdesktop.rmi.server.RMIServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.