private ClassLoader getClassLoader()

in src/main/java/org/apache/sling/commons/compiler/impl/EclipseJavaCompiler.java [81:108]


    private ClassLoader getClassLoader(final Options options, final ClassLoaderWriter classLoaderWriter) {
        final ClassLoader loader;
        if ( options.get(Options.KEY_CLASS_LOADER) != null ) {
            loader = (ClassLoader)options.get(Options.KEY_CLASS_LOADER);
        } else if ( options.get(Options.KEY_ADDITIONAL_CLASS_LOADER) != null ) {
            final ClassLoader additionalClassLoader = (ClassLoader)options.get(Options.KEY_ADDITIONAL_CLASS_LOADER);
            loader = new ClassLoader(classLoaderWriter.getClassLoader()) {
                @Override
                protected Class<?> findClass(String name)
                throws ClassNotFoundException {
                    return additionalClassLoader.loadClass(name);
                }

                @Override
                protected URL findResource(String name) {
                    return additionalClassLoader.getResource(name);
                }
            };
        } else {
            final ClassLoader cl = classLoaderWriter.getClassLoader();
            if ( cl == null ) {
                loader = this.classLoaderWriter.getClassLoader();
            } else {
                loader = cl;
            }
        }
        return loader;
    }