List of usage examples for org.apache.commons.digester Digester setEntityResolver
public void setEntityResolver(EntityResolver entityResolver)
EntityResolver used by SAX when resolving public id and system id. From source file:com.liusoft.sc.startup.DigesterFactory.java
/** * Create a <code>Digester</code> parser. * @param xmlValidation turn on/off xml validation * @param xmlNamespaceAware turn on/off namespace validation * @param rule an instance of <code>RuleSet</code> used for parsing the xml. *///from w w w . ja v a 2 s.c om public static Digester newDigester(boolean xmlValidation, boolean xmlNamespaceAware, RuleSet rule) { Digester digester = new Digester(); digester.setNamespaceAware(xmlNamespaceAware); digester.setValidating(xmlValidation); digester.setUseContextClassLoader(true); if (xmlValidation || xmlNamespaceAware) { configureSchema(digester); } schemaResolver = new SchemaResolver(digester); registerLocalSchema(); digester.setEntityResolver(schemaResolver); if (rule != null) { digester.addRuleSet(rule); } return (digester); }
From source file:cucumber.templates.xml.DataAccessContextLocalTestHelper.java
/** * Creates and configures a new Digester instance. * @return such instance.// w ww . j ava2s.c o m */ @NotNull public Digester buildDataAccessContextLocalDigester() { @NotNull final Digester result = new Digester(); // To avoid fetching external DTDs result.setEntityResolver(new EntityResolver() { @Override public InputSource resolveEntity(final String publicId, final String systemId) throws SAXException, IOException { return new InputSource(new ByteArrayInputStream("".getBytes())); } }); // <beans> // <bean> result.addFactoryCreate("beans/bean", new BeanElementFactory()); // <property> result.addFactoryCreate("beans/bean/property", new PropertyElementFactory()); // <value> result.addRule("beans/bean/property/value", new UntrimmedCallMethodRule("setValue", 0)); // </value> // <ref> result.addFactoryCreate("beans/bean/property/ref", new RefElementFactory()); // </ref> result.addSetNext("beans/bean/property", "add"); // </property> result.addSetNext("beans/bean", "add"); // </beans> return result; }
From source file:de.micromata.genome.gwiki.page.gspt.taglibs.TagLibraryInfoImpl.java
protected void loadTagLibary(String uri) { Digester dig = new Digester(); dig.setClassLoader(Thread.currentThread().getContextClassLoader()); dig.setValidating(false);/* w w w.jav a 2s. co m*/ final EntityResolver parentResolver = dig.getEntityResolver(); dig.setEntityResolver(new EntityResolver() { public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { InputStream is = null; if (StringUtils.equals(systemId, "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd") == true || StringUtils.equals(publicId, "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN") == true) { is = loadLocalDtd("web-jsptaglibrary_1_1.dtd"); } else if (StringUtils.equals(systemId, "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd") == true || StringUtils.equals(publicId, "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN") == true) { is = loadLocalDtd("web-jsptaglibrary_1_2.dtd"); } if (is == null) { if (parentResolver == null) { GWikiLog.error("Cannot resolve entity: " + systemId); return null; } return parentResolver.resolveEntity(publicId, systemId); } InputSource source = new InputSource(is); source.setPublicId(publicId); source.setSystemId(systemId); return source; } }); dig.addCallMethod("taglib/tlib-version", "setTlibversion", 0); dig.addCallMethod("taglib/tlibversion", "setTlibversion", 0); dig.addCallMethod("taglib/jsp-version", "setJspversion", 0); dig.addCallMethod("taglib/jspversion", "setJspversion", 0); dig.addCallMethod("taglib/short-name", "setShortname", 0); dig.addCallMethod("taglib/shortname", "setShortname", 0); dig.addObjectCreate("taglib/tag", TagTmpInfo.class); dig.addCallMethod("taglib/tag/name", "setTagName", 0); dig.addCallMethod("taglib/tag/description", "setInfoString", 0); dig.addCallMethod("taglib/tag/tag-class", "setTagClassName", 0); dig.addCallMethod("taglib/tag/tagclass", "setTagClassName", 0); dig.addCallMethod("taglib/tag/body-content", "setBodycontent", 0); dig.addCallMethod("taglib/tag/bodycontent", "setBodycontent", 0); dig.addObjectCreate("taglib/tag/attribute", TagTmpAttributeInfo.class); dig.addCallMethod("taglib/tag/attribute/name", "setName", 0); dig.addCallMethod("taglib/tag/attribute/required", "setRequired", 0); dig.addCallMethod("taglib/tag/attribute/rtexprvalue", "setRtexprvalue", 0); dig.addSetNext("taglib/tag/attribute", "addAttributeInfo"); dig.addSetNext("taglib/tag", "addTag"); dig.push(this); try { InputStream is = loadImpl(uri); if (is == null) { throw new RuntimeException("could not load tld '" + uri + "'"); } /* * ByteArrayOutputStream baos = new ByteArrayOutputStream(); IOUtils.copy(is, baos); String text = * Converter.stringFromBytes(baos.toByteArray()); dig.parse(new StringReader(text)); */ dig.parse(is); rework(); } catch (Exception ex) { throw new RuntimeException(ex); } }
From source file:com.npower.dm.hibernate.management.DDFTreeManagementBeanImpl.java
/** * Create digester for DDF XML. This digester rule is based on OMA DDF Spec * 1.1 Before call this method, push a DDFTreeEntity object into digester * stack.// w ww.j av a 2 s .co m * * @return Digester */ private Digester createDDFTreeDigester() { // Initialize the digester Digester digester = new Digester(); digester.setEntityResolver(new LocalEntityResolver()); digester.setValidating(false); // Parsing DDF // digester.addObjectCreate("MgmtTree", // "com.npower.dm.hibernate.DDFTreeEntity"); digester.addBeanPropertySetter("MgmtTree/Man", "manufacturer"); digester.addBeanPropertySetter("MgmtTree/Mod", "model"); digester.addBeanPropertySetter("MgmtTree/VerDTD", "specVersion"); digester.addObjectCreate("*/Node", "com.npower.dm.hibernate.entity.DDFNodeEntity"); digester.addBeanPropertySetter("*/Node/NodeName", "name"); digester.addBeanPropertySetter("*/Node/Path", "path"); digester.addBeanPropertySetter("*/Node/DFProperties/Description", "description"); digester.addBeanPropertySetter("*/Node/DFProperties/DFTitle", "title"); digester.addBeanPropertySetter("*/Node/DFProperties/DefaultValue", "defaultValue"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/b64", "formatB64"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/bin", "formatBin"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/bool", "formatBool"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/chr", "formatChr"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/int", "formatInt"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/node", "formatNode"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/xml", "formatXml"); digester.addBeanPropertySetter("*/Node/DFProperties/DFFormat/null", "formatNull"); digester.addBeanPropertySetter("*/Node/DFProperties/Occurrence/One", "occurrenceOne"); digester.addBeanPropertySetter("*/Node/DFProperties/Occurrence/ZeroOrOne", "occurrenceZeroOrOne"); digester.addBeanPropertySetter("*/Node/DFProperties/Occurrence/ZeroOrMore", "occurrenceZeroOrMore"); digester.addBeanPropertySetter("*/Node/DFProperties/Occurrence/OneOrMore", "occurrenceOneOrMore"); digester.addBeanPropertySetter("*/Node/DFProperties/Occurrence/ZeroOrN", "occurrenceZeroOrN"); digester.addBeanPropertySetter("*/Node/DFProperties/Occurrence/OneOrN", "occurrenceOneOrN"); digester.addBeanPropertySetter("*/Node/DFProperties/Scope/Permanent", "scopePermanent"); digester.addBeanPropertySetter("*/Node/DFProperties/Scope/Dynamic", "scopeDynamic"); digester.addBeanPropertySetter("*/Node/DFProperties/AccessType/Add", "accessTypeAdd"); digester.addBeanPropertySetter("*/Node/DFProperties/AccessType/Copy", "accessTypeCopy"); digester.addBeanPropertySetter("*/Node/DFProperties/AccessType/Delete", "accessTypeDelete"); digester.addBeanPropertySetter("*/Node/DFProperties/AccessType/Exec", "accessTypeExec"); digester.addBeanPropertySetter("*/Node/DFProperties/AccessType/Get", "accessTypeGet"); digester.addBeanPropertySetter("*/Node/DFProperties/AccessType/Replace", "accessTypeReplace"); // digester.addBeanPropertySetter("*/Node/DFProperties/DFType/DDFName", // "ddfName"); digester.addBeanPropertySetter("*/Node/DFProperties/DFType/MIME", "mimeTypeString"); digester.addSetNext("*/Node", "add", "com.npower.dm.hibernate.entity.DDFNodeEntity"); // digester.addSetNext("MgmtTree", "add", "DDFTreeEntity"); return (digester); }
From source file:com.sun.faces.config.DigesterFactory.java
/** * <p>Configures the provided <code>Digester</code> instance appropriate * for use with JSF.</p>/*from www . jav a 2 s. co m*/ * @param digester - the <code>Digester</code> instance to configure */ private void configureDigester(Digester digester) { digester.setNamespaceAware(true); digester.setUseContextClassLoader(true); digester.setEntityResolver(RESOLVER); digester.setErrorHandler(ERROR_HANDLER); // disable digester log messages digester.setLogger(new NoOpLog()); if (validating) { if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "Attempting to configure Digester to perform" + " document validation."); } // In order to validate using *both* DTD and Schema, certain // Xerces specific features are required. Try to set these // features. If an exception is thrown trying to set these // features, then disable validation. try { digester.setFeature(XERCES_VALIDATION, true); digester.setFeature(XERCES_SCHEMA_VALIDATION, true); digester.setFeature(XERCES_SCHEMA_CONSTRAINT_VALIDATION, true); digester.setValidating(true); } catch (SAXNotSupportedException e) { if (logger.isLoggable(Level.WARNING)) { logger.log(Level.WARNING, "Attempt to set supported feature on XMLReader, " + "but the value provided was not accepted. " + "Validation will be disabledb."); } digester.setValidating(false); } catch (SAXNotRecognizedException e) { if (logger.isLoggable(Level.WARNING)) { logger.log(Level.WARNING, "Attempt to set unsupported feature on XMLReader" + " necessary for validation. Validation will be" + "disabled."); } digester.setValidating(false); } catch (ParserConfigurationException e) { if (logger.isLoggable(Level.WARNING)) { logger.log(Level.WARNING, "Digester unable to configure underlying parser." + " Validation will be disabled."); } digester.setValidating(false); } } else { digester.setValidating(false); } }
From source file:it.jnrpe.server.config.CJNRPEConfiguration.java
private CJNRPEConfiguration(File fileName) { if (!fileName.exists() || !fileName.canRead()) { // TODO: throw an exception m_Logger.fatal("UNABLE TO READ CONFIGURATION FILE " + fileName.getAbsolutePath()); System.exit(-1);/* w w w . j a v a 2s. com*/ } try { Digester digester = DigesterLoader.createDigester( new InputSource(System.class.getResourceAsStream("/it/jnrpe/server/config/digester.xml"))); // turn on XML schema validation digester.setFeature("http://xml.org/sax/features/validation", true); digester.setFeature("http://apache.org/xml/features/validation/schema", true); digester.setFeature("http://xml.org/sax/features/namespaces", true); digester.setEntityResolver(new CConfigValidationEntityResolver()); digester.setErrorHandler(new CConfigErrorHandler()); m_Configuration = (CConfiguration) digester.parse(fileName); } catch (Exception e) { // TODO: throw an exception m_Logger.fatal("UNABLE TO PARSE CONFIGURATION : " + e.getMessage()); System.exit(-1); } }
From source file:com.ocpsoft.pretty.faces.el.resolver.FacesConfigBeanNameResolver.java
/** * Process a single <code>faces-config.xml</code> file and add all beans * found to the supplied list of {@link FacesConfigEntry} objects. * // w w w . ja va 2s. c o m * @param url * The faces-config.xml file * @param facesConfigEntries * list of entries to add the beans to */ private void processFacesConfig(URL url, List<FacesConfigEntry> facesConfigEntries) { // log name of current file if (log.isTraceEnabled()) { log.trace("Loading bean names from: " + url.toString()); } // setup digester Digester digester = new Digester(); /* * We use the context class loader to resolve classes. * This fixes ClassNotFoundExceptions on Geronimo. */ digester.setUseContextClassLoader(true); // prevent downloading of DTDs digester.setEntityResolver(new EmptyEntityResolver()); digester.setValidating(false); digester.push(facesConfigEntries); digester.addObjectCreate("faces-config/managed-bean", FacesConfigEntry.class); digester.addCallMethod("faces-config/managed-bean/managed-bean-name", "setName", 0); digester.addCallMethod("faces-config/managed-bean/managed-bean-class", "setBeanClass", 0); digester.addSetNext("faces-config/managed-bean", "add"); // stream used to read faces-config.xml file InputStream stream = null; try { // open the file and let digester pares it stream = url.openStream(); digester.parse(stream); } catch (IOException e) { // may be thrown when reading the file log.error("Failed to parse: " + url.toString(), e); } catch (SAXException e) { // parsing errors log.error("Failed to parse: " + url.toString(), e); } finally { // close stream if (stream != null) { try { stream.close(); } catch (IOException e) { // ignore IOExceptions on close } } } }
From source file:com.icesoft.faces.webapp.parser.TagToComponentMap.java
/** * Same as addTags but this one has more info such as attributes/descriptions * * @param tldInput The TLD to process/*ww w . j av a 2s .c o m*/ * @throws IOException If digester barfs. */ public void addTagAttrib(InputStream tldInput) throws IOException { Digester digester = new Digester(); digester.setNamespaceAware(true); digester.setValidating(false); digester.setEntityResolver(ParserUtils.entityResolver); digester.setUseContextClassLoader(false); /* Need to set the class loader to work. Not sure why. May need to change when we move behind servlet container or Tomcat */ digester.setClassLoader(loader); // This rule creates an element we can use to populate the map; digester.addObjectCreate("taglib/tag", "com.icesoft.faces.webapp.parser.TagToTagClassElement"); digester.addObjectCreate("taglib/uri", "java.lang.StringBuffer"); // This rule pushes everything into the hash table; NameRule nRule = new NameRule(tagToComponentMap, faceletsTaglibXmlWriter); digester.addRule("taglib/tag", nRule); digester.addRule("taglib/uri", nRule); // These rules scoop the values from <name> and <tag-class> elements; digester.addCallMethod("taglib/tag/name", "setTagName", 0); digester.addCallMethod("taglib/tag/tag-class", "setTagClass", 0); digester.addCallMethod("taglib/tag/description", "setDescription", 0); digester.addCallMethod("taglib/uri", "append", 0); digester.addObjectCreate("taglib/tag/attribute", "com.icesoft.faces.webapp.parser.AttributeElement"); digester.addCallMethod("taglib/tag/attribute/name", "setName", 0); digester.addCallMethod("taglib/tag/attribute/required", "setRequired", 0); digester.addCallMethod("taglib/tag/attribute/description", "setDescription", 0); digester.addSetNext("taglib/tag/attribute", "addAttribute"); try { digester.parse(tldInput); } catch (Throwable e) { IOException ioe = new IOException("Can't parse tld " + tldInput.toString()); ioe.initCause(e); throw ioe; } finally { tldInput.close(); } }
From source file:net.java.dev.weblets.impl.WebletContainerImpl.java
/** * registers the configuration file/* ww w . j a va 2s. c om*/ * in its internal data structure * * @param webletsConfig the weblets config to be registered */ public void registerConfig(URL webletsConfig) { try { InputStream in = webletsConfig.openStream(); try { Digester digester = new Digester(); digester.setClassLoader(getLoader()); digester.setValidating(false); digester.setClassLoader(getLoader()); digester.setEntityResolver(DisconnectedEntityResolver.sharedInstance()); digester.push(this); digester.addFactoryCreate(Const.WEBLETS_CONFIG + Const.PAR_WEBLET, WEBLET_CONFIG_FACTORY); digester.addSetNext(Const.WEBLETS_CONFIG + Const.PAR_WEBLET, "addWeblet", WebletConfigImpl.class.getName()); digester.addCallMethod(Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_WEBLET_NAME, "setWebletName", Const.FIRST_PARAM); digester.addCallMethod(Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_WEBLET_CLASS, "setWebletClass", Const.FIRST_PARAM); digester.addCallMethod(Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_WEBLET_VERSION, "setWebletVersion", Const.FIRST_PARAM); digester.addCallMethod(Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_INIT_PARAM, "addInitParam", Const.TWO_PARAMS); digester.addCallParam( Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_INIT_PARAM + Const.PAR_PARAM_NAME, Const.FIRST_PARAM); digester.addCallParam( Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_INIT_PARAM + Const.PAR_PARAM_VALUE, Const.SECOND_PARAM); digester.addCallMethod(Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_MIME_MAPPING, "addMimeMapping", Const.TWO_PARAMS); digester.addCallParam( Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_MIME_MAPPING + Const.PAR_EXTENSION, Const.FIRST_PARAM); digester.addCallParam( Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_MIME_MAPPING + Const.PAR_MIME_TYPE, Const.SECOND_PARAM); digester.addCallMethod(Const.WEBLETS_CONFIG + Const.PAR_WEBLET_MAPPING, "setWebletMapping", Const.TWO_PARAMS); digester.addCallParam(Const.WEBLETS_CONFIG + Const.PAR_WEBLET_MAPPING + Const.PAR_WEBLET_NAME, Const.FIRST_PARAM); digester.addCallParam(Const.WEBLETS_CONFIG + Const.PAR_WEBLET_MAPPING + Const.PAR_URL_PATTERN, Const.SECOND_PARAM); digester.addCallMethod(Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_SUBBUNDLE, Const.FUNC_ADD_SUBBUNDLE, Const.TWO_PARAMS); digester.addCallParam(Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_SUBBUNDLE + Const.PAR_ID, Const.FIRST_PARAM); digester.addCallParam( Const.WEBLETS_CONFIG + Const.PAR_WEBLET + Const.PAR_SUBBUNDLE + Const.PAR_RESOURCES, Const.SECOND_PARAM); digester.parse(in); } finally { in.close(); } } catch (IOException e) { throw new WebletException(e); } catch (SAXException e) { throw new WebletException(e); } }
From source file:org.ajax4jsf.builder.config.BuilderConfig.java
/** * Parsing builder configuration file/* www . j ava2 s.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; }