KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > cruisecontrol > distributed > util > JiniLookUpUtility


1 /****************************************************************************
2 * CruiseControl, a Continuous Integration Toolkit
3 * Copyright (c) 2001, ThoughtWorks, Inc.
4 * 651 W Washington Ave. Suite 600
5 * Chicago, IL 60661 USA
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * + Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * + Redistributions in binary form must reproduce the above
16 * copyright notice, this list of conditions and the following
17 * disclaimer in the documentation and/or other materials provided
18 * with the distribution.
19 *
20 * + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
21 * names of its contributors may be used to endorse or promote
22 * products derived from this software without specific prior
23 * written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
29 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 ****************************************************************************/

37
38 package net.sourceforge.cruisecontrol.distributed.util;
39
40 import java.rmi.RemoteException JavaDoc;
41
42 import net.jini.core.lookup.ServiceItem;
43 import net.jini.core.lookup.ServiceMatches;
44 import net.jini.core.lookup.ServiceRegistrar;
45 import net.jini.core.lookup.ServiceTemplate;
46
47 import org.apache.log4j.Logger;
48
49 /**
50  * This utility class finds Jini registrars on the local subnet and itemizes
51  * each of their registered services. It is needed solely for testing purposes.
52  *
53  * Run the main() method to see the local Jini services.
54  */

55 public final class JiniLookUpUtility {
56
57     private static final Logger LOG = Logger.getLogger(JiniLookUpUtility.class);
58
59     private MulticastDiscovery discovery = new MulticastDiscovery(null);
60
61     private JiniLookUpUtility() {
62         String JavaDoc waitMessage = "Waiting 5 seconds for registrars to report in...";
63         System.out.println(waitMessage);
64         LOG.info(waitMessage);
65         try {
66             try {
67                 Thread.sleep(5000);
68             } catch (InterruptedException JavaDoc e1) {
69             }
70             ServiceRegistrar[] registrars = discovery.getRegistrars();
71             for (int x = 0; x < registrars.length; x++) {
72                 ServiceRegistrar registrar = registrars[x];
73                 String JavaDoc registrarInfo = "Registrar: " + registrar.getServiceID();
74                 System.out.println();
75                 System.out.println(registrarInfo);
76                 LOG.debug(registrarInfo);
77                 ServiceTemplate template = new ServiceTemplate(null, null, null);
78                 ServiceMatches matches = registrar.lookup(template, Integer.MAX_VALUE);
79                 ServiceItem[] items = matches.items;
80                 for (int i = 0; i < items.length; i++) {
81                     String JavaDoc serviceInfo = " Service: " + items[i].service;
82                     System.out.println(serviceInfo);
83                     LOG.debug(serviceInfo);
84                 }
85             }
86         } catch (RemoteException JavaDoc e) {
87             String JavaDoc message = "Search failed due to an unexpected error";
88             LOG.error(message, e);
89             System.err.println(waitMessage + " - " + e.getMessage());
90             throw new RuntimeException JavaDoc(message, e);
91         }
92     }
93
94     public static void main(String JavaDoc[] args) {
95         new JiniLookUpUtility();
96     }
97 }
98
Popular Tags