Example usage for org.apache.commons.digester ExtendedBaseRules ExtendedBaseRules

List of usage examples for org.apache.commons.digester ExtendedBaseRules ExtendedBaseRules

Introduction

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

Prototype

ExtendedBaseRules

Source Link

Usage

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

/**
 * Parsing builder configuration file/*from w  ww  .  j ava2s  .  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.apache.ojb.broker.ant.DdlUtilsDataHandling.java

/**
 * Creates a new data handling object.//from   w ww.j  a  va2  s.c om
 */
public DdlUtilsDataHandling() {
    _digester = new Digester();
    _digester.setEntityResolver(new EntityResolver() {
        public InputSource resolveEntity(String publicId, String systemId) {
            // we don't care about the DTD for data files
            return new InputSource(new StringReader(""));
        }

    });
    _digester.setNamespaceAware(true);
    _digester.setValidating(false);
    _digester.setUseContextClassLoader(true);
    _digester.setRules(new ExtendedBaseRules());
    _digester.addRuleSet(new DataRuleSet());
}

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//  ww  w  .ja  v  a2 s .co  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:velo.reconcilidation.SyncTargetImporter.java

/**
 @param d The digester object to add the rules for
 *///from w  ww .  jav a2  s.com
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");
}

From source file:velo.resource.resourceDescriptor.ResourceDescriptorReader.java

/**
 * Basic initialization of the reader/* w  w  w. ja va  2  s. c  o  m*/
 * Mainly declare all Digester rules and execute them (parse the conf files) 
 */
public void basicInitialization() {
    try {
        // Prime the digester stack with an object for rules to operate on
        // getDigester().push(getResourceDescriptor());
        getDigester().push(getResourceDescriptor());

        log.debug("Initializing basic XML mapping properties...");
        getDigester().setValidating(false);
        getDigester().setRules(new ExtendedBaseRules());

        // We pushed already a TSDescriptor object, this will override the
        // object Digester works on!
        // d.addObjectCreate( "target-system-descriptor",
        // resourceDescriptor.class );

        getDigester().addObjectCreate("resource-descriptor/attributes", ResourceDescriptorAttributes.class);
        getDigester().addBeanPropertySetter("resource-descriptor/attributes/resourceName", "resourceName");
        getDigester().addBeanPropertySetter("resource-descriptor/attributes/resourceType", "resourceType");
        getDigester().addBeanPropertySetter("resource-descriptor/attributes/resourceDescription",
                "resourceDescription");
        getDigester().addSetNext("resource-descriptor/attributes", "setResourceDescriptorAttributes");

        getDigester().addObjectCreate("resource-descriptor/adapter", ResourceDescriptorAdapter.class);
        //Will be set all fields automatically by the corresponding setters/getters
        //getDigester().addSetProperties("target-system-descriptor/adapter");
        //15-02-07 -> changed tag from 'class' to 'className' in XML file so it can automatically set by 'setProperties'
        getDigester().addBeanPropertySetter("resource-descriptor/adapter/*");
        getDigester().addSetNext("resource-descriptor/adapter", "setResourceDescriptorAdapter");

        getDigester().addObjectCreate("resource-descriptor/specific", java.util.HashMap.class);
        getDigester().addRule("resource-descriptor/specific/?", new SpecificAttributesRule(digester));
        getDigester().addSetNext("resource-descriptor/specific", "setSpecificAttributes");

        /**
         * By default, Digester will look for classes using the same
         * Classloader that loaded the Digester class. This means that if
         * the commons-digester.jar file is in some container-level dir
         * (rather than in WEB-INF/lib or similar) then it can't see that
         * class. Option 1: put commons-digester.jar in the WEB-INF/lib (or
         * equivalent) of your project. This is the cleanest solution, but
         * it does require that "child-first" classloading is selected.
         * Option 2: Tell digester to use the context classloader: Digester
         * d = new Digester(); d.setUseContextClassLoader(true); Option 3:
         * Set the classloader explicitly: Digester d = new Digester();
         * d.setClassLoader(Thread.currentThread.getContextClassLoader()) //
         * this is equivalent to the above, assuming that the current //
         * class is from the webapp/ejb //
         * d.setClassLoader(this.getClass().getClassLoader());
         */
        // getDigester().setClassLoader(this.getClass().getClassLoader());
        getDigester().setUseContextClassLoader(true);
    } catch (Exception exc) {
        exc.printStackTrace();
    }
}

From source file:velo.resource.resourceTypeDescriptor.ResourceTypeDescriptorReader.java

/**
 * Basic initialization of the reader/*from www  . ja  v a2s.  com*/
 * Mainly declare all Digester rules and execute them (parse the conf files) 
 */
public void basicInitialization() {
    try {
        // Prime the digester stack with an object for rules to operate on
        // getDigester().push(getResourceDescriptor());
        getDigester().push(getResourceTypeDescriptor());

        logger.fine("Initializing basic XML mapping properties...");
        getDigester().setValidating(false);

        getDigester().setRules(new ExtendedBaseRules());

        // We pushed already a TSDescriptor object, this will override the
        // object Digester works on!
        // d.addObjectCreate( "target-system-descriptor",
        // resourceDescriptor.class );

        getDigester().addObjectCreate("target-system-type-descriptor/actions-classes", java.util.HashMap.class);
        getDigester().addRule("target-system-type-descriptor/actions-classes/?", new ActionsRule(digester));
        getDigester().addSetNext("target-system-type-descriptor/actions-classes", "setActionsClasses");

        /**
         * By default, Digester will look for classes using the same
         * Classloader that loaded the Digester class. This means that if
         * the commons-digester.jar file is in some container-level dir
         * (rather than in WEB-INF/lib or similar) then it can't see that
         * class. Option 1: put commons-digester.jar in the WEB-INF/lib (or
         * equivalent) of your project. This is the cleanest solution, but
         * it does require that "child-first" classloading is selected.
         * Option 2: Tell digester to use the context classloader: Digester
         * d = new Digester(); d.setUseContextClassLoader(true); Option 3:
         * Set the classloader explicitly: Digester d = new Digester();
         * d.setClassLoader(Thread.currentThread.getContextClassLoader()) //
         * this is equivalent to the above, assuming that the current //
         * class is from the webapp/ejb //
         * d.setClassLoader(this.getClass().getClassLoader());
         */
        // getDigester().setClassLoader(this.getClass().getClassLoader());
        getDigester().setUseContextClassLoader(true);
    } catch (Exception exc) {
        exc.printStackTrace();
    }
}