protected synchronized void loadFromFile(String path) {
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Loading extension of extensible {} from path: {}", interfaceName, path);
        }
        // 默认如果不指定文件名字，就是接口名
        String file = StringUtils.isBlank(extensible.file()) ? interfaceName : extensible.file().trim();
        String fullFileName = path + file;
        try {
            ClassLoader classLoader = ClassLoaderUtils.getClassLoader(getClass());
            loadFromClassLoader(classLoader, fullFileName);
        } catch (Throwable t) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Failed to load extension of extensible " + interfaceName + " from path:" + fullFileName,
                    t);
            }
        }
    }
@Test
    public void testLoadFromFile() throws Exception {
        ExtensionLoader loader = new ExtensionLoader<Filter>(Filter.class, false, null);
        loader.loadFromFile("META-INF/ext1/");
        Assert.assertTrue(loader.getAllExtensions().isEmpty());

        // test right extension
        loader = new ExtensionLoader<Filter>(Filter.class, false, null);
        loader.loadFromFile("META-INF/ext2/");
        Assert.assertFalse(loader.getAllExtensions().isEmpty());
        ExtensionClass extensionClass = loader.getExtensionClass("rightxx0");
        Assert.assertNotNull(extensionClass);
        Assert.assertTrue(extensionClass.getOrder() == 123);

        loader = new ExtensionLoader<Filter>(Filter.class, false, new TestErrorLoadListener());
        loader.loadFromFile("META-INF/ext3/");
        Assert.assertFalse(loader.getAllExtensions().isEmpty());
        extensionClass = loader.getExtensionClass("rightxx0");
        Assert.assertNotNull(extensionClass);
        extensionClass = loader.getExtensionClass("rightxx1");
        Assert.assertNotNull(extensionClass);
        Assert.assertTrue(extensionClass.getOrder() == 128);

        loader = new ExtensionLoader<Filter>(Filter.class, false, new TestLoadListener());
        loader.loadFromFile("META-INF/ext4/");
        Assert.assertFalse(loader.getAllExtensions().isEmpty());
        extensionClass = loader.getExtensionClass("rightxx0");
        Assert.assertNotNull(extensionClass);
        Assert.assertTrue(extensionClass.getOrder() == 123);
        extensionClass = loader.getExtensionClass("rightxx1");
        Assert.assertNotNull(extensionClass);
        Assert.assertTrue(extensionClass.getOrder() == 128);

    }