|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jboss.byteman.agent.install.Install
public class Install
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.
Field Summary | |
---|---|
private boolean |
addToBoot
|
private java.lang.String |
agentJar
|
private static java.lang.String |
BYTEMAN_HOME_ENV_VAR
environment variable used to idenitfy the location of the installed byteman release. |
private static java.lang.String |
BYTEMAN_HOME_SYSTEM_PROP
System property used to idenitfy the location of the installed byteman release. |
private static java.lang.String |
BYTEMAN_PREFIX
|
private java.lang.String |
host
|
private java.lang.String |
id
|
private int |
port
|
private java.lang.String |
props
|
private VirtualMachine |
vm
|
Constructor Summary | |
---|---|
private |
Install()
only this class creates instances |
private |
Install(java.lang.String pid,
boolean addToBoot,
java.lang.String host,
int port,
java.lang.String[] properties)
only this class creates instances |
Method Summary | |
---|---|
private void |
attach()
attach to the Java process identified by the process id supplied on the command line |
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. |
private void |
injectAgent()
get the attached process to upload and install the agent jar using whatever agent options were configured on the command line |
static void |
install(java.lang.String pid,
boolean addToBoot,
java.lang.String host,
int port,
java.lang.String[] properties)
|
private void |
locateAgent()
check for environment setting BYTEMAN_HOME and use it to identify the location of the byteman agent jar. |
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 |
private void |
parseArgs(java.lang.String[] args)
check the supplied arguments and stash away te relevant data |
private static void |
usage(int exitValue)
print usage information and exit with a specific exit code |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.lang.String agentJar
private java.lang.String id
private int port
private java.lang.String host
private boolean addToBoot
private java.lang.String props
private VirtualMachine vm
private static final java.lang.String BYTEMAN_PREFIX
private static final java.lang.String BYTEMAN_HOME_SYSTEM_PROP
private static final java.lang.String BYTEMAN_HOME_ENV_VAR
Constructor Detail |
---|
private Install()
private Install(java.lang.String pid, boolean addToBoot, java.lang.String host, int port, java.lang.String[] properties)
Method Detail |
---|
public static void main(java.lang.String[] args)
usage(int)
for details of the command syntax
args
- the command optionspublic 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, AttachNotSupportedException, AgentLoadException, AgentInitializationException
pid
- the process id of the JVM into which the agent should be installed or 0 for this JVMaddToBoot
- true if the agent jar should be installed into the bootstrap classpathhost
- the hostname to be used by the agent listener or null for localhostport
- the port to be used by the agent listener or 0 for the default portproperties
- 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"
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
AttachNotSupportedException
- if the requested JVM cannot be attached to
AgentLoadException
- if an error occurs during upload of the agent into the JVM
AgentInitializationException
- if the agent fails to initialize after loading. this almost always
indicates that the agent is already loaded into the JVMpublic static VMInfo[] availableVMs()
public static java.lang.String getSystemProperty(java.lang.String id, java.lang.String property)
id
- the id of the machine to attach toproperty
- the proeprty to be retrieved
private void parseArgs(java.lang.String[] args)
args
- the value supplied to mainprivate void locateAgent() throws java.io.IOException
java.io.IOException
public void locateAgentFromHomeDir(java.lang.String bmHome) throws java.io.IOException
java.io.IOException
public void locateAgentFromClasspath() throws java.io.IOException
java.io.IOException
private void attach() throws AttachNotSupportedException, java.io.IOException, java.lang.IllegalArgumentException
AttachNotSupportedException
java.io.IOException
java.lang.IllegalArgumentException
private void injectAgent() throws AgentLoadException, AgentInitializationException, java.io.IOException
AgentLoadException
AgentInitializationException
java.io.IOException
private static void usage(int exitValue)
exitValue
- the value to be supplied to the exit call
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |