- java.lang.Object
-
- com.ibm.dtfj.javacore.builder.javacore.AbstractBuilderComponent
-
- com.ibm.dtfj.javacore.builder.javacore.JavaRuntimeBuilder
-
- All Implemented Interfaces:
IJavaRuntimeBuilder
public class JavaRuntimeBuilder extends AbstractBuilderComponent implements IJavaRuntimeBuilder
-
-
Constructor Summary
Constructors Constructor Description JavaRuntimeBuilder(JCImageProcess imageProcess, String id)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JavaClass
addClass(JavaClassLoader jClassLoader, String name, long classID, long superClassID, String fileName)
Note that even if a class was already registered with a class loader previously, it may contain incomplete data, so this case has to be considered.JavaClassLoader
addClassLoader(String classLoaderName, long clID, long objectID)
Must pass a valid class loader ID in order to generate a class loader object.JavaMonitor
addJavaMonitor(String monitorName, long monitorID, long objectID, String className, long owningThread)
Required: monitor ID (throws exception if invalid)
Optional: object ID, class name, monitor name, owning threadJavaThread
addJavaThread(ImageThread imageThread, String name, long tid, long j9thread_t, long javaObjID, long jniEnv, String state, int priority, long blockingObject, String blockingObjectClass)
If successfully added a JavaThread, or updated an existing JavaThread, return the javathread, or otherwise throw an exception.void
addVMInitArgs()
Adds an (empty) JavaVMInitArgsvoid
addVMOption(String option)
Adds an individual VM option to JavaVMInitArgsvoid
addVMOption(String option, long extraInfo)
Adds an individual VM option to JavaVMInitArgs, with 'extra information' fieldImageProcess
getImageProcess()
void
setJavaVersion(String version)
Sets the Java version string.-
Methods declared in class com.ibm.dtfj.javacore.builder.javacore.AbstractBuilderComponent
getBuilderContainer, getID
-
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods declared in interface com.ibm.dtfj.javacore.builder.IJavaRuntimeBuilder
addBlockedThread, addJavaStackFrame, addJITProperty, addMemoryCategory, addWaitOnNotifyThread, setJITEnabled, setShallowCountersForCategory, setStartTime, setStartTimeNanos
-
-
-
-
Constructor Detail
-
JavaRuntimeBuilder
public JavaRuntimeBuilder(JCImageProcess imageProcess, String id) throws JCInvalidArgumentsException
- Throws:
JCInvalidArgumentsException
-
-
Method Detail
-
addClassLoader
public JavaClassLoader addClassLoader(String classLoaderName, long clID, long objectID) throws BuilderFailureException
Must pass a valid class loader ID in order to generate a class loader object. Else exception is thrown.- Specified by:
addClassLoader
in interfaceIJavaRuntimeBuilder
- Parameters:
classLoaderName
- optionalclID
- required, or else exception is throw and class loader is not created.objectID
- optional (although generally this is the same as the clID for most javacores)- Returns:
- successfully created JavaClassLoader
- Throws:
BuilderFailureException
- if class loader ID is invalid.
-
addClass
public JavaClass addClass(JavaClassLoader jClassLoader, String name, long classID, long superClassID, String fileName) throws BuilderFailureException
Note that even if a class was already registered with a class loader previously, it may contain incomplete data, so this case has to be considered.- Specified by:
addClass
in interfaceIJavaRuntimeBuilder
- Parameters:
jClassLoader
- that loads the classname
- of classclassID
- valid addresssuperClassID
- valid address- Returns:
- generated/modified java class.
- Throws:
BuilderFailureException
-
getImageProcess
public ImageProcess getImageProcess()
- Returns:
- imageprocess containing the runtime.
-
addJavaThread
public JavaThread addJavaThread(ImageThread imageThread, String name, long tid, long j9thread_t, long javaObjID, long jniEnv, String state, int priority, long blockingObject, String blockingObjectClass) throws BuilderFailureException
If successfully added a JavaThread, or updated an existing JavaThread, return the javathread, or otherwise throw an exception. Note that a javathread cannot be successfully added if no valid threadID is passed.
REQUIREMENT: Thread Id must be valid to properly create a Java Thread, or exception is thrown.- Specified by:
addJavaThread
in interfaceIJavaRuntimeBuilder
- Parameters:
imageThread
- associated with javathreadname
- for now, just the string name parsed directly from the javacore.tid
- = JNIENV or J9JVMThread, i.e., it equals the internal VM data structure for a java threadj9thread_t
- = a thread model at a lower level than a tid, which models a native thread: not represented in DTFJ, but pass it anyway as a possible ImageThread propertyjavaObjID
- The thread object seen from JavajniEnv
- The JNIENV- Returns:
- a non null JavaThread that was successfully added or updated.
- Throws:
BuilderFailureException
- if arguments lead to an invalid DTFJ object, particularly an invalid threadID
-
addJavaMonitor
public JavaMonitor addJavaMonitor(String monitorName, long monitorID, long objectID, String className, long owningThread) throws BuilderFailureException
Required: monitor ID (throws exception if invalid)
Optional: object ID, class name, monitor name, owning thread- Specified by:
addJavaMonitor
in interfaceIJavaRuntimeBuilder
- Parameters:
monitorName
- of monitor- Returns:
- successfully created JavaMonitor
- Throws:
BuilderFailureException
- if an invalid monitor ID is passed.
-
addVMInitArgs
public void addVMInitArgs() throws BuilderFailureException
Adds an (empty) JavaVMInitArgs- Specified by:
addVMInitArgs
in interfaceIJavaRuntimeBuilder
- Throws:
BuilderFailureException
-
addVMOption
public void addVMOption(String option) throws BuilderFailureException
Adds an individual VM option to JavaVMInitArgs- Specified by:
addVMOption
in interfaceIJavaRuntimeBuilder
- Throws:
BuilderFailureException
-
addVMOption
public void addVMOption(String option, long extraInfo) throws BuilderFailureException
Adds an individual VM option to JavaVMInitArgs, with 'extra information' field- Specified by:
addVMOption
in interfaceIJavaRuntimeBuilder
- Throws:
BuilderFailureException
-
setJavaVersion
public void setJavaVersion(String version)
Sets the Java version string.- Specified by:
setJavaVersion
in interfaceIJavaRuntimeBuilder
-
-