public final class ClassFinder extends Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
ClassFinder.Closeable |
| Modifier and Type | Field and Description |
|---|---|
static String |
JMETER_SKIP_CLASS_SCANNING_ATTRIBUTE |
| Modifier and Type | Method and Description |
|---|---|
static List<String> |
findAnnotatedClasses(String[] strPathsOrJars,
Class<? extends Annotation>[] annotations)
Deprecated.
use
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJars |
static List<String> |
findAnnotatedClasses(String[] strPathsOrJars,
Class<? extends Annotation>[] annotations,
boolean innerClasses)
Deprecated.
use
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJars |
static List<String> |
findClasses(String[] searchPathsOrJars,
ClassFilter filter)
Deprecated.
use
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJars |
static List<String> |
findClassesThatExtend(String[] paths,
Class<?>[] superClasses)
Deprecated.
use
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJars |
static List<String> |
findClassesThatExtend(String[] strPathsOrJars,
Class<?>[] superClasses,
boolean innerClasses)
Deprecated.
use
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJars |
static List<String> |
findClassesThatExtend(String[] strPathsOrJars,
Class<?>[] superClasses,
boolean innerClasses,
String contains,
String notContains)
Deprecated.
use
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJars |
static List<String> |
findClassesThatExtend(String[] searchPathsOrJars,
Class<?>[] classNames,
boolean innerClasses,
String contains,
String notContains,
boolean annotations)
Deprecated.
use
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJars |
static boolean |
getSkipJarsWithJmeterSkipClassScanningAttribute() |
static <S> Collection<S> |
loadServices(Class<S> service,
ServiceLoader<S> serviceLoader,
ServiceLoadExceptionHandler<? super S> exceptionHandler)
Loads services implementing a given interface.
|
static ClassFinder.Closeable |
skipJarsWithJmeterSkipClassScanningAttribute()
Configures if
ClassFinder should skip jar files that have JMeter-Skip-Class-Scanning: true
manifest attribute. |
public static final String JMETER_SKIP_CLASS_SCANNING_ATTRIBUTE
@API(status=EXPERIMENTAL,
since="5.6")
public static boolean getSkipJarsWithJmeterSkipClassScanningAttribute()
@API(status=INTERNAL,
since="5.6")
public static ClassFinder.Closeable skipJarsWithJmeterSkipClassScanningAttribute()
ClassFinder should skip jar files that have JMeter-Skip-Class-Scanning: true
manifest attribute.
JMeter will skip such jars when it uses both ServiceLoader and ClassFinder.
However, ClassFinder was public, so it was possible that custom plugins could use it, and they should
be able to find the implementations even if they are in jars with JMeter-Skip-Class-Scanning: true.
Sample usage:
List<String> classNames;
try (ClassFinder.Closeable ignored = ClassFinder.skipJarsWithJmeterSkipClassScanningAttribute()) {
// findClassesThatExtend will not skip jars with JMeter-Skip-Class-Scanning: true manifest attribute
classNames = ClassFinder.findClassesThatExtend(...);
public static <S> Collection<S> loadServices(Class<S> service, ServiceLoader<S> serviceLoader, ServiceLoadExceptionHandler<? super S> exceptionHandler)
findClassesThatExtend.S - type of service (class or interface)service - interface that services should extend.serviceLoader - ServiceLoader to fetch services.exceptionHandler - exception handler to use for services that fail to load.@Deprecated public static List<String> findClassesThatExtend(String[] paths, Class<?>[] superClasses) throws IOException
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJarsfindClassesThatExtend(String[], Class[], boolean) with the
option to include inner classes in the search set to false.paths - pathnames or jarfiles to search for classessuperClasses - required parent class(es)IOException - when scanning the classes fails@Deprecated public static List<String> findClassesThatExtend(String[] strPathsOrJars, Class<?>[] superClasses, boolean innerClasses) throws IOException
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJarsstrPathsOrJars - pathnames or jarfiles to search for classessuperClasses - required parent class(es)innerClasses - should we include inner classes?IOException - when scanning for classes fails@API(status=DEPRECATED,
since="5.6")
@Deprecated
public static List<String> findClassesThatExtend(String[] strPathsOrJars,
Class<?>[] superClasses,
boolean innerClasses,
String contains,
String notContains)
throws IOException
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJarsstrPathsOrJars - pathnames or jarfiles to search for classessuperClasses - required parent class(es)innerClasses - should we include inner classes?contains - classname should contain this stringnotContains - classname should not contain this stringIOException - when scanning classes fails@API(status=DEPRECATED,
since="5.6")
@Deprecated
public static List<String> findAnnotatedClasses(String[] strPathsOrJars,
Class<? extends Annotation>[] annotations,
boolean innerClasses)
throws IOException
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJarsstrPathsOrJars - pathnames or jarfiles to search for classesannotations - required annotationsinnerClasses - should we include inner classes?IOException - when scanning classes fails@API(status=DEPRECATED,
since="5.6")
@Deprecated
public static List<String> findAnnotatedClasses(String[] strPathsOrJars,
Class<? extends Annotation>[] annotations)
throws IOException
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJarsstrPathsOrJars - pathnames or jarfiles to search for classesannotations - required annotationsIOException - when scanning classes fails@API(status=DEPRECATED,
since="5.6")
@Deprecated
public static List<String> findClassesThatExtend(String[] searchPathsOrJars,
Class<?>[] classNames,
boolean innerClasses,
String contains,
String notContains,
boolean annotations)
throws IOException
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJarssearchPathsOrJars - pathnames or jarfiles to search for classesclassNames - required parent class(es) or annotationsinnerClasses - should we include inner classes?contains - classname should contain this stringnotContains - classname should not contain this stringannotations - true if classnames are annotationsIOException - when scanning classes fails@API(status=DEPRECATED,
since="5.6")
@Deprecated
public static List<String> findClasses(String[] searchPathsOrJars,
ClassFilter filter)
throws IOException
loadServices(Class, ServiceLoader, ServiceLoadExceptionHandler) or JMeterUtils#loadServicesAndScanJarssearchPathsOrJars - list of strings representing the jar locationsfilter - ClassFilter that the classes in the jars should
conform tofilterIOException - when reading the jar files failsCopyright © 1998-2023 Apache Software Foundation. All Rights Reserved.