private Class<?> forName(String name, boolean isTraceEnabled) {
    for (ClassLoader classLoader : getClassLoaders()) {
      if (isTraceEnabled) {
        logger.trace("forName trying: {}", classLoader);
      }
      try {
        // Do not look up class definitions in jars that have been unloaded or are old
        if (classLoader instanceof DeployJarChildFirstClassLoader) {
          if (((DeployJarChildFirstClassLoader) classLoader).thisIsOld()) {
            return null;
          }
        }
        Class<?> clazz = Class.forName(name, true, classLoader);
        if (isTraceEnabled) {
          logger.trace("forName found by: {}", classLoader);
        }
        return clazz;
      } catch (SecurityException | ClassNotFoundException e) {
        // try next classLoader
      }
    }
    return null;
  }
Returns an input stream for reading the specified resource.
<p>
The search order is described in the documentation for {@link #getResource(Class, String)}.

@param contextClass The class whose class loader will first be searched
@param name The resource name
@return An input stream for reading the resource, or <tt>null</tt> if the resource could not be
        found
geode-deployment/geode-deployment-legacy/src/main/java/org/apache/geode/classloader/internal/LegacyClasspathServiceImpl.java