Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/sun/management/jmxremote/bootstrap/TestApplication.java
38867 views
/*1* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24*25*26* A test "application" used by unit tests -27* LocalManagementTest.java, CustomLauncherTest.java.28* This application binds to some random port, prints its pid and29* the port number to standard output, waits for somebody to connect,30* and then shuts down.31*/32import java.io.IOException;33import java.net.ServerSocket;34import java.net.Socket;3536import jdk.testlibrary.ProcessTools;3738public class TestApplication {39public static void main(String[] args) throws IOException {40// Some tests require the application to exit immediately41if (args.length > 0 && args[0].equals("-exit")) {42return;43}4445// bind to a random port46ServerSocket ss = new ServerSocket(0);47int port = ss.getLocalPort();4849int pid = -1;50try {51pid = ProcessTools.getProcessId();52} catch (Exception e) {53e.printStackTrace();54}5556// signal test that we are started - do not remove these lines!!57System.out.println("port:" + port);58System.out.println("pid:" + pid);59System.out.println("waiting for the manager ...");60System.out.flush();6162// wait for manager to connect63Socket s = ss.accept();64s.close();65ss.close();66}67}686970