Home / Class/ ClassResolvers Class — netty Architecture

ClassResolvers Class — netty Architecture

Architecture documentation for the ClassResolvers class in ClassResolvers.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  7314e21c_4e1d_c821_d398_247dfd881403["ClassResolvers"]
  07e2565e_e4f3_5f0c_8750_4b6120cf2b8f["ClassResolvers.java"]
  7314e21c_4e1d_c821_d398_247dfd881403 -->|defined in| 07e2565e_e4f3_5f0c_8750_4b6120cf2b8f
  b2fe9c87_5012_f822_12e1_209e1c53517a["ClassResolver()"]
  7314e21c_4e1d_c821_d398_247dfd881403 -->|method| b2fe9c87_5012_f822_12e1_209e1c53517a
  2bef9a15_b772_8d4b_b1a6_19fd403baa72["ClassLoader()"]
  7314e21c_4e1d_c821_d398_247dfd881403 -->|method| 2bef9a15_b772_8d4b_b1a6_19fd403baa72
  52388496_97f5_c5e1_47fe_9ebe85612c06["ClassResolvers()"]
  7314e21c_4e1d_c821_d398_247dfd881403 -->|method| 52388496_97f5_c5e1_47fe_9ebe85612c06

Relationship Graph

Source Code

codec-base/src/main/java/io/netty/handler/codec/serialization/ClassResolvers.java lines 37–117

@Deprecated
public final class ClassResolvers {

    /**
     * cache disabled
     * @param classLoader - specific classLoader to use, or null if you want to revert to default
     * @return new instance of class resolver
     */
    public static ClassResolver cacheDisabled(ClassLoader classLoader) {
        return new ClassLoaderClassResolver(defaultClassLoader(classLoader));
    }

    /**
     * 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
     */
    public static ClassResolver weakCachingResolver(ClassLoader classLoader) {
        return new CachingClassResolver(
                new ClassLoaderClassResolver(defaultClassLoader(classLoader)),
                new WeakReferenceMap<String, Class<?>>(new HashMap<String, Reference<Class<?>>>()));
    }

    /**
     * aggressive non-concurrent cache
     * good for non-shared cache, when we're not worried about class unloading
     *
     * @param classLoader - specific classLoader to use, or null if you want to revert to default
     * @return new instance of class resolver
     */
    public static ClassResolver softCachingResolver(ClassLoader classLoader) {
        return new CachingClassResolver(
                new ClassLoaderClassResolver(defaultClassLoader(classLoader)),
                new SoftReferenceMap<String, Class<?>>(new HashMap<String, Reference<Class<?>>>()));
    }

    /**
     * non-aggressive concurrent cache
     * good for shared cache, when we're worried about class unloading
     *
     * @param classLoader - specific classLoader to use, or null if you want to revert to default
     * @return new instance of class resolver
     */
    public static ClassResolver weakCachingConcurrentResolver(ClassLoader classLoader) {
        return new CachingClassResolver(
                new ClassLoaderClassResolver(defaultClassLoader(classLoader)),
                new WeakReferenceMap<String, Class<?>>(new ConcurrentHashMap<>()));
    }

    /**
     * aggressive concurrent cache
     * good for shared cache, when we're not worried about class unloading
     *
     * @param classLoader - specific classLoader to use, or null if you want to revert to default
     * @return new instance of class resolver
     */
    public static ClassResolver softCachingConcurrentResolver(ClassLoader classLoader) {
        return new CachingClassResolver(
                new ClassLoaderClassResolver(defaultClassLoader(classLoader)),
                new SoftReferenceMap<String, Class<?>>(new ConcurrentHashMap<>()));
    }

    static ClassLoader defaultClassLoader(ClassLoader classLoader) {
        if (classLoader != null) {
            return classLoader;
        }

        final ClassLoader contextClassLoader = PlatformDependent.getContextClassLoader();
        if (contextClassLoader != null) {
            return contextClassLoader;
        }

        return PlatformDependent.getClassLoader(ClassResolvers.class);
    }

    private ClassResolvers() {
        // Unused
    }
}

Frequently Asked Questions

What is the ClassResolvers class?
ClassResolvers is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ClassResolvers.java.
Where is ClassResolvers defined?
ClassResolvers is defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ClassResolvers.java at line 37.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free