Class WebsphereLibertyClassLoaderHandler
- java.lang.Object
-
- nonapi.io.github.classgraph.classloaderhandler.WebsphereLibertyClassLoaderHandler
-
- All Implemented Interfaces:
ClassLoaderHandler
class WebsphereLibertyClassLoaderHandler extends java.lang.Object implements ClassLoaderHandler
WebsphereLibertyClassLoaderHandler.Used to support WAS Liberty Profile classloading in io.github.classgraph
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringIBM_APP_CLASS_LOADER"com.ibm.ws.classloading.internal.AppClassLoader"private static java.lang.StringIBM_THREAD_CONTEXT_CLASS_LOADER"com.ibm.ws.classloading.internal.ThreadContextClassLoader"private static java.lang.StringPKG_PREFIX"com.ibm.ws.classloading.internal."
-
Constructor Summary
Constructors Modifier Constructor Description privateWebsphereLibertyClassLoaderHandler()Class cannot be constructed.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static java.util.Collection<java.lang.Object>callGetUrls(java.lang.Object container, java.lang.String methodName, ReflectionUtils reflectionUtils)Utility to call a "getURLs" method, flattening "collections of collections" and ignoring "UnsupportedOperationException".static booleancanHandle(java.lang.Class<?> classLoaderClass, LogNode log)Check whether thisClassLoaderHandlercan handle a givenClassLoader.static voidfindClassLoaderOrder(java.lang.ClassLoader classLoader, ClassLoaderOrder classLoaderOrder, LogNode log)Find theClassLoaderdelegation order for aClassLoader.static voidfindClasspathOrder(java.lang.ClassLoader classLoader, ClasspathOrder classpathOrder, ScanSpec scanSpec, LogNode log)Find the classpath entries for the associatedClassLoader.private static java.util.Collection<java.lang.Object>getPaths(java.lang.Object containerClassLoader, ReflectionUtils reflectionUtils)Get the paths from a containerClassLoader object.
-
-
-
Field Detail
-
PKG_PREFIX
private static final java.lang.String PKG_PREFIX
"com.ibm.ws.classloading.internal."- See Also:
- Constant Field Values
-
IBM_APP_CLASS_LOADER
private static final java.lang.String IBM_APP_CLASS_LOADER
"com.ibm.ws.classloading.internal.AppClassLoader"- See Also:
- Constant Field Values
-
IBM_THREAD_CONTEXT_CLASS_LOADER
private static final java.lang.String IBM_THREAD_CONTEXT_CLASS_LOADER
"com.ibm.ws.classloading.internal.ThreadContextClassLoader"- See Also:
- Constant Field Values
-
-
Method Detail
-
canHandle
public static boolean canHandle(java.lang.Class<?> classLoaderClass, LogNode log)Check whether thisClassLoaderHandlercan handle a givenClassLoader.- Parameters:
classLoaderClass- theClassLoaderclass or one of its superclasses.log- the log- Returns:
- true if this
ClassLoaderHandlercan handle theClassLoader.
-
findClassLoaderOrder
public static void findClassLoaderOrder(java.lang.ClassLoader classLoader, ClassLoaderOrder classLoaderOrder, LogNode log)Find theClassLoaderdelegation order for aClassLoader.- Parameters:
classLoader- theClassLoaderto find the order for.classLoaderOrder- aClassLoaderOrderobject to update.log- the log
-
getPaths
private static java.util.Collection<java.lang.Object> getPaths(java.lang.Object containerClassLoader, ReflectionUtils reflectionUtils)Get the paths from a containerClassLoader object.The passed in object should be an instance of "com.ibm.ws.classloading.internal.ContainerClassLoader".
Will attempt to use "getContainerURLs" methods to recap the classpath.
- Parameters:
containerClassLoader- the containerClassLoader object- Returns:
- Collection of path objects as a
URLorString.
-
callGetUrls
private static java.util.Collection<java.lang.Object> callGetUrls(java.lang.Object container, java.lang.String methodName, ReflectionUtils reflectionUtils)Utility to call a "getURLs" method, flattening "collections of collections" and ignoring "UnsupportedOperationException". All of the "getURLs" methods eventually call "com.ibm.wsspi.adaptable.module.Container#getURLs()". https://www.ibm.com/support/knowledgecenter/SSEQTP_liberty/com.ibm.websphere.javadoc.liberty.doc /com.ibm.websphere.appserver.spi.artifact_1.2-javadoc /com/ibm/wsspi/adaptable/module/Container.html?view=embed#getURLs() "A collection of URLs that represent all of the locations on disk that contribute to this container"
-
findClasspathOrder
public static void findClasspathOrder(java.lang.ClassLoader classLoader, ClasspathOrder classpathOrder, ScanSpec scanSpec, LogNode log)Find the classpath entries for the associatedClassLoader.- Parameters:
classLoader- theClassLoaderto find the classpath entries order for.classpathOrder- aClasspathOrderobject to update.scanSpec- theScanSpec.log- the log.
-
-