KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mr > api > rmi > MantaRMIServer


1 /*
2  * Copyright 2002 by
3  * <a HREF="http://www.coridan.com">Coridan</a>
4  * <a HREF="mailto: support@coridan.com ">support@coridan.com</a>
5  *
6  * The contents of this file are subject to the Mozilla Public License Version
7  * 1.1 (the "License"); you may not use this file except in compliance with the
8  * License. You may obtain a copy of the License at
9  * http://www.mozilla.org/MPL/
10  *
11  * Software distributed under the License is distributed on an "AS IS" basis,
12  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13  * for the specific language governing rights and limitations under the
14  * License.
15  *
16  * The Original Code is "MantaRay" (TM).
17  *
18  * The Initial Developer of the Original Code is Amir Shevat .
19  * Portions created by the Initial Developer are Copyright (C) 2006
20  * Coridan Inc. All Rights Reserved.
21  *
22  * Contributor(s): all the names of the contributors are added in the source
23  * code where applicable.
24  *
25  * Alternatively, the contents of this file may be used under the terms of the
26  * LGPL license (the "GNU LESSER GENERAL PUBLIC LICENSE"), in which case the
27  * provisions of LGPL are applicable instead of those above. If you wish to
28  * allow use of your version of this file only under the terms of the LGPL
29  * License and not to allow others to use your version of this file under
30  * the MPL, indicate your decision by deleting the provisions above and
31  * replace them with the notice and other provisions required by the LGPL.
32  * If you do not delete the provisions above, a recipient may use your version
33  * of this file under either the MPL or the GNU LESSER GENERAL PUBLIC LICENSE.
34  
35  *
36  * This library is free software; you can redistribute it and/or modify it
37  * under the terms of the MPL as stated above or under the terms of the GNU
38  * Lesser General Public License as published by the Free Software Foundation;
39  * either version 2.1 of the License, or any later version.
40  *
41  * This library is distributed in the hope that it will be useful, but WITHOUT
42  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
43  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
44  * License for more details.
45  */

46
47 package org.mr.api.rmi;
48
49 import java.net.MalformedURLException JavaDoc;
50 import java.rmi.Naming JavaDoc;
51 import java.rmi.RemoteException JavaDoc;
52 import java.rmi.registry.LocateRegistry JavaDoc;
53 import java.rmi.server.UnicastRemoteObject JavaDoc;
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 /**
63  * Runs the RMI api and the rmi registry when needed
64  *
65  * @author Amir Shevat
66  *
67  */

68 public class MantaRMIServer {
69     
70     public static MantaAgent manta;
71      // Instance of the thin RMI API
72
// private static ThinRMIMantarayImpl thin;
73
private static ThinMessagingInterface thin;
74        
75        private static int PORT; // = 10005;
76
private static String JavaDoc HOST_NAME; //= "localhost";
77
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         // RMI API disabled
88
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 ThinRMIMantarayImpl();
101
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 JavaDoc 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 JavaDoc re )
143           {
144               if(log.isErrorEnabled()){
145                 log.error("Error starting API.",re );
146              }
147              
148           }
149           catch ( MalformedURLException JavaDoc mURLe )
150           {
151               if(log.isErrorEnabled()){
152                 log.error("Internal error" + mURLe+".",mURLe );
153              }
154           }
155     }
156 }
157
158
159
Popular Tags