Example usage for org.apache.commons.digester.plugins PluginRules PluginRules

List of usage examples for org.apache.commons.digester.plugins PluginRules PluginRules

Introduction

In this page you can find the example usage for org.apache.commons.digester.plugins PluginRules PluginRules.

Prototype

public PluginRules() 

Source Link

Document

Constructor for top-level Rules objects.

Usage

From source file:com.alibaba.antx.config.descriptor.ConfigDescriptorLoader.java

/** ?validators.xmlvalidator */
private Digester loadValidatorPlugins() {
    Digester digester = new Digester();

    digester.setRules(new PluginRules());

    digester.addObjectCreate("config-property-validators", HashMap.class);

    digester.addCallMethod("config-property-validators/validator", "put", 2);
    digester.addCallParam("config-property-validators/validator", 0, "id");
    digester.addCallParam("config-property-validators/validator", 1, "class");

    digester.addRule("config-property-validators/validator", new PluginDeclarationRule());

    InputStream istream = getClass().getResourceAsStream("validators.xml");

    try {/*from  ww w  .  ja va2s.  co m*/
        digester.push(digester.parse(istream));
    } catch (Exception e) {
        throw new ConfigException("Failed to load validators", e);
    } finally {
        if (istream != null) {
            try {
                istream.close();
            } catch (IOException e) {
            }
        }
    }

    digester.getRules().clear();

    return digester;
}