/* * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /* * A Super class for Transport Services used by * nsk/jdi/PlugConnectors tests */ package nsk.share.jdi; import com.sun.jdi.*; import com.sun.jdi.connect.*; import com.sun.jdi.connect.spi.*; import java.io.*; import java.util.*; public class PlugTransportService extends TransportService { String plugTransportServiceName = "Undefined_PlugTransportService_Name"; String plugTransportServiceDescription = "Undefined_PlugTransportService_Description"; TransportService.Capabilities plugTransportServiceCapabilities = new TestCapabilities(); /* * Simple implementation of TransportService.Capabilities */ public static class TestCapabilities extends TransportService.Capabilities { boolean supportsAcceptTimeout = false; boolean supportsAttachTimeout = false; boolean supportsHandshakeTimeout = false; boolean supportsMultipleConnections = false; public TestCapabilities() { } public TestCapabilities( boolean supportsAcceptTimeout, boolean supportsAttachTimeout, boolean supportsHandshakeTimeout, boolean supportsMultipleConnections) { this.supportsAcceptTimeout = supportsAcceptTimeout; this.supportsAttachTimeout = supportsAttachTimeout; this.supportsHandshakeTimeout = supportsHandshakeTimeout; this.supportsMultipleConnections = supportsMultipleConnections; } public boolean supportsAcceptTimeout() { return supportsAcceptTimeout; } public boolean supportsAttachTimeout() { return supportsAttachTimeout; } public boolean supportsHandshakeTimeout() { return supportsHandshakeTimeout; } public boolean supportsMultipleConnections() { return supportsMultipleConnections; } } // end of TestCapabilities static class /* * Simple implementation of TransportService.ListenKey */ public static class TestListenKey extends TransportService.ListenKey { String address = null; public TestListenKey() { } public TestListenKey(String address) { this.address = address; } public String address() { return address; } } // end of TestListenKey static class public PlugTransportService() { } public PlugTransportService( String plugTransportServiceName, String plugTransportServiceDescription, TransportService.Capabilities plugTransportServiceCapabilities ) { this.plugTransportServiceName = plugTransportServiceName; this.plugTransportServiceDescription = plugTransportServiceDescription; this.plugTransportServiceCapabilities = plugTransportServiceCapabilities; } public String name() { return plugTransportServiceName; } public String description() { return plugTransportServiceDescription; } public TransportService.Capabilities capabilities() { return plugTransportServiceCapabilities; } public Connection attach( String address, long attachTimeout, long handshakeTimeout) throws IOException { String exceptionMessage = "## PlugTransportService: TransportService name = '" + plugTransportServiceName + "';\nNon-authorized call of attach(...) method!"; if ( true ) { throw new RuntimeException(exceptionMessage); } return null; } public TransportService.ListenKey startListening(String address) throws IOException { String exceptionMessage = "## PlugTransportService: TransportService name = '" + plugTransportServiceName + "';\nNon-authorized call of startListening(...) method!"; if ( true ) { throw new RuntimeException(exceptionMessage); } return null; } public TransportService.ListenKey startListening() throws IOException { String exceptionMessage = "## PlugTransportService: TransportService name = '" + plugTransportServiceName + "';\nNon-authorized call of startListening() method!"; if ( true ) { throw new RuntimeException(exceptionMessage); } return null; } public void stopListening(TransportService.ListenKey listenKey) throws IOException { String exceptionMessage = "## PlugTransportService: TransportService name = '" + plugTransportServiceName + "';\nNon-authorized call of stopListening() method!"; if ( true ) { throw new RuntimeException(exceptionMessage); } } public Connection accept( TransportService.ListenKey listenKey, long acceptTimeout, long handshakeTimeout) throws IOException { String exceptionMessage = "## PlugTransportService: TransportService name = '" + plugTransportServiceName + "';\nNon-authorized call of accept(...) method!"; if ( true ) { throw new RuntimeException(exceptionMessage); } return null; } /* * Simple implementation of Connection */ public static class PlugTransportServiceConnection extends Connection { public void close() throws IOException { String exceptionMessage = "## PlugTransportConnection: \nNon-authorized call of close() method!"; if ( true ) { throw new RuntimeException(exceptionMessage); } } public boolean isOpen() { String exceptionMessage = "## PlugTransportConnection: \nNon-authorized call of isOpen() method!"; if ( true ) { throw new RuntimeException(exceptionMessage); } return false; } public byte[] readPacket() throws IOException { String exceptionMessage = "## PlugTransportConnection: \nNon-authorized call of readPacket() method!"; if ( true ) { throw new ClosedConnectionException(exceptionMessage); } if ( true ) { throw new ClosedConnectionException(); } return null; } public void writePacket(byte[] pkt) throws IOException { String exceptionMessage = "## PlugTransportConnection: \nNon-authorized call of writePacket(...) method!"; if ( true ) { throw new ClosedConnectionException(exceptionMessage); } if ( true ) { throw new ClosedConnectionException(); } } } // end of PlugTransportServiceConnection class } // end of PlugTransportService class