KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > rmi > clt > ClientLauncher


1 /***
2  * Julia: France Telecom's implementation of the Fractal API
3  * Copyright (C) 2001-2002 France Telecom R&D
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Contact: Eric.Bruneton@rd.francetelecom.com
20  *
21  * Author: Eric Bruneton
22  */

23
24 package rmi.clt;
25
26 import java.util.HashMap JavaDoc;
27 import java.util.Map JavaDoc;
28
29 import org.objectweb.fractal.adl.Factory;
30 import org.objectweb.fractal.adl.FactoryFactory;
31
32 import org.objectweb.fractal.api.Component;
33
34 import org.objectweb.fractal.rmi.registry.NamingService;
35 import org.objectweb.fractal.rmi.registry.Registry;
36
37 import org.objectweb.fractal.util.Fractal;
38
39 public class ClientLauncher {
40
41   public static void main (final String JavaDoc[] args) throws Exception JavaDoc {
42     // the RMI class loader does not work if there is no security manager
43
System.setSecurityManager(new SecurityManager JavaDoc());
44
45     boolean useWrapper = false;
46     for (int i = 0; i < args.length; ++i) {
47       useWrapper |= args[i].equals("wrapper");
48     }
49
50     NamingService ns = Registry.getRegistry();
51
52     String JavaDoc name = useWrapper ? "rmi.clt.WrappedClientServer" : "rmi.clt.ClientServer";
53     
54     Map JavaDoc context = new HashMap JavaDoc();
55     context.put("remote-node", ns.lookup("server-host"));
56     
57     Factory f = FactoryFactory.getFactory(FactoryFactory.FRACTAL_BACKEND);
58     Component c = (Component)f.newComponent(name, context);
59
60     // start root component
61
Fractal.getLifeCycleController(c).startFc();
62
63     // call main method
64
((Main)c.getFcInterface("m")).main(new String JavaDoc[0]);
65   }
66 }
67
Popular Tags