1 46 47 package org.mr.api.rmi; 48 49 import java.net.MalformedURLException ; 50 import java.rmi.Naming ; 51 import java.rmi.RemoteException ; 52 import java.rmi.registry.LocateRegistry ; 53 import java.rmi.server.UnicastRemoteObject ; 54 55 import org.apache.commons.logging.Log; 56 import org.apache.commons.logging.LogFactory; 57 import org.mr.MantaAgent; 58 import org.mr.api.rmi.thin.ThinMessagingInterface; 59 import org.mr.api.rmi.thin.ThinRMIJMSImpl; 60 import org.mr.core.configuration.ConfigManager; 61 62 68 public class MantaRMIServer { 69 70 public static MantaAgent manta; 71 private static ThinMessagingInterface thin; 74 75 private static int PORT; private static String HOST_NAME; private static Log log; 78 79 public static final void init(){ 80 81 manta = MantaAgent.getInstance(); 82 ConfigManager config = manta.getSingletonRepository().getConfigManager(); 83 boolean rmiEnabled = config.getBooleanProperty("rmi.enabled",false); 84 log=LogFactory.getLog("MantaRMIServer"); 85 86 if(!rmiEnabled){ 87 if(log.isInfoEnabled()){ 89 log.info("MantaRMIServer is disabled property 'enable_rmi_api' is null or false."); 90 } 91 92 return; 93 } 94 95 boolean createRMIRegistry = config.getBooleanProperty("rmi.create_rmi_registry",false); 96 PORT = config.getIntProperty("rmi.rmi_registry_port", 10005); 97 HOST_NAME =config.getStringProperty("rmi.rmi_registry_host_name", "localhost"); 98 try 99 { 100 thin = new ThinRMIJMSImpl(); 102 if(createRMIRegistry){ 103 if(log.isInfoEnabled()){ 104 log.info("MantaRMIServer is trying to create an rmi registry on port "+PORT+"."); 105 } 106 LocateRegistry.createRegistry( PORT ); 107 if(log.isInfoEnabled()){ 108 log.info("Registry created."); 109 } 110 }else{ 111 if(log.isInfoEnabled()){ 112 log.info("MantaRMIServer will not create an rmi registry but try to connect to a remote one."); 113 } 114 } 115 116 117 UnicastRemoteObject.exportObject( ((ThinMessagingInterface)thin) ); 118 if(log.isInfoEnabled()){ 119 log.info("MantaRMIServer trying to bind ThinRMIMantarayImpl to RMI registry "+HOST_NAME+":"+PORT+"."); 120 } 121 122 Naming.rebind( "//" + HOST_NAME + ":" + Integer.toString( PORT ) + "/" + "MessagingThinAPI", thin ); 123 124 if(log.isInfoEnabled()){ 125 log.info("Bindings Finished."); 126 } 127 128 129 if(log.isInfoEnabled()){ 130 log.info("MantaRMIServer waiting for Client requests."); 131 } 132 133 } 134 catch ( java.rmi.UnknownHostException uhe ) 135 { 136 if(log.isErrorEnabled()){ 137 log.error("The host computer name you have specified, " + HOST_NAME + " does not match your real computer name.",uhe ); 138 } 139 140 141 } 142 catch ( RemoteException re ) 143 { 144 if(log.isErrorEnabled()){ 145 log.error("Error starting API.",re ); 146 } 147 148 } 149 catch ( MalformedURLException mURLe ) 150 { 151 if(log.isErrorEnabled()){ 152 log.error("Internal error" + mURLe+".",mURLe ); 153 } 154 } 155 } 156 } 157 158 159 | Popular Tags |