blob: adb1819ec820c13a2abd7d1b343aff29e6a13706 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 1998-1999 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/*
25 */
26
27import java.rmi.*;
28import java.rmi.server.*;
29import java.rmi.registry.*;
30
31public class HelloImpl
32 extends UnicastRemoteObject
33 implements Hello
34{
35
36 public static boolean clientCalledSuccessfully = false;
37
38 public HelloImpl() throws RemoteException {
39 super(0);
40 }
41
42 public synchronized String sayHello() {
43 HelloImpl.clientCalledSuccessfully = true;
44 System.out.println("hello method called");
45 this.notifyAll();
46 return "hello";
47 }
48
49 public static void main(String[] args) {
50 /*
51 * The following line is required with the JDK 1.2 VM so that the
52 * VM can exit gracefully when this test completes. Otherwise, the
53 * conservative garbage collector will find a handle to the server
54 * object on the native stack and not clear the weak reference to
55 * it in the RMI runtime's object table.
56 */
57 Object dummy = new Object();
58 Hello hello = null;
59 Registry registry = null;
60
61 TestLibrary.suggestSecurityManager("java.rmi.RMISecurityManager");
62
63 try {
64 String protocol = "";
65 if (args.length >= 1)
66 protocol = args[0];
67
68 registry = java.rmi.registry.LocateRegistry.
69 getRegistry("localhost", TestLibrary.REGISTRY_PORT,
70 new Compress.CompressRMIClientSocketFactory());
71 UseCustomSocketFactory.checkStub(registry, "RMIClientSocket");
72 hello = (Hello) registry.lookup("/HelloServer");
73
74 /* lookup server */
75 System.err.println(hello.sayHello() +
76 ", remote greeting.");
77 } catch (Exception e) {
78 System.err.println("EXCEPTION OCCURRED:");
79 e.printStackTrace();
80 } finally {
81 hello = null;
82 }
83 }
84}