|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jikesrvm.classloader.RVMClassLoader
public class RVMClassLoader
Manufacture type descriptions as needed by the running virtual machine.
Field Summary | |
---|---|
(package private) static Atom |
annotationDefaultAttributeName
AnnotationDefault |
private static ClassLoader |
appCL
|
private static boolean |
appCLReady
Is the application class loader ready for use? |
private static String |
applicationRepositories
|
private static boolean |
assertionsEnabled
Are Java 1.4 style assertions enabled? |
(package private) static Atom |
codeAttributeName
Code |
(package private) static Atom |
constantValueAttributeName
ConstantValue |
private static boolean |
DBG_APP_CL
|
(package private) static Atom |
deprecatedAttributeName
Deprecated |
private static String[] |
disabledAssertionStrings
String describing packages and classes to disable assertions on (of the form ": |
private static String[] |
enabledAssertionStrings
String describing packages and classes to enable assertions on (of the form ": |
(package private) static Atom |
enclosingMethodAttributeName
EnclosingMethod |
(package private) static Atom |
exceptionsAttributeName
Exceptions |
private static int |
gettingAppCL
Are we getting the application CL? |
(package private) static Atom |
innerClassesAttributeName
InnerClasses |
(package private) static Atom |
lineNumberTableAttributeName
LineNumberTable |
(package private) static Atom |
localVariableTableAttributeName
LocalVariableTable |
(package private) static Atom |
runtimeInvisibleAnnotationsAttributeName
RuntimeInvisibleAnnotations |
(package private) static Atom |
runtimeInvisibleParameterAnnotationsAttributeName
RuntimeInvisibleParameterAnnotations |
(package private) static Atom |
runtimeVisibleAnnotationsAttributeName
RuntimeVisibleAnnotations |
(package private) static Atom |
runtimeVisibleParameterAnnotationsAttributeName
RuntimeVisibleParameterAnnotations |
(package private) static Atom |
signatureAttributeName
Signature |
(package private) static Atom |
sourceFileAttributeName
SourceFile |
static Atom |
StandardClassInitializerMethodDescriptor
"()V" |
static Atom |
StandardClassInitializerMethodName
<clinit> |
static Atom |
StandardObjectFinalizerMethodDescriptor
()V |
static Atom |
StandardObjectFinalizerMethodName
finalize |
static Atom |
StandardObjectInitializerHelperMethodName
this |
static Atom |
StandardObjectInitializerMethodDescriptor
()V |
static Atom |
StandardObjectInitializerMethodName
<init> |
(package private) static Atom |
syntheticAttributeName
Synthetic |
Fields inherited from interface org.jikesrvm.Constants |
---|
NOT_REACHED, REFLECTION_FPRS_BITS, REFLECTION_FPRS_MASK, REFLECTION_GPRS_BITS, REFLECTION_GPRS_MASK |
Fields inherited from interface org.jikesrvm.objectmodel.ThinLockConstants |
---|
TL_DEDICATED_U16_OFFSET, TL_DEDICATED_U16_SHIFT, TL_LOCK_COUNT_MASK, TL_LOCK_COUNT_SHIFT, TL_LOCK_COUNT_UNIT, TL_LOCK_ID_MASK, TL_LOCK_ID_SHIFT, TL_NUM_BITS_RC, TL_NUM_BITS_STAT, TL_NUM_BITS_TID, TL_STAT_BIASABLE, TL_STAT_FAT, TL_STAT_MASK, TL_STAT_SHIFT, TL_STAT_THIN, TL_THREAD_ID_MASK, TL_THREAD_ID_SHIFT, TL_UNLOCK_MASK |
Fields inherited from interface org.jikesrvm.objectmodel.TIBLayoutConstants |
---|
IMT_METHOD_SLOTS, NEEDS_DYNAMIC_LINK, TIB_ARRAY_ELEMENT_TIB_INDEX, TIB_DOES_IMPLEMENT_INDEX, TIB_FIRST_SPECIALIZED_METHOD_INDEX, TIB_FIRST_VIRTUAL_METHOD_INDEX, TIB_INTERFACE_DISPATCH_TABLE_INDEX, TIB_SUPERCLASS_IDS_INDEX, TIB_TYPE_INDEX |
Fields inherited from interface org.jikesrvm.HeapLayoutConstants |
---|
BAD_MAP_COMPRESSION, BOOT_IMAGE_CODE_END, BOOT_IMAGE_CODE_SIZE, BOOT_IMAGE_CODE_START, BOOT_IMAGE_DATA_END, BOOT_IMAGE_DATA_SIZE, BOOT_IMAGE_DATA_START, BOOT_IMAGE_END, BOOT_IMAGE_RMAP_END, BOOT_IMAGE_RMAP_START, MAX_BOOT_IMAGE_RMAP_SIZE, MAXIMUM_MAPPABLE |
Constructor Summary | |
---|---|
RVMClassLoader()
|
Method Summary | |
---|---|
static void |
boot()
Initialize at boot time. |
static void |
declareApplicationClassLoaderIsReady()
|
static RVMType |
defineClassInternal(String className,
byte[] classRep,
int offset,
int length,
ClassLoader classloader)
|
static RVMType |
defineClassInternal(String className,
InputStream is,
ClassLoader classloader)
|
static ClassLoader |
findWorkableClassloader(Atom clazz)
An unpleasant hack to deal with the problem of replaying work when using dynamic classloaders (whose identity will vary from run to run). |
static ClassLoader |
getApplicationClassLoader()
|
static String |
getApplicationRepositories()
Get list of places currently being searched for application classes and resources. |
private static TypeReference |
getClassTypeRef(DataInputStream input,
ClassLoader cl)
|
(package private) static boolean |
getDesiredAssertionStatus(RVMClass klass)
Calculate the desired assertion status for a freshly loaded class |
static void |
init(String bootstrapClasspath)
Initialize for boot image writing |
static void |
setApplicationRepositories(String classpath)
Set list of places to be searched for application classes and resources. |
static void |
stashApplicationRepositories(String classpath)
Set list of places to be searched for application classes and resources. |
static void |
stashDisableAssertionArg(String arg)
Remember the given disable assertions string |
static void |
stashEnableAssertionArg(String arg)
Remember the given enable assertions string |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final boolean DBG_APP_CL
private static ClassLoader appCL
private static boolean assertionsEnabled
private static String[] enabledAssertionStrings
private static String[] disabledAssertionStrings
private static int gettingAppCL
private static boolean appCLReady
private static String applicationRepositories
public static final Atom StandardClassInitializerMethodName
<clinit>
public static final Atom StandardClassInitializerMethodDescriptor
public static final Atom StandardObjectInitializerMethodName
<init>
public static final Atom StandardObjectInitializerMethodDescriptor
()V
public static final Atom StandardObjectInitializerHelperMethodName
this
public static final Atom StandardObjectFinalizerMethodName
finalize
public static final Atom StandardObjectFinalizerMethodDescriptor
()V
static final Atom codeAttributeName
Code
static final Atom constantValueAttributeName
ConstantValue
static final Atom lineNumberTableAttributeName
LineNumberTable
static final Atom exceptionsAttributeName
Exceptions
static final Atom sourceFileAttributeName
SourceFile
static final Atom localVariableTableAttributeName
LocalVariableTable
static final Atom deprecatedAttributeName
Deprecated
static final Atom innerClassesAttributeName
InnerClasses
static final Atom syntheticAttributeName
Synthetic
static final Atom enclosingMethodAttributeName
EnclosingMethod
static final Atom signatureAttributeName
Signature
static final Atom runtimeVisibleAnnotationsAttributeName
RuntimeVisibleAnnotations
static final Atom runtimeInvisibleAnnotationsAttributeName
RuntimeInvisibleAnnotations
static final Atom runtimeVisibleParameterAnnotationsAttributeName
RuntimeVisibleParameterAnnotations
static final Atom runtimeInvisibleParameterAnnotationsAttributeName
RuntimeInvisibleParameterAnnotations
static final Atom annotationDefaultAttributeName
AnnotationDefault
Constructor Detail |
---|
public RVMClassLoader()
Method Detail |
---|
public static void stashApplicationRepositories(String classpath)
classpath
- path specification in standard "classpath" formatpublic static void stashEnableAssertionArg(String arg)
arg
- String of the form ":public static void stashDisableAssertionArg(String arg)
arg
- String of the form ":static boolean getDesiredAssertionStatus(RVMClass klass)
klass
- to check against command line argument
public static void setApplicationRepositories(String classpath)
Our Jikes RVM classloader can not handle having the class path reset after it's been set up. Unfortunately, it is stashed by classes in GNU Classpath.
classpath
- path specification in standard "classpath" formatpublic static String getApplicationRepositories()
public static void declareApplicationClassLoaderIsReady()
public static ClassLoader getApplicationClassLoader()
public static void boot()
public static void init(String bootstrapClasspath)
public static RVMType defineClassInternal(String className, byte[] classRep, int offset, int length, ClassLoader classloader) throws ClassFormatError
ClassFormatError
public static RVMType defineClassInternal(String className, InputStream is, ClassLoader classloader) throws ClassFormatError
ClassFormatError
private static TypeReference getClassTypeRef(DataInputStream input, ClassLoader cl) throws IOException, ClassFormatError
IOException
ClassFormatError
public static ClassLoader findWorkableClassloader(Atom clazz)
clazz
- The class we're after
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |