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

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

Introduction

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

Prototype

public PluginDeclarationRule() 

Source Link

Document

constructor

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 {/*w ww .j ava2s  .  c o 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;
}