use of java.lang.invoke.MethodHandles.Lookup in project openj9 by eclipse.
the class LookupInTests method testLookup_RelatedClassLoaders_ChildLookupInParent.
/**
* Validates access restrictions stored in a new Lookup object created from an old Lookup object
* where the new lookup class was loaded using a custom class loader which is the parent class loader
* of the class loader that loaded the original lookup class.
* @throws Throwable
*/
@Test(groups = { "level.sanity" })
public void testLookup_RelatedClassLoaders_ChildLookupInParent() throws Throwable {
CustomClassLoader parentCustomCL = new CustomClassLoader(LookupInTests.class.getClassLoader());
Object customLoadedClass1 = parentCustomCL.loadClass("com.ibm.j9.jsr292.CustomLoadedClass1").newInstance();
Assert.assertTrue(customLoadedClass1.getClass().getClassLoader() == parentCustomCL);
CustomClassLoader childCustomCL = new CustomClassLoader(parentCustomCL);
ICustomLoadedClass customLoadedClass2 = (ICustomLoadedClass) childCustomCL.loadClass("com.ibm.j9.jsr292.CustomLoadedClass2").newInstance();
Assert.assertTrue(customLoadedClass2.getClass().getClassLoader() == childCustomCL);
Lookup lookup = customLoadedClass2.getLookup();
Lookup inObject = lookup.in(customLoadedClass1.getClass());
assertClassAndMode(inObject, customLoadedClass1.getClass(), MethodHandles.Lookup.PUBLIC);
}
use of java.lang.invoke.MethodHandles.Lookup in project openj9 by eclipse.
the class LookupInTests method testLookup_SamePackageLookup.
/**
*****************************************************************************
* Tests involving same package, cross package, super class, subclass lookups
* ****************************************************************************
*/
/**
* Validates access restrictions stored in a new Lookup object created from an old Lookup object
* where the new lookup class is a different class but under the same package as the lookup class
* of the original Lookup object.
* @throws Throwable
*/
@Test(groups = { "level.sanity" })
public void testLookup_SamePackageLookup() throws Throwable {
Lookup inObject = samePackageExampleLookup.in(SamePackageSingleMethodInterfaceExample.class);
assertClassAndMode(inObject, SamePackageSingleMethodInterfaceExample.class, MODULE_PUBLIC_PACKAGE_MODE);
}
use of java.lang.invoke.MethodHandles.Lookup in project openj9 by eclipse.
the class LookupInTests method testLookup_RelatedClassLoaders_ParentLookupInChild.
/**
* Validates access restrictions stored in a new Lookup object created from an old Lookup object
* where the new lookup class was loaded using a custom class loader which is the child class loader
* of the class loader that loaded the original lookup class.
* @throws Throwable
*/
@Test(groups = { "level.sanity" })
public void testLookup_RelatedClassLoaders_ParentLookupInChild() throws Throwable {
CustomClassLoader parentCustomCL = new CustomClassLoader(LookupInTests.class.getClassLoader());
ICustomLoadedClass customLoadedClass1 = (ICustomLoadedClass) parentCustomCL.loadClass("com.ibm.j9.jsr292.CustomLoadedClass1").newInstance();
Assert.assertTrue(customLoadedClass1.getClass().getClassLoader() == parentCustomCL);
CustomClassLoader childCustomCL = new CustomClassLoader(parentCustomCL);
ICustomLoadedClass customLoadedClass2 = (ICustomLoadedClass) childCustomCL.loadClass("com.ibm.j9.jsr292.CustomLoadedClass2").newInstance();
Assert.assertTrue(customLoadedClass2.getClass().getClassLoader() == childCustomCL);
Lookup lookup = customLoadedClass1.getLookup();
Lookup inObject = lookup.in(customLoadedClass2.getClass());
assertClassAndMode(inObject, customLoadedClass2.getClass(), MethodHandles.Lookup.PUBLIC);
}
use of java.lang.invoke.MethodHandles.Lookup in project openj9 by eclipse.
the class LookupInTests method testLookup_PublicOuterClassLookup.
/**
* Validates access restrictions stored in a new Lookup object created from an old Lookup object
* where the new lookup class is the outer class of the old lookup class.
* @throws Throwable
*/
@Test(groups = { "level.sanity" })
public void testLookup_PublicOuterClassLookup() throws Throwable {
Lookup inObj = samePackageInnerClassLookup.in(SamePackageExample.class);
assertClassAndMode(inObj, SamePackageExample.class, FULL_ACCESS_MODE);
}
use of java.lang.invoke.MethodHandles.Lookup in project openj9 by eclipse.
the class LookupInTests method testLookup_UnrelatedClassLoaders.
/**
**************************************************
* Tests involving cross class loaders
* **************************************************
*/
/**
* Validates access restrictions stored in a new Lookup object created from an old Lookup object
* where the new lookup class was loaded using a custom class loader unrelated to the class loader
* that loaded the original lookup class.
* @throws Throwable
*/
@Test(groups = { "level.sanity" })
public void testLookup_UnrelatedClassLoaders() throws Throwable {
CustomClassLoader unrelatedClassLoader = new CustomClassLoader(LookupInTests.class.getClassLoader());
Object customLoadedClass = unrelatedClassLoader.loadClass("com.ibm.j9.jsr292.CustomLoadedClass1").newInstance();
Lookup inObject = samePackageExampleLookup.in(customLoadedClass.getClass());
assertClassAndMode(inObject, customLoadedClass.getClass(), MethodHandles.Lookup.PUBLIC);
}
Aggregations