8055230: Rename attach provider implementation class be platform neutral
Reviewed-by: alanb, chegar, dfuchs, dholmes, erikj, sla
This commit is contained in:
parent
7bded9c7bf
commit
6533d2dc01
jdk
make
gensrc
lib
mapfiles/libattach
src/jdk.attach
aix
classes/sun/tools/attach
native/libattach
linux
classes/sun/tools/attach
native/libattach
macosx
classes/sun/tools/attach
native/libattach
share/classes/META-INF/services
solaris
classes/sun/tools/attach
native/libattach
windows
classes/sun/tools/attach
native/libattach
@ -32,15 +32,6 @@ endef
|
||||
|
||||
################################################################################
|
||||
|
||||
# Filter com.sun.tools.attach.spi.AttachProvider
|
||||
$(JDK_OUTPUTDIR)/gensrc/jdk.attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider: \
|
||||
$(JDK_TOPDIR)/src/jdk.attach/share/classes/META-INF/services/com.sun.tools.attach.spi.AttachProvider
|
||||
$(process-provider)
|
||||
|
||||
GENSRC_JDK_ATTACH += $(JDK_OUTPUTDIR)/gensrc/jdk.attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider
|
||||
|
||||
################################################################################
|
||||
|
||||
# Filter com.sun.jdi.connect.Connector
|
||||
$(JDK_OUTPUTDIR)/gensrc/jdk.jdi/META-INF/services/com.sun.jdi.connect.Connector: \
|
||||
$(JDK_TOPDIR)/src/jdk.jdi/share/classes/META-INF/services/com.sun.jdi.connect.Connector
|
||||
|
@ -27,33 +27,11 @@ include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
LIBATTACH_OS_API_DIR := aix
|
||||
else
|
||||
LIBATTACH_OS_API_DIR := $(OPENJDK_TARGET_OS_API_DIR)
|
||||
endif
|
||||
|
||||
LIBATTACH_SRC := $(JDK_TOPDIR)/src/jdk.attach/$(LIBATTACH_OS_API_DIR)/native/libattach
|
||||
|
||||
LIBATTACH_EXCLUDE_FILES :=
|
||||
ifneq ($(OPENJDK_TARGET_OS), solaris)
|
||||
LIBATTACH_EXCLUDE_FILES += SolarisVirtualMachine.c
|
||||
endif
|
||||
ifneq ($(OPENJDK_TARGET_OS), linux)
|
||||
LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c
|
||||
endif
|
||||
ifneq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c
|
||||
endif
|
||||
ifneq ($(OPENJDK_TARGET_OS),aix)
|
||||
LIBATTACH_EXCLUDE_FILES += AixVirtualMachine.c
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH, \
|
||||
LIBRARY := attach, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBATTACH_SRC), \
|
||||
EXCLUDE_FILES := $(LIBATTACH_EXCLUDE_FILES), \
|
||||
SRC := $(JDK_TOPDIR)/src/jdk.attach/$(OPENJDK_TARGET_OS)/native/libattach, \
|
||||
LANG := C, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) \
|
||||
|
@ -27,13 +27,13 @@
|
||||
|
||||
SUNWprivate_1.1 {
|
||||
global:
|
||||
Java_sun_tools_attach_AixVirtualMachine_socket
|
||||
Java_sun_tools_attach_AixVirtualMachine_connect
|
||||
Java_sun_tools_attach_AixVirtualMachine_sendQuitTo
|
||||
Java_sun_tools_attach_AixVirtualMachine_checkPermissions
|
||||
Java_sun_tools_attach_AixVirtualMachine_close
|
||||
Java_sun_tools_attach_AixVirtualMachine_read
|
||||
Java_sun_tools_attach_AixVirtualMachine_write
|
||||
Java_sun_tools_attach_VirtualMachineImpl_socket
|
||||
Java_sun_tools_attach_VirtualMachineImpl_connect
|
||||
Java_sun_tools_attach_VirtualMachineImpl_sendQuitTo
|
||||
Java_sun_tools_attach_VirtualMachineImpl_checkPermissions
|
||||
Java_sun_tools_attach_VirtualMachineImpl_close
|
||||
Java_sun_tools_attach_VirtualMachineImpl_read
|
||||
Java_sun_tools_attach_VirtualMachineImpl_write
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
@ -27,17 +27,17 @@
|
||||
|
||||
SUNWprivate_1.1 {
|
||||
global:
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_checkPermissions;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_close;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_connect;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_getLinuxThreadsManager;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_isLinuxThreads;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_open;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_sendQuitTo;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_sendQuitToChildrenOf;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_socket;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_read;
|
||||
Java_sun_tools_attach_LinuxVirtualMachine_write;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_checkPermissions;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_close;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_connect;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_getLinuxThreadsManager;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_isLinuxThreads;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_open;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_sendQuitTo;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_sendQuitToChildrenOf;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_socket;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_read;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_write;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
@ -27,12 +27,12 @@
|
||||
|
||||
SUNWprivate_1.1 {
|
||||
global:
|
||||
Java_sun_tools_attach_SolarisVirtualMachine_checkPermissions;
|
||||
Java_sun_tools_attach_SolarisVirtualMachine_enqueue;
|
||||
Java_sun_tools_attach_SolarisVirtualMachine_open;
|
||||
Java_sun_tools_attach_SolarisVirtualMachine_close;
|
||||
Java_sun_tools_attach_SolarisVirtualMachine_read;
|
||||
Java_sun_tools_attach_SolarisVirtualMachine_sigquit;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_checkPermissions;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_enqueue;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_open;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_close;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_read;
|
||||
Java_sun_tools_attach_VirtualMachineImpl_sigquit;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
@ -32,19 +32,18 @@ import com.sun.tools.attach.spi.AttachProvider;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
// Based on 'LinuxAttachProvider.java'. All occurrences of the string
|
||||
// "Linux" have been textually replaced by "Aix" to avoid confusion.
|
||||
// Based on linux/classes/sun/tools/attach/AttachProviderImpl.java.
|
||||
|
||||
/*
|
||||
* An AttachProvider implementation for Aix that uses a UNIX domain
|
||||
* socket.
|
||||
*/
|
||||
public class AixAttachProvider extends HotSpotAttachProvider {
|
||||
public class AttachProviderImpl extends HotSpotAttachProvider {
|
||||
|
||||
// perf counter for the JVM version
|
||||
private static final String JVM_VERSION = "java.property.java.vm.version";
|
||||
|
||||
public AixAttachProvider() {
|
||||
public AttachProviderImpl() {
|
||||
}
|
||||
|
||||
public String name() {
|
||||
@ -64,7 +63,7 @@ public class AixAttachProvider extends HotSpotAttachProvider {
|
||||
// to be not attachable.
|
||||
testAttachable(vmid);
|
||||
|
||||
return new AixVirtualMachine(this, vmid);
|
||||
return new VirtualMachineImpl(this, vmid);
|
||||
}
|
||||
|
||||
public VirtualMachine attachVirtualMachine(VirtualMachineDescriptor vmd)
|
||||
@ -79,7 +78,7 @@ public class AixAttachProvider extends HotSpotAttachProvider {
|
||||
if (vmd instanceof HotSpotVirtualMachineDescriptor) {
|
||||
assert ((HotSpotVirtualMachineDescriptor)vmd).isAttachable();
|
||||
checkAttachPermission();
|
||||
return new AixVirtualMachine(this, vmd.id());
|
||||
return new VirtualMachineImpl(this, vmd.id());
|
||||
} else {
|
||||
return attachVirtualMachine(vmd.id());
|
||||
}
|
@ -34,13 +34,12 @@ import java.io.IOException;
|
||||
import java.io.File;
|
||||
import java.util.Properties;
|
||||
|
||||
// Based on 'LinuxVirtualMachine.java'. All occurrences of the string
|
||||
// "Linux" have been textually replaced by "Aix" to avoid confusion.
|
||||
// Based on linux/classes/sun/tools/attach/VirtualMachineImpl.java.
|
||||
|
||||
/*
|
||||
* Aix implementation of HotSpotVirtualMachine
|
||||
*/
|
||||
public class AixVirtualMachine extends HotSpotVirtualMachine {
|
||||
public class VirtualMachineImpl extends HotSpotVirtualMachine {
|
||||
// "/tmp" is used as a global well-known location for the files
|
||||
// .java_pid<pid>. and .attach_pid<pid>. It is important that this
|
||||
// location is the same for all processes, otherwise the tools
|
||||
@ -54,7 +53,7 @@ public class AixVirtualMachine extends HotSpotVirtualMachine {
|
||||
/**
|
||||
* Attaches to the target VM
|
||||
*/
|
||||
AixVirtualMachine(AttachProvider provider, String vmid)
|
||||
VirtualMachineImpl(AttachProvider provider, String vmid)
|
||||
throws AttachNotSupportedException, IOException
|
||||
{
|
||||
super(provider, vmid);
|
||||
@ -241,11 +240,11 @@ public class AixVirtualMachine extends HotSpotVirtualMachine {
|
||||
} else if (len == 0)
|
||||
return 0;
|
||||
|
||||
return AixVirtualMachine.read(s, bs, off, len);
|
||||
return VirtualMachineImpl.read(s, bs, off, len);
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
AixVirtualMachine.close(s);
|
||||
VirtualMachineImpl.close(s);
|
||||
}
|
||||
}
|
||||
|
||||
@ -287,7 +286,7 @@ public class AixVirtualMachine extends HotSpotVirtualMachine {
|
||||
} catch (java.io.UnsupportedEncodingException x) {
|
||||
throw new InternalError(x);
|
||||
}
|
||||
AixVirtualMachine.write(fd, b, 0, b.length);
|
||||
VirtualMachineImpl.write(fd, b, 0, b.length);
|
||||
}
|
||||
byte b[] = new byte[1];
|
||||
b[0] = 0;
|
@ -45,7 +45,7 @@
|
||||
* occurrences of the string "Linux" have been replaced by "Aix".
|
||||
*/
|
||||
|
||||
#include "sun_tools_attach_AixVirtualMachine.h"
|
||||
#include "sun_tools_attach_VirtualMachineImpl.h"
|
||||
|
||||
#define RESTARTABLE(_cmd, _result) do { \
|
||||
do { \
|
||||
@ -55,11 +55,11 @@
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_AixVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: socket
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_AixVirtualMachine_socket
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_socket
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
int fd = socket(PF_UNIX, SOCK_STREAM, 0);
|
||||
@ -79,11 +79,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_AixVirtualMachine_socket
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_AixVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: connect
|
||||
* Signature: (ILjava/lang/String;)I
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_connect
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_connect
|
||||
(JNIEnv *env, jclass cls, jint fd, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -142,11 +142,11 @@ static void SendQuitCallback(const pid_t pid, void* user_data) {
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_AixVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: sendQuitTo
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_sendQuitTo
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_sendQuitTo
|
||||
(JNIEnv *env, jclass cls, jint pid)
|
||||
{
|
||||
if (kill((pid_t)pid, SIGQUIT)) {
|
||||
@ -155,11 +155,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_sendQuitTo
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_AixVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: checkPermissions
|
||||
* Signature: (Ljava/lang/String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_checkPermissions
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_checkPermissions
|
||||
(JNIEnv *env, jclass cls, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -205,11 +205,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_checkPermissions
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_AixVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: close
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_close
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_close
|
||||
(JNIEnv *env, jclass cls, jint fd)
|
||||
{
|
||||
int res;
|
||||
@ -222,11 +222,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_close
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_AixVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: read
|
||||
* Signature: (I[BI)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_AixVirtualMachine_read
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_read
|
||||
(JNIEnv *env, jclass cls, jint fd, jbyteArray ba, jint off, jint baLen)
|
||||
{
|
||||
unsigned char buf[128];
|
||||
@ -252,11 +252,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_AixVirtualMachine_read
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_AixVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: write
|
||||
* Signature: (I[B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_AixVirtualMachine_write
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_write
|
||||
(JNIEnv *env, jclass cls, jint fd, jbyteArray ba, jint off, jint bufLen)
|
||||
{
|
||||
size_t remaining = bufLen;
|
@ -35,12 +35,12 @@ import java.io.IOException;
|
||||
* An AttachProvider implementation for Linux that uses a UNIX domain
|
||||
* socket.
|
||||
*/
|
||||
public class LinuxAttachProvider extends HotSpotAttachProvider {
|
||||
public class AttachProviderImpl extends HotSpotAttachProvider {
|
||||
|
||||
// perf counter for the JVM version
|
||||
private static final String JVM_VERSION = "java.property.java.vm.version";
|
||||
|
||||
public LinuxAttachProvider() {
|
||||
public AttachProviderImpl() {
|
||||
}
|
||||
|
||||
public String name() {
|
||||
@ -60,7 +60,7 @@ public class LinuxAttachProvider extends HotSpotAttachProvider {
|
||||
// to be not attachable.
|
||||
testAttachable(vmid);
|
||||
|
||||
return new LinuxVirtualMachine(this, vmid);
|
||||
return new VirtualMachineImpl(this, vmid);
|
||||
}
|
||||
|
||||
public VirtualMachine attachVirtualMachine(VirtualMachineDescriptor vmd)
|
||||
@ -75,7 +75,7 @@ public class LinuxAttachProvider extends HotSpotAttachProvider {
|
||||
if (vmd instanceof HotSpotVirtualMachineDescriptor) {
|
||||
assert ((HotSpotVirtualMachineDescriptor)vmd).isAttachable();
|
||||
checkAttachPermission();
|
||||
return new LinuxVirtualMachine(this, vmd.id());
|
||||
return new VirtualMachineImpl(this, vmd.id());
|
||||
} else {
|
||||
return attachVirtualMachine(vmd.id());
|
||||
}
|
@ -36,7 +36,7 @@ import java.io.File;
|
||||
/*
|
||||
* Linux implementation of HotSpotVirtualMachine
|
||||
*/
|
||||
public class LinuxVirtualMachine extends HotSpotVirtualMachine {
|
||||
public class VirtualMachineImpl extends HotSpotVirtualMachine {
|
||||
// "/tmp" is used as a global well-known location for the files
|
||||
// .java_pid<pid>. and .attach_pid<pid>. It is important that this
|
||||
// location is the same for all processes, otherwise the tools
|
||||
@ -53,7 +53,7 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine {
|
||||
/**
|
||||
* Attaches to the target VM
|
||||
*/
|
||||
LinuxVirtualMachine(AttachProvider provider, String vmid)
|
||||
VirtualMachineImpl(AttachProvider provider, String vmid)
|
||||
throws AttachNotSupportedException, IOException
|
||||
{
|
||||
super(provider, vmid);
|
||||
@ -262,11 +262,11 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine {
|
||||
} else if (len == 0)
|
||||
return 0;
|
||||
|
||||
return LinuxVirtualMachine.read(s, bs, off, len);
|
||||
return VirtualMachineImpl.read(s, bs, off, len);
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
LinuxVirtualMachine.close(s);
|
||||
VirtualMachineImpl.close(s);
|
||||
}
|
||||
}
|
||||
|
||||
@ -308,7 +308,7 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine {
|
||||
} catch (java.io.UnsupportedEncodingException x) {
|
||||
throw new InternalError(x);
|
||||
}
|
||||
LinuxVirtualMachine.write(fd, b, 0, b.length);
|
||||
VirtualMachineImpl.write(fd, b, 0, b.length);
|
||||
}
|
||||
byte b[] = new byte[1];
|
||||
b[0] = 0;
|
@ -40,7 +40,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/un.h>
|
||||
|
||||
#include "sun_tools_attach_LinuxVirtualMachine.h"
|
||||
#include "sun_tools_attach_VirtualMachineImpl.h"
|
||||
|
||||
#define RESTARTABLE(_cmd, _result) do { \
|
||||
do { \
|
||||
@ -128,11 +128,11 @@ static pid_t getParent(pid_t pid) {
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: socket
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_LinuxVirtualMachine_socket
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_socket
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
int fd = socket(PF_UNIX, SOCK_STREAM, 0);
|
||||
@ -143,11 +143,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_LinuxVirtualMachine_socket
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: connect
|
||||
* Signature: (ILjava/lang/String;)I
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_connect
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_connect
|
||||
(JNIEnv *env, jclass cls, jint fd, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -189,11 +189,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_connect
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: isLinuxThreads
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_sun_tools_attach_LinuxVirtualMachine_isLinuxThreads
|
||||
JNIEXPORT jboolean JNICALL Java_sun_tools_attach_VirtualMachineImpl_isLinuxThreads
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
# ifndef _CS_GNU_LIBPTHREAD_VERSION
|
||||
@ -250,11 +250,11 @@ static void ChildCountCallback(const pid_t pid, void* user_data) {
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: getLinuxThreadsManager
|
||||
* Signature: (I)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_LinuxVirtualMachine_getLinuxThreadsManager
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_getLinuxThreadsManager
|
||||
(JNIEnv *env, jclass cls, jint pid)
|
||||
{
|
||||
ChildCountContext context;
|
||||
@ -312,11 +312,11 @@ static void SendQuitCallback(const pid_t pid, void* user_data) {
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: sendQuitToChildrenOf
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_sendQuitToChildrenOf
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_sendQuitToChildrenOf
|
||||
(JNIEnv *env, jclass cls, jint pid)
|
||||
{
|
||||
SendQuitContext context;
|
||||
@ -329,11 +329,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_sendQuitToChild
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: sendQuitTo
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_sendQuitTo
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_sendQuitTo
|
||||
(JNIEnv *env, jclass cls, jint pid)
|
||||
{
|
||||
if (kill((pid_t)pid, SIGQUIT)) {
|
||||
@ -342,11 +342,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_sendQuitTo
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: checkPermissions
|
||||
* Signature: (Ljava/lang/String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_checkPermissions
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_checkPermissions
|
||||
(JNIEnv *env, jclass cls, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -390,11 +390,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_checkPermission
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: close
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_close
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_close
|
||||
(JNIEnv *env, jclass cls, jint fd)
|
||||
{
|
||||
int res;
|
||||
@ -402,11 +402,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_close
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: read
|
||||
* Signature: (I[BI)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_LinuxVirtualMachine_read
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_read
|
||||
(JNIEnv *env, jclass cls, jint fd, jbyteArray ba, jint off, jint baLen)
|
||||
{
|
||||
unsigned char buf[128];
|
||||
@ -432,11 +432,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_LinuxVirtualMachine_read
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_LinuxVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: write
|
||||
* Signature: (I[B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_write
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_write
|
||||
(JNIEnv *env, jclass cls, jint fd, jbyteArray ba, jint off, jint bufLen)
|
||||
{
|
||||
size_t remaining = bufLen;
|
@ -35,12 +35,12 @@ import java.io.IOException;
|
||||
* An AttachProvider implementation for Bsd that uses a UNIX domain
|
||||
* socket.
|
||||
*/
|
||||
public class BsdAttachProvider extends HotSpotAttachProvider {
|
||||
public class AttachProviderImpl extends HotSpotAttachProvider {
|
||||
|
||||
// perf counter for the JVM version
|
||||
private static final String JVM_VERSION = "java.property.java.vm.version";
|
||||
|
||||
public BsdAttachProvider() {
|
||||
public AttachProviderImpl() {
|
||||
}
|
||||
|
||||
public String name() {
|
||||
@ -60,7 +60,7 @@ public class BsdAttachProvider extends HotSpotAttachProvider {
|
||||
// to be not attachable.
|
||||
testAttachable(vmid);
|
||||
|
||||
return new BsdVirtualMachine(this, vmid);
|
||||
return new VirtualMachineImpl(this, vmid);
|
||||
}
|
||||
|
||||
public VirtualMachine attachVirtualMachine(VirtualMachineDescriptor vmd)
|
||||
@ -75,7 +75,7 @@ public class BsdAttachProvider extends HotSpotAttachProvider {
|
||||
if (vmd instanceof HotSpotVirtualMachineDescriptor) {
|
||||
assert ((HotSpotVirtualMachineDescriptor)vmd).isAttachable();
|
||||
checkAttachPermission();
|
||||
return new BsdVirtualMachine(this, vmd.id());
|
||||
return new VirtualMachineImpl(this, vmd.id());
|
||||
} else {
|
||||
return attachVirtualMachine(vmd.id());
|
||||
}
|
@ -36,7 +36,7 @@ import java.io.File;
|
||||
/*
|
||||
* Bsd implementation of HotSpotVirtualMachine
|
||||
*/
|
||||
public class BsdVirtualMachine extends HotSpotVirtualMachine {
|
||||
public class VirtualMachineImpl extends HotSpotVirtualMachine {
|
||||
// "tmpdir" is used as a global well-known location for the files
|
||||
// .java_pid<pid>. and .attach_pid<pid>. It is important that this
|
||||
// location is the same for all processes, otherwise the tools
|
||||
@ -52,7 +52,7 @@ public class BsdVirtualMachine extends HotSpotVirtualMachine {
|
||||
/**
|
||||
* Attaches to the target VM
|
||||
*/
|
||||
BsdVirtualMachine(AttachProvider provider, String vmid)
|
||||
VirtualMachineImpl(AttachProvider provider, String vmid)
|
||||
throws AttachNotSupportedException, IOException
|
||||
{
|
||||
super(provider, vmid);
|
||||
@ -247,11 +247,11 @@ public class BsdVirtualMachine extends HotSpotVirtualMachine {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return BsdVirtualMachine.read(s, bs, off, len);
|
||||
return VirtualMachineImpl.read(s, bs, off, len);
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
BsdVirtualMachine.close(s);
|
||||
VirtualMachineImpl.close(s);
|
||||
}
|
||||
}
|
||||
|
||||
@ -275,7 +275,7 @@ public class BsdVirtualMachine extends HotSpotVirtualMachine {
|
||||
} catch (java.io.UnsupportedEncodingException x) {
|
||||
throw new InternalError();
|
||||
}
|
||||
BsdVirtualMachine.write(fd, b, 0, b.length);
|
||||
VirtualMachineImpl.write(fd, b, 0, b.length);
|
||||
}
|
||||
byte b[] = new byte[1];
|
||||
b[0] = 0;
|
@ -41,7 +41,7 @@
|
||||
#include <sys/un.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "sun_tools_attach_BsdVirtualMachine.h"
|
||||
#include "sun_tools_attach_VirtualMachineImpl.h"
|
||||
|
||||
#define RESTARTABLE(_cmd, _result) do { \
|
||||
do { \
|
||||
@ -50,11 +50,11 @@
|
||||
} while(0)
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_BsdVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: socket
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_BsdVirtualMachine_socket
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_socket
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
int fd = socket(PF_UNIX, SOCK_STREAM, 0);
|
||||
@ -65,11 +65,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_BsdVirtualMachine_socket
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_BsdVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: connect
|
||||
* Signature: (ILjava/lang/String;)I
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_connect
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_connect
|
||||
(JNIEnv *env, jclass cls, jint fd, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -111,11 +111,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_connect
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_BsdVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: sendQuitTo
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_sendQuitTo
|
||||
(JNIEnv *env, jclass cls, jint pid)
|
||||
{
|
||||
if (kill((pid_t)pid, SIGQUIT)) {
|
||||
@ -124,11 +124,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_BsdVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: checkPermissions
|
||||
* Signature: (Ljava/lang/String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_checkPermissions
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_checkPermissions
|
||||
(JNIEnv *env, jclass cls, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -172,11 +172,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_checkPermissions
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_BsdVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: close
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_close
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_close
|
||||
(JNIEnv *env, jclass cls, jint fd)
|
||||
{
|
||||
int res;
|
||||
@ -184,11 +184,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_close
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_BsdVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: read
|
||||
* Signature: (I[BI)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_BsdVirtualMachine_read
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_read
|
||||
(JNIEnv *env, jclass cls, jint fd, jbyteArray ba, jint off, jint baLen)
|
||||
{
|
||||
unsigned char buf[128];
|
||||
@ -214,11 +214,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_BsdVirtualMachine_read
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_BsdVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: write
|
||||
* Signature: (I[B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_write
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_write
|
||||
(JNIEnv *env, jclass cls, jint fd, jbyteArray ba, jint off, jint bufLen)
|
||||
{
|
||||
size_t remaining = bufLen;
|
||||
@ -249,7 +249,7 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_write
|
||||
* Method: createAttachFile
|
||||
* Signature: (Ljava.lang.String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_createAttachFile(JNIEnv *env, jclass cls, jstring path)
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_createAttachFile(JNIEnv *env, jclass cls, jstring path)
|
||||
{
|
||||
const char* _path;
|
||||
jboolean isCopy;
|
||||
@ -286,7 +286,7 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_BsdVirtualMachine_createAttachFile(
|
||||
* Method: getTempDir
|
||||
* Signature: (V)Ljava.lang.String;
|
||||
*/
|
||||
JNIEXPORT jstring JNICALL Java_sun_tools_attach_BsdVirtualMachine_getTempDir(JNIEnv *env, jclass cls)
|
||||
JNIEXPORT jstring JNICALL Java_sun_tools_attach_VirtualMachineImpl_getTempDir(JNIEnv *env, jclass cls)
|
||||
{
|
||||
// This must be hard coded because it's the system's temporary
|
||||
// directory not the java application's temp directory, ala java.io.tmpdir.
|
@ -22,13 +22,4 @@
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
# List all Sun provided attach providers here. If there
|
||||
# are providers that are only available on a particular OS
|
||||
# then prefix the line with #[OS] and they will automatically
|
||||
# uncommented by the build process.
|
||||
#
|
||||
#[solaris]sun.tools.attach.SolarisAttachProvider
|
||||
#[windows]sun.tools.attach.WindowsAttachProvider
|
||||
#[linux]sun.tools.attach.LinuxAttachProvider
|
||||
#[macosx]sun.tools.attach.BsdAttachProvider
|
||||
#[aix]sun.tools.attach.AixAttachProvider
|
||||
sun.tools.attach.AttachProviderImpl
|
||||
|
@ -34,9 +34,9 @@ import java.io.IOException;
|
||||
* An AttachProvider implementation for Solaris that use the doors
|
||||
* interface to the VM.
|
||||
*/
|
||||
public class SolarisAttachProvider extends HotSpotAttachProvider {
|
||||
public class AttachProviderImpl extends HotSpotAttachProvider {
|
||||
|
||||
public SolarisAttachProvider() {
|
||||
public AttachProviderImpl() {
|
||||
}
|
||||
|
||||
public String name() {
|
||||
@ -56,7 +56,7 @@ public class SolarisAttachProvider extends HotSpotAttachProvider {
|
||||
// to be not attachable.
|
||||
testAttachable(vmid);
|
||||
|
||||
return new SolarisVirtualMachine(this, vmid);
|
||||
return new VirtualMachineImpl(this, vmid);
|
||||
}
|
||||
|
||||
public VirtualMachine attachVirtualMachine(VirtualMachineDescriptor vmd)
|
||||
@ -71,7 +71,7 @@ public class SolarisAttachProvider extends HotSpotAttachProvider {
|
||||
if (vmd instanceof HotSpotVirtualMachineDescriptor) {
|
||||
assert ((HotSpotVirtualMachineDescriptor)vmd).isAttachable();
|
||||
checkAttachPermission();
|
||||
return new SolarisVirtualMachine(this, vmd.id());
|
||||
return new VirtualMachineImpl(this, vmd.id());
|
||||
} else {
|
||||
return attachVirtualMachine(vmd.id());
|
||||
}
|
@ -37,7 +37,7 @@ import java.io.FileNotFoundException;
|
||||
/*
|
||||
* Solaris implementation of HotSpotVirtualMachine.
|
||||
*/
|
||||
public class SolarisVirtualMachine extends HotSpotVirtualMachine {
|
||||
public class VirtualMachineImpl extends HotSpotVirtualMachine {
|
||||
// "/tmp" is used as a global well-known location for the files
|
||||
// .java_pid<pid>. and .attach_pid<pid>. It is important that this
|
||||
// location is the same for all processes, otherwise the tools
|
||||
@ -51,7 +51,7 @@ public class SolarisVirtualMachine extends HotSpotVirtualMachine {
|
||||
/**
|
||||
* Attaches to the target VM
|
||||
*/
|
||||
SolarisVirtualMachine(AttachProvider provider, String vmid)
|
||||
VirtualMachineImpl(AttachProvider provider, String vmid)
|
||||
throws AttachNotSupportedException, IOException
|
||||
{
|
||||
super(provider, vmid);
|
||||
@ -190,11 +190,11 @@ public class SolarisVirtualMachine extends HotSpotVirtualMachine {
|
||||
} else if (len == 0)
|
||||
return 0;
|
||||
|
||||
return SolarisVirtualMachine.read(s, bs, off, len);
|
||||
return VirtualMachineImpl.read(s, bs, off, len);
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
SolarisVirtualMachine.close(s);
|
||||
VirtualMachineImpl.close(s);
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include "jni.h"
|
||||
#include "jni_util.h"
|
||||
|
||||
#include "sun_tools_attach_SolarisVirtualMachine.h"
|
||||
#include "sun_tools_attach_VirtualMachineImpl.h"
|
||||
|
||||
#define RESTARTABLE(_cmd, _result) do { \
|
||||
do { \
|
||||
@ -45,11 +45,11 @@
|
||||
} while(0)
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_SolarisVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: open
|
||||
* Signature: (Ljava/lang/String;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_SolarisVirtualMachine_open
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_open
|
||||
(JNIEnv *env, jclass cls, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -85,11 +85,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_SolarisVirtualMachine_open
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_SolarisVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: checkPermissions
|
||||
* Signature: (Ljava/lang/String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_SolarisVirtualMachine_checkPermissions
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_checkPermissions
|
||||
(JNIEnv *env, jclass cls, jstring path)
|
||||
{
|
||||
jboolean isCopy;
|
||||
@ -133,11 +133,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_SolarisVirtualMachine_checkPermissi
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_SolarisVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: close
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_SolarisVirtualMachine_close
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_close
|
||||
(JNIEnv *env, jclass cls, jint fd)
|
||||
{
|
||||
int ret;
|
||||
@ -145,11 +145,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_SolarisVirtualMachine_close
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_SolarisVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: read
|
||||
* Signature: (I[BI)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_SolarisVirtualMachine_read
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_read
|
||||
(JNIEnv *env, jclass cls, jint fd, jbyteArray ba, jint off, jint baLen)
|
||||
{
|
||||
unsigned char buf[128];
|
||||
@ -175,11 +175,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_SolarisVirtualMachine_read
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_SolarisVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: sigquit
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_SolarisVirtualMachine_sigquit
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_sigquit
|
||||
(JNIEnv *env, jclass cls, jint pid)
|
||||
{
|
||||
if (kill((pid_t)pid, SIGQUIT) == -1) {
|
||||
@ -224,11 +224,11 @@ static const char* translate_error(jint err) {
|
||||
static const char* PROTOCOL_VERSION = "1";
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_SolarisVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: enqueue
|
||||
* Signature: (JILjava/lang/String;[Ljava/lang/Object;)V
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_SolarisVirtualMachine_enqueue
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_enqueue
|
||||
(JNIEnv *env, jclass cls, jint fd, jstring cmd, jobjectArray args)
|
||||
{
|
||||
jint arg_count, i;
|
@ -34,9 +34,9 @@ import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
public class WindowsAttachProvider extends HotSpotAttachProvider {
|
||||
public class AttachProviderImpl extends HotSpotAttachProvider {
|
||||
|
||||
public WindowsAttachProvider() {
|
||||
public AttachProviderImpl() {
|
||||
String os = System.getProperty("os.name");
|
||||
if (os.startsWith("Windows 9") || os.equals("Windows Me")) {
|
||||
throw new RuntimeException(
|
||||
@ -66,7 +66,7 @@ public class WindowsAttachProvider extends HotSpotAttachProvider {
|
||||
// to be not attachable.
|
||||
testAttachable(vmid);
|
||||
|
||||
return new WindowsVirtualMachine(this, vmid);
|
||||
return new VirtualMachineImpl(this, vmid);
|
||||
}
|
||||
|
||||
public List<VirtualMachineDescriptor> listVirtualMachines() {
|
||||
@ -84,7 +84,7 @@ public class WindowsAttachProvider extends HotSpotAttachProvider {
|
||||
*/
|
||||
private static boolean isTempPathSecure() {
|
||||
if (!wasTempPathChecked) {
|
||||
synchronized (WindowsAttachProvider.class) {
|
||||
synchronized (AttachProviderImpl.class) {
|
||||
if (!wasTempPathChecked) {
|
||||
// get the value of TMP/TEMP, ignoring UNC, and paths that
|
||||
// aren't absolute
|
||||
@ -146,7 +146,7 @@ public class WindowsAttachProvider extends HotSpotAttachProvider {
|
||||
if (isLibraryLoadedByProcess("jvm.dll", processes[i])) {
|
||||
String pid = Integer.toString(processes[i]);
|
||||
try {
|
||||
new WindowsVirtualMachine(this, pid).detach();
|
||||
new VirtualMachineImpl(this, pid).detach();
|
||||
|
||||
// FIXME - for now we don't have an appropriate display
|
||||
// name so we use pid@hostname
|
@ -35,14 +35,14 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Random;
|
||||
|
||||
public class WindowsVirtualMachine extends HotSpotVirtualMachine {
|
||||
public class VirtualMachineImpl extends HotSpotVirtualMachine {
|
||||
|
||||
// the enqueue code stub (copied into each target VM)
|
||||
private static byte[] stub;
|
||||
|
||||
private volatile long hProcess; // handle to the process
|
||||
|
||||
WindowsVirtualMachine(AttachProvider provider, String id)
|
||||
VirtualMachineImpl(AttachProvider provider, String id)
|
||||
throws AttachNotSupportedException, IOException
|
||||
{
|
||||
super(provider, id);
|
||||
@ -154,12 +154,12 @@ public class WindowsVirtualMachine extends HotSpotVirtualMachine {
|
||||
} else if (len == 0)
|
||||
return 0;
|
||||
|
||||
return WindowsVirtualMachine.readPipe(hPipe, bs, off, len);
|
||||
return VirtualMachineImpl.readPipe(hPipe, bs, off, len);
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
if (hPipe != -1) {
|
||||
WindowsVirtualMachine.closePipe(hPipe);
|
||||
VirtualMachineImpl.closePipe(hPipe);
|
||||
hPipe = -1;
|
||||
}
|
||||
}
|
@ -30,15 +30,15 @@
|
||||
#include "jni.h"
|
||||
#include "jni_util.h"
|
||||
|
||||
#include "sun_tools_attach_WindowsAttachProvider.h"
|
||||
#include "sun_tools_attach_AttachProviderImpl.h"
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsAttachProvider
|
||||
* Class: sun_tools_attach_AttachProviderImpl
|
||||
* Method: tempPath
|
||||
* Signature: ()Ljava/lang/String;
|
||||
*/
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_sun_tools_attach_WindowsAttachProvider_tempPath(JNIEnv *env, jclass cls)
|
||||
Java_sun_tools_attach_AttachProviderImpl_tempPath(JNIEnv *env, jclass cls)
|
||||
{
|
||||
char buf[256];
|
||||
DWORD bufLen, actualLen;
|
||||
@ -64,12 +64,12 @@ Java_sun_tools_attach_WindowsAttachProvider_tempPath(JNIEnv *env, jclass cls)
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsAttachProvider
|
||||
* Class: sun_tools_attach_AttachProviderImpl
|
||||
* Method: volumeFlags
|
||||
* Signature: ()J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_sun_tools_attach_WindowsAttachProvider_volumeFlags(JNIEnv *env, jclass cls, jstring str)
|
||||
Java_sun_tools_attach_AttachProviderImpl_volumeFlags(JNIEnv *env, jclass cls, jstring str)
|
||||
{
|
||||
jboolean isCopy;
|
||||
const char* volume;
|
||||
@ -98,13 +98,13 @@ Java_sun_tools_attach_WindowsAttachProvider_volumeFlags(JNIEnv *env, jclass cls,
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsAttachProvider
|
||||
* Class: sun_tools_attach_AttachProviderImpl
|
||||
* Method: enumProcesses
|
||||
* Signature: ([JI)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_sun_tools_attach_WindowsAttachProvider_enumProcesses(JNIEnv *env, jclass cls,
|
||||
jintArray arr, jint max)
|
||||
Java_sun_tools_attach_AttachProviderImpl_enumProcesses(JNIEnv *env, jclass cls,
|
||||
jintArray arr, jint max)
|
||||
{
|
||||
DWORD size, bytesReturned;
|
||||
DWORD* ptr;
|
||||
@ -124,13 +124,13 @@ Java_sun_tools_attach_WindowsAttachProvider_enumProcesses(JNIEnv *env, jclass cl
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsAttachProvider
|
||||
* Class: sun_tools_attach_AttachProviderImpl
|
||||
* Method: isLibraryLoadedByProcess
|
||||
* Signature: (I[Ljava/lang/String;)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_sun_tools_attach_WindowsAttachProvider_isLibraryLoadedByProcess(JNIEnv *env, jclass cls,
|
||||
jstring str, jint processId)
|
||||
Java_sun_tools_attach_AttachProviderImpl_isLibraryLoadedByProcess(JNIEnv *env, jclass cls,
|
||||
jstring str, jint processId)
|
||||
{
|
||||
HANDLE hProcess;
|
||||
jboolean isCopy;
|
@ -28,7 +28,7 @@
|
||||
#include "jni.h"
|
||||
#include "jni_util.h"
|
||||
|
||||
#include "sun_tools_attach_WindowsVirtualMachine.h"
|
||||
#include "sun_tools_attach_VirtualMachineImpl.h"
|
||||
|
||||
|
||||
/* kernel32 */
|
||||
@ -124,11 +124,11 @@ void jvm_attach_thread_func_end (void) {
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: init
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_init
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_init
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
// All following APIs exist on Windows XP with SP2/Windows Server 2008
|
||||
@ -139,11 +139,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_init
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: generateStub
|
||||
* Signature: ()[B
|
||||
*/
|
||||
JNIEXPORT jbyteArray JNICALL Java_sun_tools_attach_WindowsVirtualMachine_generateStub
|
||||
JNIEXPORT jbyteArray JNICALL Java_sun_tools_attach_VirtualMachineImpl_generateStub
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
/*
|
||||
@ -161,11 +161,11 @@ JNIEXPORT jbyteArray JNICALL Java_sun_tools_attach_WindowsVirtualMachine_generat
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: openProcess
|
||||
* Signature: (I)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_sun_tools_attach_WindowsVirtualMachine_openProcess
|
||||
JNIEXPORT jlong JNICALL Java_sun_tools_attach_VirtualMachineImpl_openProcess
|
||||
(JNIEnv *env, jclass cls, jint pid)
|
||||
{
|
||||
HANDLE hProcess = NULL;
|
||||
@ -236,11 +236,11 @@ JNIEXPORT jlong JNICALL Java_sun_tools_attach_WindowsVirtualMachine_openProcess
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: closeProcess
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_closeProcess
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_closeProcess
|
||||
(JNIEnv *env, jclass cls, jlong hProcess)
|
||||
{
|
||||
CloseHandle((HANDLE)hProcess);
|
||||
@ -248,11 +248,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_closeProcess
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: createPipe
|
||||
* Signature: (Ljava/lang/String;)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_sun_tools_attach_WindowsVirtualMachine_createPipe
|
||||
JNIEXPORT jlong JNICALL Java_sun_tools_attach_VirtualMachineImpl_createPipe
|
||||
(JNIEnv *env, jclass cls, jstring pipename)
|
||||
{
|
||||
HANDLE hPipe;
|
||||
@ -281,22 +281,22 @@ JNIEXPORT jlong JNICALL Java_sun_tools_attach_WindowsVirtualMachine_createPipe
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: closePipe
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_closePipe
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_closePipe
|
||||
(JNIEnv *env, jclass cls, jlong hPipe)
|
||||
{
|
||||
CloseHandle( (HANDLE)hPipe );
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: connectPipe
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_connectPipe
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_connectPipe
|
||||
(JNIEnv *env, jclass cls, jlong hPipe)
|
||||
{
|
||||
BOOL fConnected;
|
||||
@ -309,11 +309,11 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_connectPipe
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: readPipe
|
||||
* Signature: (J[BII)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_WindowsVirtualMachine_readPipe
|
||||
JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_readPipe
|
||||
(JNIEnv *env, jclass cls, jlong hPipe, jbyteArray ba, jint off, jint baLen)
|
||||
{
|
||||
unsigned char buf[128];
|
||||
@ -352,11 +352,11 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_WindowsVirtualMachine_readPipe
|
||||
|
||||
|
||||
/*
|
||||
* Class: sun_tools_attach_WindowsVirtualMachine
|
||||
* Class: sun_tools_attach_VirtualMachineImpl
|
||||
* Method: enqueue
|
||||
* Signature: (JZLjava/lang/String;[Ljava/lang/Object;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_WindowsVirtualMachine_enqueue
|
||||
JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_enqueue
|
||||
(JNIEnv *env, jclass cls, jlong handle, jbyteArray stub, jstring cmd,
|
||||
jstring pipename, jobjectArray args)
|
||||
{
|
Loading…
x
Reference in New Issue
Block a user