org.jboss.byteman.agent.install
Class Install

java.lang.Object
  extended by org.jboss.byteman.agent.install.Install

public class Install
extends java.lang.Object

A program which uses the sun.com.tools.attach.VirtualMachine class to install the Byteman agent into a running JVM. This provides an alternative to using the -javaagent option to install the agent.


Method Summary
static VMInfo[] availableVMs()
           
static java.lang.String getSystemProperty(java.lang.String id, java.lang.String property)
          attach to the virtual machine identified by id and return the value of the named property.
static void install(java.lang.String pid, boolean addToBoot, java.lang.String host, int port, java.lang.String[] properties)
           
 void locateAgentFromClasspath()
           
 void locateAgentFromHomeDir(java.lang.String bmHome)
           
static void main(java.lang.String[] args)
          main routine for use from command line

Install [-h host] [-p port] [-b] pid

see method usage(int) for details of the command syntax

 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

main

public static void main(java.lang.String[] args)
main routine for use from command line

Install [-h host] [-p port] [-b] pid

see method usage(int) for details of the command syntax

Parameters:
args - the command options

install

public static void install(java.lang.String pid,
                           boolean addToBoot,
                           java.lang.String host,
                           int port,
                           java.lang.String[] properties)
                    throws java.lang.IllegalArgumentException,
                           java.io.FileNotFoundException,
                           java.io.IOException,
                           com.sun.tools.attach.AttachNotSupportedException,
                           com.sun.tools.attach.AgentLoadException,
                           com.sun.tools.attach.AgentInitializationException
Parameters:
pid - the process id of the JVM into which the agent should be installed or 0 for this JVM
addToBoot - true if the agent jar should be installed into the bootstrap classpath
host - the hostname to be used by the agent listener or null for localhost
port - the port to be used by the agent listener or 0 for the default port
properties - an array of System properties to be installed by the agent with optional values e.g. values such as "org.jboss.byteman.verbose" or "org.jboss.byteman.dump.generated.classes.directory=./dump"
Throws:
java.lang.IllegalArgumentException - if any of the arguments is invalid
java.io.FileNotFoundException - if the agent jar cannot be found using the environment variable BYTEMAN_HOME or the System property org.jboss.byteman.home and cannot be located in the current classpath
java.io.IOException - if the byteman jar cannot be opened or uploaded to the requested JVM
com.sun.tools.attach.AttachNotSupportedException - if the requested JVM cannot be attached to
com.sun.tools.attach.AgentLoadException - if an error occurs during upload of the agent into the JVM
com.sun.tools.attach.AgentInitializationException - if the agent fails to initialize after loading. this almost always indicates that the agent is already loaded into the JVM

availableVMs

public static VMInfo[] availableVMs()

getSystemProperty

public static java.lang.String getSystemProperty(java.lang.String id,
                                                 java.lang.String property)
attach to the virtual machine identified by id and return the value of the named property. id must be the id of a virtual machine returned by method availableVMs.

Parameters:
id - the id of the machine to attach to
property - the proeprty to be retrieved
Returns:
the value of the property or null if it is not set

locateAgentFromHomeDir

public void locateAgentFromHomeDir(java.lang.String bmHome)
                            throws java.io.IOException
Throws:
java.io.IOException

locateAgentFromClasspath

public void locateAgentFromClasspath()
                              throws java.io.IOException
Throws:
java.io.IOException


Copyright © 2011. All Rights Reserved.