testpluginsclassloader.java

来自「模块化您的应用系统」· Java 代码 · 共 35 行

JAVA
35
字号
package com.opensymphony.tonic.loaders.classloading;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Enumeration;

public class TestPluginsClassLoader extends AbstractTestClassLoader
{
    public void testLoaderWithDirectory() throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException
    {
        File pluginsDirectory = getPluginsDirectory();

        // first make a classloader of the entire directory.
        ClassLoader loader = PluginsClassLoader.getInstance(pluginsDirectory.toURL());

        // check we got the right one back
        assertEquals(URLClassLoader.class, loader.getClass());

        // we should get one descriptor back for each JAR in the directory (2)
        Enumeration descriptors = loader.getResources("paddington-test-plugin.jar");
        assertTrue(descriptors.hasMoreElements());
        URL descriptor = (URL) descriptors.nextElement();
        assertTrue(descriptor.toExternalForm().endsWith("plugins/paddington-test-plugin.jar"));
        assertFalse(descriptors.hasMoreElements());

        descriptors = loader.getResources("pooh-test-plugin.jar");
        assertTrue(descriptors.hasMoreElements());
        descriptor = (URL) descriptors.nextElement();
        assertTrue(descriptor.toExternalForm().endsWith("plugins/pooh-test-plugin.jar"));
        assertFalse(descriptors.hasMoreElements());
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?