All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jolokia.jvmagent.client.util.VirtualMachineHandlerOperations Maven / Gradle / Ivy

There is a newer version: 1.7.2
Show newest version
package org.jolokia.jvmagent.client.util;

/*
 * Copyright 2009-2021 Roland Huss
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.util.List;
import java.util.Properties;
import java.util.regex.Pattern;

/**
 * 

A contract for dealing with VirtualMachine on any JDK where * Attach API is supported.

* *

The virtual machine is passed as {@link Object} and dealt with differently in chosen implementation of the * contract.

* * @author ggrzybek * @since 24.06.2021 */ public interface VirtualMachineHandlerOperations { /** * Lookup and create a {@code com.sun.tools.attach.VirtualMachine} * * @return the create virtual machine of null if none could be created * @throws ProcessingException for any problem related to VM attaching. Specific to particular implementation. */ Object attachVirtualMachine() throws ProcessingException; /** * Detach from the virtual machine * * @param pVm the virtual machine to detach from * @throws ProcessingException for any problem related to VM detaching. Specific to particular implementation. */ void detachAgent(Object pVm) throws ProcessingException; /** * Return a list of all Java processes * @return list of java processes */ List listProcesses(); /** * Filter the process list for a regular expression and returns the description. The process this * JVM is running in is ignored. If more than one process or no process is found, an exception * is raised. * * @param pPattern regular expression to match * @return a process description of the one process found but never null * @throws IllegalArgumentException if more than one or no process has been found. */ ProcessDescription findProcess(Pattern pPattern); /** * Loads Jolokia agent into the attached VM. * * @param pVm {@link com.sun.tools.attach.VirtualMachine} access object * @param jarFilePath path to Java agent JAR file * @param args arguments to {@link com.sun.tools.attach.VirtualMachine#loadAgent(String, String)} method */ void loadAgent(Object pVm, String jarFilePath, String args); /** * Returns system properties from attached VM. * * @param pVm {@link com.sun.tools.attach.VirtualMachine} access object * @return system properties of the remote VM */ Properties getSystemProperties(Object pVm); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy