code: public static ClassResolver weakCachingResolver(ClassLoader classLoader) {
          return new CachingClassResolver(
                  new ClassLoaderClassResolver(defaultClassLoader(classLoader)),
                  new WeakReferenceMap<String, Class<?>>(new HashMap<String, Reference<Class<?>>>()));
      }
docs: non-aggressive non-concurrent cache
  good for non-shared default cache
  
  @param classLoader - specific classLoader to use, or null if you want to revert to default
  @return new instance of class resolver