Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/rmi/testlibrary/RMIRegistryRunner.java
41149 views
1
/*
2
* Copyright (c) 2017, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/**/
25
26
import java.rmi.*;
27
import java.rmi.registry.*;
28
import java.rmi.server.*;
29
30
/**
31
* Class to run a rmiregistry whose VM can be told to exit remotely;
32
* Difference between this class and RegistryRunner is that this class
33
* simulate rmiregistry closer than RegistryRunner.
34
*/
35
public class RMIRegistryRunner extends RegistryRunner
36
{
37
public RMIRegistryRunner() throws RemoteException {
38
}
39
40
/**
41
* port 0 means to use ephemeral port to start registry.
42
*
43
* @param args command line arguments passed in from main
44
* @return the port number on which registry accepts requests
45
*/
46
protected static int init(String[] args) {
47
try {
48
if (args.length == 0) {
49
System.err.println("Usage: <port>");
50
System.exit(0);
51
}
52
int port = -1;
53
port = Integer.parseInt(args[0]);
54
55
// call RegistryImpl.createRegistry to simulate rmiregistry.
56
registry = sun.rmi.registry.RegistryImpl.createRegistry(port);
57
if (port == 0) {
58
port = TestLibrary.getRegistryPort(registry);
59
}
60
61
// create a remote object to tell this VM to exit
62
exiter = new RMIRegistryRunner();
63
Naming.rebind("rmi://localhost:" + port +
64
"/RemoteExiter", exiter);
65
66
return port;
67
} catch (Exception e) {
68
System.err.println(e.getMessage());
69
e.printStackTrace();
70
System.exit(1);
71
}
72
return -1;
73
}
74
75
public static void main(String[] args) {
76
int port = init(args);
77
notify(port);
78
}
79
}
80
81