comparison src/org/dancres/blitz/tools/RequestReap.java @ 0:3dc0c5604566

Initial checkin of blitz 2.0 fcs - no installer yet.
author Dan Creswell <dan.creswell@gmail.com>
date Sat, 21 Mar 2009 11:00:06 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:3dc0c5604566
1 package org.dancres.blitz.tools;
2
3 import java.io.IOException;
4
5 import java.rmi.RemoteException;
6 import java.rmi.RMISecurityManager;
7
8 import net.jini.discovery.*;
9
10 import net.jini.lookup.*;
11 import net.jini.lookup.entry.Name;
12
13 import net.jini.core.lookup.ServiceItem;
14 import net.jini.core.lookup.ServiceTemplate;
15
16 import net.jini.core.entry.Entry;
17
18 import net.jini.admin.Administrable;
19
20 import net.jini.space.JavaSpace;
21
22 import net.jini.core.transaction.TransactionException;
23
24 import org.dancres.blitz.remote.BlitzAdmin;
25
26 import org.dancres.jini.util.DiscoveryUtil;
27 import org.dancres.jini.util.ServiceLocator;
28
29 /**
30 <p>RequestReap accepts a spacename as an argument and attempts to
31 trigger a manual reap of any lease expired contents.</p>
32
33 <p>Typical usage:
34
35 <pre>
36 java -Xmx256m -Djava.security.policy=config/policy.all
37 -classpath /home/dan/jini/jini2_0/lib/jsk-platform.jar:/home/dan/src/jini/space/build:/home/dan/jini/jini2_0/lib/jini-ext.jar:/home/dan/jini/jini2_0/lib/sun-util.jar
38 org.dancres.blitz.tools.RequestReap dancres
39 </pre>
40
41 @see org.dancres.blitz.remote.BlitzAdmin
42 */
43 public class RequestReap {
44 private static final long MAX_DISCOVER_TIME = 15 * 1000;
45
46 public static void main(String args[]) {
47 if (System.getSecurityManager() == null)
48 System.setSecurityManager(new RMISecurityManager());
49
50 try {
51 try {
52 Object myProxy = null;
53
54 if (args.length == 1)
55 myProxy = ServiceLocator.getService(JavaSpace.class,
56 args[0],
57 MAX_DISCOVER_TIME);
58 else if (args.length == 2) {
59 myProxy = ServiceLocator.getService(args[0],
60 JavaSpace.class,
61 args[1]);
62 } else {
63 System.err.println("Wrong number of arguments - should be <spacename> or <LUS host> <spacename>");
64 System.exit(-1);
65 }
66
67 if (myProxy != null) {
68 System.err.println("Found space: " + myProxy);
69
70 DiscoveryUtil.dumpInterfaces(myProxy.getClass());
71
72 if (DiscoveryUtil.hasInterface(myProxy,
73 Administrable.class)) {
74 Administrable myAdmin = (Administrable) myProxy;
75
76 Object myAdminProxy = myAdmin.getAdmin();
77
78 DiscoveryUtil.dumpInterfaces(myAdminProxy.getClass());
79
80 if (DiscoveryUtil.hasInterface(myAdminProxy,
81 BlitzAdmin.class)) {
82 BlitzAdmin myBlitzAdmin =
83 (BlitzAdmin) myAdminProxy;
84
85 System.err.println("Invoking reap");
86 myBlitzAdmin.reap();
87 } else {
88 System.err.println("No BlitzAdmin interface found - can't be Blitz");
89 }
90 } else {
91 System.err.println("No admin interface present - can't be Blitz");
92 }
93 }
94 } catch (InterruptedException anIE) {
95 System.err.println("!!! Whoops service not found :( !!!");
96 }
97 } catch (ClassNotFoundException aCNFE) {
98 System.err.println("ClassNotFound exception");
99 aCNFE.printStackTrace(System.err);
100 } catch (RemoteException anRE) {
101 System.err.println("Remote exception");
102 anRE.printStackTrace(System.err);
103 } catch (IOException anIOE) {
104 System.err.println("Failed to configure discovery");
105 anIOE.printStackTrace(System.err);
106 }
107 }
108 }