List of usage examples for org.apache.commons.digester3 Digester push
public <T> void push(T object)
From source file:org.apache.commons.digester3.examples.xmlrules.addressbook.Main.java
/** * Main method : entry point for running this example program. * <p>/*ww w .j av a 2s . com*/ * Usage: java Example example.xml */ public static void main(String[] args) throws Exception { if (args.length != 2) { usage(); System.exit(-1); } final String rulesfileName = args[0]; String datafileName = args[1]; // Create a Digester instance which has been initialised with // rules loaded from the specified file. Digester d = newLoader(new FromXmlRulesModule() { @Override protected void loadRules() { loadXMLRules(rulesfileName); } }).newDigester(); // Prime the digester stack with an object for rules to // operate on. Note that it is quite common for "this" // to be the object pushed. AddressBook book = new AddressBook(); d.push(book); // Process the input file. try { File srcfile = new java.io.File(datafileName); d.parse(srcfile); } catch (IOException ioe) { System.out.println("Error reading input file:" + ioe.getMessage()); System.exit(-1); } catch (SAXException se) { System.out.println("Error parsing input file:" + se.getMessage()); System.exit(-1); } // Print out all the contents of the address book, as loaded from // the input file. book.print(); }
From source file:org.esupportail.monitor.web.tools.Config.java
/** * Lit le fichier de configuration/* ww w. ja v a 2 s .c om*/ */ private void parseConfigFile() { Digester dig = new Digester(); dig.push(this); dig.addCallMethod("config/server", "addServer", 2); dig.addCallParam("config/server", 0, "name"); dig.addCallParam("config/server", 1, "url"); URL resourceURL = Config.class.getResource(configFile); if (resourceURL != null) { try { // On parse le fichier dont le chemin est pass en paramtre dig.parse(new InputSource(resourceURL.toExternalForm())); } catch (IOException e) { logger.error("Config::parseConfig() : Impossible d'ouvrir le fichier de config \n" + e); } catch (SAXException e) { logger.error("Config::parseConfig() : SAXException :\n" + e); } catch (Exception e) { logger.error("Config::parseConfig() : Exception :\n" + e); } } else { logger.error("Config::parseConfig() : Le fichier de configuration est introuvable"); } }
From source file:org.esupportail.monitor.web.tools.InfosCollector.java
/** * Rcupre les informations d'un serveur distant * @param s L'objet remplit/*from ww w . j a v a 2 s. c o m*/ * @return status vrai si tout se passe bien, faux sinon */ public static boolean fetch(ServerInfo s, boolean users) { Digester dig = new Digester(); dig.push(s); dig.addObjectCreate("runtimeinfo/memory", MemoryInfo.class); dig.addSetProperties("runtimeinfo/memory"); dig.addSetNext("runtimeinfo/memory", "setMemory"); dig.addObjectCreate("runtimeinfo/sessions", SessionInfo.class); dig.addSetProperties("runtimeinfo/sessions"); dig.addSetNext("runtimeinfo/sessions", "setSession"); dig.addCallMethod("runtimeinfo/users/user", "addUser", 1); dig.addCallParam("runtimeinfo/users/user", 0, "uid"); URL ressourceUrl = null; try { if (users) { ressourceUrl = new URL(s.getUrl() + "?xml=full"); } else { ressourceUrl = new URL(s.getUrl() + "?xml"); } } catch (MalformedURLException e) { // logger.error(e); System.out.print(e + "\n"); return false; } if (ressourceUrl != null) { try { // On parse le fichier dont le chemin est pass en paramtre dig.parse(new InputSource(ressourceUrl.toExternalForm())); } catch (IOException e) { //logger.error("InfosCollector::fetch() : Impossible d'ouvrir l'URL \n" + e); System.out.print("InfosCollector::fetch() : Impossible d'ouvrir l'URL \n" + e); return false; } catch (SAXException e) { //logger.error("InfosCollector::fetch() : SAXException :\n" + e); System.out.print("InfosCollector::fetch() : SAXException :\n" + e); return false; } catch (Exception e) { //logger.error("InfosCollector::fetch() : Exception :\n" + e); System.out.print("InfosCollector::fetch() : Exception :\n" + e); return false; } } else { //logger.error("InfosCollector::fetch() : L'URL est introuvable"); System.out.print("InfosCollector::fetch() : L'URL est introuvable"); return false; } return true; }
From source file:org.gbif.metadata.eml.EmlFactory.java
/** * Uses rule based parsing to read the EML XML and build the EML model. * Note the following: - Metadata provider rules are omitted on the assumption that the provider is the same as the * creator - Contact rules are omitted on the assumption that contacts are covered by the creator and associated * parties - Publisher rules are omitted on the assumption the publisher is covered by the creator and associated * parties/*from w ww . jav a 2 s .c om*/ * * @param xml To read. Note this will be closed before returning * * @return The EML populated * * @throws IOException If the Stream cannot be read from * @throws SAXException If the XML is not well formed */ public static Eml build(InputStream xml) throws IOException, SAXException, ParserConfigurationException { Digester digester = new Digester(); digester.setNamespaceAware(true); // push the EML object onto the stack Eml eml = new Eml(); digester.push(eml); // add the rules // language as xml:lang attribute digester.addCallMethod("eml", "setMetadataLanguage", 1); digester.addCallParam("eml", 0, "xml:lang"); // guid as packageId attribute digester.addCallMethod("eml", "setPackageId", 1); digester.addCallParam("eml", 0, "packageId"); // alternative ids digester.addCallMethod("eml/dataset/alternateIdentifier", "addAlternateIdentifier", 1); digester.addCallParam("eml/dataset/alternateIdentifier", 0); // title together with language digester.addCallMethod("eml/dataset/title", "setTitle", 2); digester.addCallParam("eml/dataset/title", 0); digester.addCallParam("eml/dataset/title", 1, "xml:lang"); digester.addBeanPropertySetter("eml/dataset/language", "language"); // descriptions, broken into multiple paragraphs digester.addCallMethod("eml/dataset/abstract/para", "addDescriptionPara", 1); digester.addCallParam("eml/dataset/abstract/para", 0); digester.addBeanPropertySetter("eml/dataset/additionalInfo/para", "additionalInfo"); digester.addRule("eml/dataset/intellectualRights/para", new NodeCreateRule(Node.ELEMENT_NODE)); digester.addSetNext("eml/dataset/intellectualRights/para", "parseIntellectualRights"); digester.addCallMethod("eml/dataset/methods/methodStep/description/para", "addMethodStep", 1); digester.addCallParam("eml/dataset/methods/methodStep/description/para", 0); digester.addBeanPropertySetter("eml/dataset/methods/sampling/studyExtent/description/para", "studyExtent"); digester.addBeanPropertySetter("eml/dataset/methods/sampling/samplingDescription/para", "sampleDescription"); digester.addBeanPropertySetter("eml/dataset/methods/qualityControl/description/para", "qualityControl"); digester.addBeanPropertySetter("eml/dataset/distribution/online/url", "distributionUrl"); digester.addBeanPropertySetter("eml/dataset/purpose/para", "purpose"); digester.addBeanPropertySetter("eml/dataset/maintenance/description/para", "updateFrequencyDescription"); digester.addCallMethod("eml/dataset/maintenance/maintenanceUpdateFrequency", "setUpdateFrequency", 1); digester.addCallParam("eml/dataset/maintenance/maintenanceUpdateFrequency", 0); digester.addCallMethod("eml/additionalMetadata/metadata/gbif/citation", "setCitation", 2); digester.addCallParam("eml/additionalMetadata/metadata/gbif/citation", 0); digester.addCallParam("eml/additionalMetadata/metadata/gbif/citation", 1, "identifier"); digester.addCallMethod("eml/additionalMetadata/metadata/gbif/specimenPreservationMethod", "addSpecimenPreservationMethod", 1); digester.addCallParam("eml/additionalMetadata/metadata/gbif/specimenPreservationMethod", 0); digester.addBeanPropertySetter("eml/additionalMetadata/metadata/gbif/resourceLogoUrl", "logoUrl"); digester.addBeanPropertySetter("eml/additionalMetadata/metadata/gbif/hierarchyLevel", "hierarchyLevel"); digester.addCallMethod("eml/dataset/pubDate", "setPubDateAsString", 1); digester.addCallParam("eml/dataset/pubDate", 0); digester.addCallMethod("eml/additionalMetadata/metadata/gbif/dateStamp", "setDateStamp", 1); digester.addCallParam("eml/additionalMetadata/metadata/gbif/dateStamp", 0); addAgentRules(digester, "eml/dataset/creator", "addCreator"); addAgentRules(digester, "eml/dataset/metadataProvider", "addMetadataProvider"); addAgentRules(digester, "eml/dataset/contact", "addContact"); addAgentRules(digester, "eml/dataset/associatedParty", "addAssociatedParty"); addKeywordRules(digester); addBibliographicCitations(digester); addGeographicCoverageRules(digester); addTemporalCoverageRules(digester); addLivingTimePeriodRules(digester); addFormationPeriodRules(digester); addTaxonomicCoverageRules(digester); addProjectRules(digester); addCollectionRules(digester); addPhysicalDataRules(digester); addJGTICuratorialIUnit(digester); // now parse and return the EML try { digester.parse(xml); } finally { xml.close(); } return eml; }
From source file:spring.travel.site.services.news.NewsDigester.java
public List<NewsItem> from(InputStream is) throws IOException { try {//from w ww. j av a 2 s. com Digester digester = new Digester(); digester.setValidating(false); digester.push(new ArrayList<NewsItemDigestible>()); digester.addObjectCreate("rss/channel/item", NewsItemDigestible.class.getName()); digester.addSetNext("rss/channel/item", "add"); digester.addBeanPropertySetter("rss/channel/item/title", "headline"); digester.addBeanPropertySetter("rss/channel/item/description", "standFirst"); digester.addBeanPropertySetter("rss/channel/item/guid", "link"); digester.addObjectCreate("rss/channel/item/media:content", Image.class.getName()); digester.addSetProperties("rss/channel/item/media:content"); digester.addSetNext("rss/channel/item/media:content", "setImage"); List<NewsItemDigestible> items = digester.parse(is); return items.stream().map(n -> n.toNewsItem()).collect(Collectors.toList()); } catch (SAXException se) { throw new IOException("Failed reading rss feed", se); } }
From source file:uk.co.sdev.undertow.rx.services.news.PushDigester.java
public void digest(InputStream is, Subscriber<? super NewsItem> subscriber) { try {/*from w w w. java 2s. c o m*/ Digester digester = new Digester(); digester.setValidating(false); digester.push((Consumer<NewsItemDigestible>) newsItemDigestible -> { if (newsItemDigestible.hasImage()) { subscriber.onNext(newsItemDigestible.toNewsItem()); } }); digester.addObjectCreate("rss/channel/item", NewsItemDigestible.class.getName()); digester.addBeanPropertySetter("rss/channel/item/title", "headline"); digester.addBeanPropertySetter("rss/channel/item/description", "description"); digester.addBeanPropertySetter("rss/channel/item/guid", "link"); configureImageRules(digester); digester.addSetNext("rss/channel/item", "accept"); digester.parse(is); subscriber.onCompleted(); } catch (Exception e) { subscriber.onError(e); } }