protected String[] parseAliasAndClassName(String line) {
        if (StringUtils.isBlank(line)) {
            return null;
        }
        line = line.trim();
        int i0 = line.indexOf('#');
        if (i0 == 0 || line.length() == 0) {
            return null; // 当前行是注释 或者 空
        }
        if (i0 > 0) {
            line = line.substring(0, i0).trim();
        }

        String alias = null;
        String className;
        int i = line.indexOf('=');
        if (i > 0) {
            alias = line.substring(0, i).trim(); // 以代码里的为准
            className = line.substring(i + 1).trim();
        } else {
            className = line;
        }
        if (className.length() == 0) {
            return null;
        }
        return new String[] { alias, className };
    }
@Test
    public void testParseAliasAndClassName() throws Exception {
        ExtensionLoader loader = new ExtensionLoader<Filter>(Filter.class);

        Assert.assertNull(loader.parseAliasAndClassName(null));
        Assert.assertNull(loader.parseAliasAndClassName(""));
        Assert.assertNull(loader.parseAliasAndClassName("    "));
        Assert.assertNull(loader.parseAliasAndClassName("\t"));
        Assert.assertNull(loader.parseAliasAndClassName("\r\n"));

        Assert.assertNull(loader.parseAliasAndClassName("    # xxxx"));
        Assert.assertNull(loader.parseAliasAndClassName("# xxxx"));
        Assert.assertNull(loader.parseAliasAndClassName("xxx="));

        Assert.assertArrayEquals(loader.parseAliasAndClassName("1111"), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  1111"), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  1111   "), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("1111   "), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("1111#aa"), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  1111#aa"), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("1111#aa   "), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  1111#aa  "), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("1111 #aa"), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  1111 #aa"), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("1111 #aa   "), new String[] { null, "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  1111 #aa  "), new String[] { null, "1111" });

        Assert.assertArrayEquals(loader.parseAliasAndClassName("aa=1111"), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  aa=1111"), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("aa=1111  "), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  aa=1111  "), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("aa=1111#aa"), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  aa=1111#aa"), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("aa=1111#aa  "), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  aa=1111#aa  "), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("aa=1111  #aa"), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  aa=1111  #aa"), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("aa=1111  #aa  "), new String[] { "aa", "1111" });
        Assert.assertArrayEquals(loader.parseAliasAndClassName("  aa=1111  #aa  "), new String[] { "aa", "1111" });
    }