List of usage examples for org.apache.commons.digester ExtendedBaseRules ExtendedBaseRules
ExtendedBaseRules
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(); } }