Example usage for org.apache.commons.digester Digester setRules

List of usage examples for org.apache.commons.digester Digester setRules

Introduction

In this page you can find the example usage for org.apache.commons.digester Digester setRules.

Prototype

public void setRules(Rules rules) 

Source Link

Document

Set the Rules implementation object containing our rules collection and associated matching policy.

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 w w . j av a2 s.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;
}

From source file:org.ajax4jsf.builder.config.BuilderConfig.java

/**
 * Parsing builder configuration file//from  w  w w .j  a v a2s  .c o m
 * 
 * @param configFile
 * @throws ParsingException
 */
public void parseConfig(final File configFile) throws ParsingException {
    getLog().info(" Parse config file " + configFile.toString());
    Digester digester = new Digester();
    digester.setRules(new ExtendedBaseRules());
    digester.setValidating(false);
    digester.setNamespaceAware(false);
    // try {
    // URL dtd =
    // this.getClass().getClassLoader().getResource(COMPONENT_CONFIG_DTD_URI);
    // new
    // URL("resource:/com/exadel/vcp/builder/config/component-config.dtd");
    getLog().debug("Register config DTD as URI " + COMPONENT_CONFIG_DTD_URI);
    digester.register(GENERATOR_CONFIG_PUBLIC_ID, COMPONENT_CONFIG_DTD_URI);
    // } catch (MalformedURLException e) {
    // throw new ParsingException("Malformed URL for internal DTD
    // reference",e);
    // }

    // setup custom entity resolver for handle file-resource path's
    // resolve DTD even it not pointed in file, and, for entities - resolve
    // it in
    // classpath if entity registered in DTD witn path /META-INF/schema
    digester.setEntityResolver(new EntityResolver2() {

        /*
         * (non-Javadoc)
         * 
         * @see org.xml.sax.EntityResolver#resolveEntity(java.lang.String,
         *      java.lang.String)
         */
        public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
            getLog().debug("Request for entity with systemId " + systemId + " and publicId " + publicId);
            if (GENERATOR_CONFIG_PUBLIC_ID.equals(publicId)) {
                return getDTDSource();
            } else if (null != publicId && null != systemId && systemId.contains(ENTITIES_FOLDER)) {
                int base = systemId.indexOf(ENTITIES_FOLDER);
                String entity = COMPONENT_SCHEMA_BASE + systemId.substring(base);
                getLog().debug("attempt to load entity from classpath " + entity);
                InputStream entityStream = BuilderConfig.class.getResourceAsStream(entity);
                if (null != entityStream) {
                    return new InputSource(entityStream);
                }
            }
            return null;
        }

        public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException {
            getLog().debug("Request for ExternalSubset with name " + name + " and baseURI " + baseURI);
            if (GENERATOR_CONFIG_ROOT_ELEMENT.equals(name)) {
                return getDTDSource();
            }
            return null;
        }

        public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId)
                throws SAXException, IOException {
            getLog().debug(
                    "Request for extended entity with systemId " + systemId + " and publicId " + publicId);
            getLog().debug("additional parameters with name " + name + " and baseURI " + baseURI);
            if ("[dtd]".equals(name) && GENERATOR_CONFIG_PUBLIC_ID.equals(publicId)) {
                return getDTDSource();
            } else if (null == name || (!name.startsWith("[") && !name.startsWith("&"))) {
                return resolveEntity(publicId, systemId);
            }
            return null;
        }

        /**
         * Resolve config DTD from classpath
         * 
         * @return source of config file DTD
         */
        private InputSource getDTDSource() {
            return new InputSource(BuilderConfig.class.getResourceAsStream(COMPONENT_CONFIG_DTD_URI));
        }

    });

    // Parsing rules.

    // Components
    String path = "components/component";
    digester.addObjectCreate(path, ComponentBean.class);
    digester.addBeanPropertySetter(path + "/name");
    digester.addBeanPropertySetter(path + "/family");
    digester.addBeanPropertySetter(path + "/classname");
    digester.addBeanPropertySetter(path + "/superclass");
    digester.addBeanPropertySetter(path + "/description");
    digester.addBeanPropertySetter(path + "/displayname");
    digester.addBeanPropertySetter(path + "/icon");
    // TODO - for superclass, populate from description in config file, if
    // exist
    digester.addSetProperties(path);
    digester.addSetNext(path, "addComponent");
    path = "components/renderer";
    digester.addObjectCreate(path, RendererBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addRenderer");
    path = "components/component/renderer";
    digester.addObjectCreate(path, RendererBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setRenderer");

    path = "components/component/facet";
    digester.addObjectCreate(path, JsfBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addFacet");
    path = "components/component/event";
    digester.addObjectCreate(path, EventBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addEvent");

    // Validators

    path = "components/validator";
    digester.addObjectCreate(path, ValidatorBean.class);
    digester.addBeanPropertySetter(path + "/id");
    digester.addBeanPropertySetter(path + "/classname");
    digester.addBeanPropertySetter(path + "/superclass");
    digester.addBeanPropertySetter(path + "/description");
    digester.addBeanPropertySetter(path + "/displayname");
    digester.addBeanPropertySetter(path + "/icon");
    // TODO - for superclass, populate from description in config file, if
    // exist
    digester.addSetProperties(path);
    digester.addSetNext(path, "addValidator");

    path = "components/validator/property";
    digester.addObjectCreate(path, PropertyBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addProperty");

    // Converters

    path = "components/converter";
    digester.addObjectCreate(path, ConverterBean.class);
    digester.addBeanPropertySetter(path + "/id");
    digester.addBeanPropertySetter(path + "/classname");
    digester.addBeanPropertySetter(path + "/superclass");
    digester.addBeanPropertySetter(path + "/description");
    digester.addBeanPropertySetter(path + "/displayname");
    digester.addBeanPropertySetter(path + "/icon");
    digester.addBeanPropertySetter(path + "/forclass");
    // TODO - for superclass, populate from description in config file, if
    // exist
    digester.addSetProperties(path);
    digester.addSetNext(path, "addConverter");

    // Functions

    path = "components/function";
    digester.addObjectCreate(path, FunctionBean.class);
    digester.addBeanPropertySetter(path + "/name");
    digester.addBeanPropertySetter(path + "/description");
    digester.addBeanPropertySetter(path + "/method");
    digester.addSetNext(path, "addFunction");

    // - Tags & Tag handlers

    path = "components/component/tag";
    digester.addObjectCreate(path, TagBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTag");

    path = "components/validator/tag";
    digester.addObjectCreate(path, TagBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTag");

    path = "components/converter/tag";
    digester.addObjectCreate(path, TagBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTag");

    path = "components/component/tag/test";
    digester.addObjectCreate(path, TagTestClassHolder.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTest");

    path = "components/component/test";
    digester.addObjectCreate(path, TestClassHolder.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTest");

    path = "components/component/taghandler";
    digester.addObjectCreate(path, TagHandlerBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTaghandler");
    /*
          * path = "components/component/taghandler/test";
          * digester.addObjectCreate(path, TestClassHolder.class);
          * digester.addBeanPropertySetter(path+"/?");
          * digester.addSetProperties(path); digester.addSetNext(path,
          * "setTest");
          */

    // Properties
    path = "components/component/property";
    digester.addObjectCreate(path, PropertyBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addProperty");

    // path = "components/validator/property";
    // digester.addObjectCreate(path, PropertyBean.class);
    // digester.addBeanPropertySetter(path+"/?");
    // digester.addSetProperties(path);
    // digester.addSetNext(path, "addProperty");

    path = "components/converter/property";
    digester.addObjectCreate(path, PropertyBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addProperty");

    path = "*/properties/property";
    digester.addObjectCreate(path, PropertyBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addProperty");

    // Listeners

    path = "components/listener";
    digester.addObjectCreate(path, ListenerBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addListener");
    path = "components/listener/tag";
    digester.addObjectCreate(path, TagBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTag");
    path = "components/listener/taghandler";
    digester.addObjectCreate(path, TagHandlerBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "setTaghandler");
    path = "components/listener/property";
    digester.addObjectCreate(path, PropertyBean.class);
    digester.addBeanPropertySetter(path + "/?");
    digester.addSetProperties(path);
    digester.addSetNext(path, "addProperty");

    // Set this config as root.
    digester.push(this);
    try {
        digester.parse(configFile.toString());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        throw new ParsingException("I/O error on parsing config file ", e);
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        throw new ParsingException("SAX Parsing error in config file ", e);
    }
    // checkComopnentProperties();
    // return this;
}

From source file:org.bedework.dumprestore.restore.rules.RestoreRuleSet.java

@Override
public void addRuleInstances(final Digester d) {
    BwStringRule strRule = new BwStringRule(globals);
    BwStringFieldRule strFrule = new BwStringFieldRule(globals);

    BwLongStringRule lstrRule = new BwLongStringRule(globals);
    BwLongStringFieldRule lstrFrule = new BwLongStringFieldRule(globals);

    PrincipalFieldRule principalField = new PrincipalFieldRule(globals);

    PushFieldRule uidField = new PushFieldRule(globals, "uid");

    PushFieldRule pathField = new PushFieldRule(globals, "path");

    d.setRules(new ExtendedBaseRules());

    /* ---------------- Universal rules ------------------------------ */

    //d.addRule("!*/owner", new OwnerRule(globals));
    //d.addRule("!*/owner/user", principalField);
    //d.addRule("!*/owner/user/account", principalField);
    //d.addRule("!*/owner/group", principalField);
    // d.addRule("!*/owner/group/account", principalField);

    //    d.addRule("!*/groupOwner", new OwnerRule(globals));
    //  d.addRule("!*/groupOwner/user", principalField);
    //d.addRule("!*/groupOwner/user/account", principalField);
    //    d.addRule("!*/groupOwner/group", principalField);
    //  d.addRule("!*/groupOwner/group/account", principalField);

    //    d.addRule("!*/creator", new CreatorRule(globals));
    //  d.addRule("!*/creator/user", principalField);
    //d.addRule("!*/creator/user/account", principalField);
    //    d.addRule("!*/creator/group", principalField);
    //  d.addRule("!*/creator/group/account", principalField);

    d.addRule("!*/bwstring", strRule);
    d.addRule("!*/bwstring/lang", strFrule);
    d.addRule("!*/bwstring/value", strFrule);

    d.addRule("!*/bwlongstring", lstrRule);
    d.addRule("!*/bwlongstring/lang", lstrFrule);
    d.addRule("!*/bwlongstring/value", lstrFrule);

    d.addRule("!*/date-time", new DateTimeRule(globals));
    d.addRule("!*/date-time/?", new DateTimeFieldRule(globals));

    PropertiesRule pr = new PropertiesRule(globals);
    d.addRule("!*/properties", pr);
    d.addRule("!*/properties/property", pr);
    d.addRule("!*/properties/property/?", new PropertiesFieldRule(globals));

    d.addRule("!*/container/collection/path", new ContainerPathRule(globals));

    /* ---------------- Non-universal rules ------------------------------ */

    DumpPropertiesRule dpr = new DumpPropertiesRule(globals);
    d.addRule("caldata/majorVersion", dpr);
    d.addRule("caldata/minorVersion", dpr);
    d.addRule("caldata/updateVersion", dpr);
    d.addRule("caldata/patchLevel", dpr);
    d.addRule("caldata/dumpDate", dpr);
    d.addRule("caldata/version", dpr);

    d.addRule("caldata/syspars/system", new SysparsRule(globals));
    d.addRule("caldata/syspars/system/*", new SysparsFieldRule(globals));

    UserFieldRule ufr = new UserFieldRule(globals);
    d.addRule("caldata/users", new SectionRule(globals, "users"));
    d.addRule("caldata/users/user", new UserRule(globals));
    d.addRule("caldata/users/user/*", ufr);

    CalendarFieldRule colfr = new CalendarFieldRule(globals);
    d.addRule("caldata/collections", new SectionRule(globals, "calendars"));
    d.addRule("caldata/collections/collection", new CalendarRule(globals));
    d.addRule("caldata/collections/collection/?", colfr);
    d.addRule("caldata/collections/collection/col-lastmod", new CollectionLastmodRule(globals));
    d.addRule("caldata/collections/collection/col-lastmod/?", new LastmodFieldRule(globals));

    d.addRule("*/collection/categories/category", new CategoryUidRule(globals));
    d.addRule("*/collection/categories/category/uid", uidField);

    CalSuiteFieldRule cfr = new CalSuiteFieldRule(globals);
    d.addRule("caldata/cal-suites", new SectionRule(globals, "cal-suites"));
    d.addRule("caldata/cal-suites/cal-suite", new CalSuiteRule(globals));
    d.addRule("caldata/cal-suites/cal-suite/?", cfr);

    d.addRule("caldata/cal-suites/cal-suite/group/adminGroup/account", cfr);

    d.addRule("caldata/cal-suites/cal-suite/rootCalendar/collection/path", cfr);

    d.addRule("caldata/locations", new SectionRule(globals, "locations"));
    d.addRule("caldata/locations/location", new LocationRule(globals));
    d.addRule("caldata/locations/location/?", new LocationFieldRule(globals));

    d.addRule("caldata/contacts", new SectionRule(globals, "contacts"));
    d.addRule("caldata/contacts/contact", new ContactRule(globals));
    d.addRule("caldata/contacts/contact/?", new ContactFieldRule(globals));

    CategoryFieldRule catfr = new CategoryFieldRule(globals);
    d.addRule("caldata/categories", new SectionRule(globals, "categories"));
    d.addRule("caldata/categories/category", new CategoryRule(globals));
    d.addRule("caldata/categories/category/?", catfr);

    AdminGroupFieldRule agfr = new AdminGroupFieldRule(globals);
    d.addRule("caldata/adminGroups", new SectionRule(globals, "adminGroups"));
    d.addRule("caldata/adminGroups/adminGroup", new AdminGroupRule(globals));
    d.addRule("caldata/adminGroups/adminGroup/?", agfr);
    d.addRule("caldata/adminGroups/adminGroup/groupMembers/?", agfr);

    d.addRule("!*/groupMembers/member", new MemberRule(globals));
    d.addRule("!*/groupMembers/member/user", principalField);
    d.addRule("!*/groupMembers/member/user/account", principalField);
    d.addRule("!*/groupMembers/member/adminGroup", principalField);
    d.addRule("!*/groupMembers/member/adminGroup/account", principalField);

    AuthUserFieldRule aufr = new AuthUserFieldRule(globals);
    d.addRule("caldata/authusers", new SectionRule(globals, "authusers"));
    d.addRule("caldata/authusers/authuser", new AuthUserRule(globals));
    d.addRule("caldata/authusers/authuser/?", aufr);
    d.addRule("caldata/authusers/authuser/user/user/account", aufr);

    d.addRule("caldata/authusers/authuser/prefs/?", aufr);

    d.addRule("caldata/authusers/authuser/prefs/categoryPrefs/preferred/?", aufr);
    d.addRule("caldata/authusers/authuser/prefs/calendarPrefs/preferred/?", aufr);
    d.addRule("caldata/authusers/authuser/prefs/contactPrefs/preferred/?", aufr);
    d.addRule("caldata/authusers/authuser/prefs/locationPrefs/preferred/?", aufr);

    d.addRule("caldata/authusers/authuser/prefs/categoryPrefs/preferred/category",
            new CategoryUidRule(globals));
    d.addRule("caldata/authusers/authuser/prefs/categoryPrefs/preferred/category/?", uidField);

    d.addRule("caldata/authusers/authuser/prefs/calendarPrefs/preferred/collection",
            new CollectionPathRule(globals));
    d.addRule("caldata/authusers/authuser/prefs/calendarPrefs/preferred/collection/?", pathField);

    d.addRule("caldata/authusers/authuser/prefs/contactPrefs/preferred/contact", new ContactUidRule(globals));
    d.addRule("caldata/authusers/authuser/prefs/contactPrefs/preferred/contact/?", uidField);

    d.addRule("caldata/authusers/authuser/prefs/locationPrefs/preferred/location",
            new LocationUidRule(globals));
    d.addRule("caldata/authusers/authuser/prefs/locationPrefs/preferred/location/?", uidField);

    UserPrefsFieldRule upfr = new UserPrefsFieldRule(globals);
    d.addRule("caldata/user-preferences", new SectionRule(globals, "user-preferences"));
    d.addRule("caldata/user-preferences/preferences", new UserPrefsRule(globals));
    d.addRule("caldata/user-preferences/preferences/?", upfr);
    d.addRule("caldata/user-preferences/preferences/views/view", upfr);
    d.addRule("caldata/user-preferences/preferences/views/view/?", upfr);
    d.addRule("caldata/user-preferences/preferences/views/view/collectionPaths/?", upfr);

    EventFieldRule efr = new EventFieldRule(globals);
    d.addRule("caldata/events", new SectionRule(globals, "events"));
    d.addRule("caldata/events/event", new EventRule(globals, objectEvent));
    d.addRule("caldata/events/event/overrides/event", new EventRule(globals, objectOverride));
    d.addRule("caldata/event-annotations", new SectionRule(globals, "event annotations"));
    d.addRule("caldata/event-annotations/event", new EventRule(globals, objectEventAnnotation));

    EventStringKeyRule eskr = new EventStringKeyRule(globals);

    /* container/collection is caught by a universal rule above */
    d.addRule("caldata/events/event/overrides/event/target/event/uid", eskr);
    d.addRule("caldata/events/event/overrides/event/target/event/recurrenceId", eskr);
    d.addRule("caldata/events/event/overrides/event/master/event/uid", eskr);
    d.addRule("caldata/events/event/overrides/event/master/event/recurrenceId", eskr);

    d.addRule("caldata/event-annotations/event/target/event/uid", eskr);
    d.addRule("caldata/event-annotations/event/target/event/recurrenceId", eskr);
    d.addRule("caldata/event-annotations/event/master/event/uid", eskr);
    d.addRule("caldata/event-annotations/event/master/event/recurrenceId", eskr);

    d.addRule("*/event/?", efr);
    d.addRule("*/event/rdates/rdate", efr);
    d.addRule("*/event/exdates/exdate", efr);
    d.addRule("*/event/rrules/rrule", efr);
    d.addRule("*/event/exrules/exrule", efr);

    d.addRule("*/event/recipients/?", efr);

    d.addRule("*/event/categories/category", new CategoryUidRule(globals));
    d.addRule("*/event/categories/category/uid", uidField);

    d.addRule("*/event/location/location", new LocationUidRule(globals));
    d.addRule("*/event/location/location/uid", uidField);

    d.addRule("*/event/contacts/contact", new ContactUidRule(globals));
    d.addRule("*/event/contacts/contact/uid", uidField);

    d.addRule("*/event/geo", new GeoRule(globals));
    d.addRule("*/event/geo/?", new GeoFieldRule(globals));

    d.addRule("*/event/relatedTo", new RelatedToRule(globals));
    d.addRule("*/event/relatedTo/?", new RelatedToFieldRule(globals));

    d.addRule("*/event/organizer", new OrganizerRule(globals));
    d.addRule("*/event/organizer/?", new OrganizerFieldRule(globals));

    d.addRule("*/event/override/event/?", efr);

    d.addRule("*/event/attachments/attachment", new AttachmentRule(globals));
    d.addRule("*/event/attachments/attachment/?", new AttachmentFieldRule(globals));

    d.addRule("*/event/attendees/attendee", new AttendeeRule(globals));
    d.addRule("*/event/attendees/attendee/?", new AttendeeFieldRule(globals));

    d.addRule("*/event/comments/comment", strRule);
    d.addRule("*/event/comments/comment/?", strFrule);

    d.addRule("*/event/resources/resource", strRule);
    d.addRule("*/event/resources/resource/?", strFrule);

    d.addRule("*/event/request-statuses/request-status", new EventBwRequestStatusRule(globals));

    d.addRule("*/event/request-statuses/request-status/description", strRule);
    d.addRule("*/event/request-statuses/request-status/description/?", strFrule);

    d.addRule("*/event/request-statuses/request-status/?", new EventBwRequestStatusFieldRule(globals));

    d.addRule("*/event/xproperties/xproperty", new XpropertyRule(globals));
    d.addRule("*/event/xproperties/xproperty/?", new XpropertyFieldRule(globals));

    AlarmFieldRule alfr = new AlarmFieldRule(globals);
    d.addRule("*/event/alarms/alarm", new AlarmRule(globals));
    d.addRule("*/event/alarms/alarm/?", alfr);

    d.addRule("*/event/alarms/alarm/descriptions/description", strRule);
    d.addRule("*/event/alarms/alarm/descriptions/description/?", strFrule);

    d.addRule("*/event/alarms/alarm/summaries/summary", strRule);
    d.addRule("*/event/alarms/alarm/summaries/summary/?", strFrule);

    FilterFieldRule ffr = new FilterFieldRule(globals);
    d.addRule("caldata/filters", new SectionRule(globals, "filters"));
    d.addRule("caldata/filters/filter", new FilterRule(globals));

    d.addRule("*/filter/?", ffr);

    ResourceFieldRule rfr = new ResourceFieldRule(globals);
    d.addRule("caldata/resources", new SectionRule(globals, sectionResources));
    d.addRule("caldata/resources/resource", new ResourceRule(globals));
    d.addRule("*/resource/?", rfr);
    d.addRule("*/resource/content", new ResourceContentRule(globals));
    d.addRule("*/resource/content/?", new ResourceContentFieldRule(globals));

    d.addRule("*/event/summaries/summary", strRule);
    d.addRule("*/event/summaries/summary/?", strFrule);

    d.addRule("*/event/descriptions/description", lstrRule);
    d.addRule("*/event/descriptions/description/?", lstrFrule);

    d.addRule("*/filter/descriptions/description", lstrRule);
    d.addRule("*/filter/descriptions/description/?", lstrFrule);

    d.addRule("*/filter/display-names/display-name", strRule);
    d.addRule("*/filter/display-names/display-name/?", strFrule);

    d.addRule("*/event/alarm", new AlarmRule(globals));
    d.addRule("*/event/alarm/?", alfr);
}

From source file:org.efaps.maven.run.Plugin.java

/**
 *
 * @param _name name of the plugin/*from w w w .  jav a 2s.c o m*/
 * @see #name
 */
private Plugin(final URL _url) throws IOException, SAXException, ParserConfigurationException {
    System.out.println("read plugin " + _url);

    Digester digester = new Digester();
    digester.setValidating(false);
    digester.setRules(new ExtendedBaseRules());

    // plugin name
    PluginRule pluginRule = new PluginRule();
    digester.addRule("plugin", pluginRule);
    digester.addCallParam("plugin/goalPrefix", 0);

    // goal
    digester.addRule("plugin/mojos/mojo", new GoalRule());
    digester.addCallParam("plugin/mojos/mojo/goal", 0);
    digester.addCallParam("plugin/mojos/mojo/implementation", 1);
    digester.addCallParam("plugin/mojos/mojo/description", 2);

    // goal parameter
    digester.addCallMethod("plugin/mojos/mojo/parameters/parameter", "addParameter", 6, new Class[] {
            String.class, String.class, String.class, String.class, Boolean.class, Boolean.class });
    digester.addCallParam("plugin/mojos/mojo/parameters/parameter/name", 0);
    digester.addCallParam("plugin/mojos/mojo/parameters/parameter/alias", 1);
    digester.addCallParam("plugin/mojos/mojo/parameters/parameter/type", 2);
    digester.addCallParam("plugin/mojos/mojo/parameters/parameter/description", 3);
    digester.addCallParam("plugin/mojos/mojo/parameters/parameter/required", 4);
    digester.addCallParam("plugin/mojos/mojo/parameters/parameter/editable", 5);

    // goal configuration (default values)
    DefaultValueRule.init(digester);

    digester.parse(_url.openStream());

    this.name = pluginRule.name;
}

From source file:org.kuali.kfs.module.ar.batch.CustomerInvoiceWriteoffBatchDigesterTest.java

/**
 * @return fully-initialized Digester used to process entry XML files
 *///from   w  ww .  j  a  v a2s . co m
private Digester buildDigester(String schemaLocation, String digestorRulesFileName) {
    Digester digester = new Digester();
    digester.setNamespaceAware(false);
    digester.setValidating(true);
    digester.setErrorHandler(new XmlErrorHandler());
    digester.setSchema(schemaLocation);

    Rules rules = loadRules(digestorRulesFileName);

    digester.setRules(rules);

    return digester;
}

From source file:org.kuali.kfs.sys.batch.XmlBatchInputFileTypeBase.java

/**
 * @return fully-initialized Digester used to process entry XML files
 *///from  www.ja va2  s .co m
protected Digester buildDigester(String schemaLocation, String digestorRulesFileName) {
    Digester digester = new Digester();
    digester.setNamespaceAware(false);
    digester.setValidating(true);
    digester.setErrorHandler(new XmlErrorHandler());
    digester.setSchema(schemaLocation);

    Rules rules = loadRules(digestorRulesFileName);

    digester.setRules(rules);

    return digester;
}

From source file:org.richfaces.component.xml.XmlTreeDataBuilder.java

public static TreeNode build(InputSource inputSource) throws SAXException, IOException {
    Digester digester = new Digester();
    Rule rule = new Rule();
    final List rulesList = new ArrayList(1);
    rulesList.add(rule);//w w  w.java  2s. co m

    RulesBase rulesBase = new RulesBase() {
        protected List lookup(String namespace, String name) {
            return rulesList;
        }
    };
    digester.setRules(rulesBase);
    digester.setNamespaceAware(true);
    digester.parse(inputSource);

    return rule.treeNode;
}

From source file:org.xchain.framework.digester.AnnotationRuleSet.java

public void addRuleInstances(Digester digester) {
    // log what we are attempting to do.

    // set up the namespace in the digester.
    digester.setNamespaceAware(true);/*from w  ww. j  ava 2s  .co m*/

    // add the place holder rule used to pass mappings when there is not an element to pass them on...
    // TODO: add code for the place holder command.

    LifecycleContext lifecycleContext = Lifecycle.getLifecycleContext();

    for (NamespaceContext namespaceContext : lifecycleContext.getNamespaceContextMap().values()) {
        digester.setRuleNamespaceURI(namespaceContext.getNamespaceUri());

        for (Class classObject : namespaceContext.getCatalogList()) {
            // for catalogs that we find, we need to add a create rule, a properties rule, a set next rule, and a registration rule.
            addRulesForCatalog(digester, classObject, lifecycleContext);
        }

        for (Class classObject : namespaceContext.getCommandList()) {
            // for commands that we find, we need to add a create rule, a properties rule, a set next rule, and a registration rule.
            addRulesForCommand(digester, lifecycleContext, systemId, classObject);
        }
    }

    WithDefaultsRulesWrapper defaults = new WithDefaultsRulesWrapper(digester.getRules());
    defaults.addDefault(new UnknownElementRule());
    digester.setRules(defaults);
}

From source file:org.xchain.tools.monitoring.MonitoringMojo.java

private void mergeWarMonitoringInfo(MonitoringInfo monitoringInfo, File file) throws MojoExecutionException {
    JarFile artifactJar = null;/* w  ww. j  a v a2 s  .c o  m*/
    JarEntry monitoringInfoEntry = null;
    InputStream in = null;
    try {
        getLog().info("Getting monitoring info from file " + file.toString());
        artifactJar = new JarFile(file);
        monitoringInfoEntry = artifactJar.getJarEntry("WEB-INF/classes/META-INF/monitoring-info.xml");
        if (monitoringInfoEntry != null) {
            in = artifactJar.getInputStream(monitoringInfoEntry);

            // digest the xml file and get all of the entries.
            Digester digester = new Digester();
            digester.push(monitoringInfo);
            digester.addRuleSet(new MonitoringInfoRuleSet());
            WithDefaultsRulesWrapper wrapper = new WithDefaultsRulesWrapper(digester.getRules());
            wrapper.addDefault(new LoggingRule());
            digester.setRules(wrapper);
            digester.parse(in);
        } else {
            getLog().info("Monitoring info file not found in " + file.toString());
        }
    } catch (SAXException se) {
        throw new MojoExecutionException("Could not parse a monitoring-info.xml file.", se);
    } catch (IOException ioe) {
        throw new MojoExecutionException("Could not open jar file.", ioe);
    } finally {
        if (in != null) {
            try {
                in.close();
            } catch (IOException ioe) {
                getLog().warn("Could not close a jar entry input stream.", ioe);
            }
        }
        try {
            artifactJar.close();
        } catch (IOException ioe) {
            getLog().warn("Could not close a jar.", ioe);
        }
    }
}

From source file:velo.reconcilidation.SyncTargetImporter.java

/**
 @param d The digester object to add the rules for
 *//* w  ww  .  ja  v  a  2s .  c  om*/
public static void addRules(Digester d) {
    d.setValidating(false);
    d.setRules(new ExtendedBaseRules());

    //When we encounter an "account" tag, create an instance of class
    // 'Account' and push it on the digester stack of objects. After
    // doing that, call addAccount on the second-to-top object on the
    // digester stack (a "resource" object), passing the top object on
    // the digester stack (the "Account" object). And also set things
    // up so that for each child xml element encountered between the start
    // of the account tag and the end of the account tag, the text
    // contained in that element is passed to a setXXX method on the
    // Address object where XXX is the name of the xml element found.
    d.addObjectCreate("syncList/resource/accounts/account", Account.class);
    d.addSetProperties("syncList/resource/accounts/account");
    d.addSetNext("syncList/resource/accounts/account", "addAccount");
    //d.addSetNestedProperties("syncList/resource/account");
    d.addCallMethod("syncList/resource/accounts/account/name", "setName", 0);

    d.addObjectCreate("syncList/resource/accounts/account/attributes/attribute", Attribute.class);
    //set the properties automatically, which currently the only interesting part is the 'uniqueName' of the attribute
    d.addSetProperties("syncList/resource/accounts/account/attributes/attribute");
    d.addSetNext("syncList/resource/accounts/account/attributes/attribute", "addTransientAttribute");
    //d.addSetNestedProperties("syncList/resource/account");
    //d.addCallMethod("syncList/resource/accounts/account/attributes/attribute/name", "setUniqueName",0);

    d.addObjectCreate("syncList/resource/accounts/account/attributes/attribute/values/value",
            AttributeValue.class);
    d.addCallMethod("syncList/resource/accounts/account/attributes/attribute/values/value", "setValue", 0);
    //d.addSetProperties("syncList/resource/accounts/account/attributes/attribute/values/value");
    d.addSetNext("syncList/resource/accounts/account/attributes/attribute/values/value", "addValue");

    d.addObjectCreate("syncList/resource/groups/group", ActiveGroup.class);
    d.addSetProperties("syncList/resource/groups/group");
    d.addSetNext("syncList/resource/groups/group", "addGroup");
    //addSetProperties handles all of these :)
    //HUH?d.addCallMethod("syncList/resource/groups/group/displayName", "setDisplayName",0);
    //HUH?d.addCallMethod("syncList/resource/groups/group/uniqueId", "setUniqueId",0);
    //HUH?d.addCallMethod("syncList/resource/groups/group/description", "setDescription",0);

    d.addObjectCreate("syncList/resource/groupsMemberShip/group", ActiveGroup.class);
    d.addSetProperties("syncList/resource/groupsMemberShip/group");
    d.addSetNext("syncList/resource/groupsMemberShip/group", "addGroupForMembership");
    d.addObjectCreate("syncList/resource/groupsMemberShip/group/member", Account.class);
    d.addSetProperties("syncList/resource/groupsMemberShip/group/member", "id", "name");
    d.addSetNext("syncList/resource/groupsMemberShip/group/member", "addMemberForSync");
}