Example usage for org.apache.commons.digester.xmlrules DigesterLoader createDigester

List of usage examples for org.apache.commons.digester.xmlrules DigesterLoader createDigester

Introduction

In this page you can find the example usage for org.apache.commons.digester.xmlrules DigesterLoader createDigester.

Prototype

public static Digester createDigester(URL rulesXml) 

Source Link

Document

Creates a new digester and initializes it from the specified XML file

Usage

From source file:com.panet.imeta.core.config.DigesterConfigManager.java

/**
 * Loads the configuration parameters by delegating to commons digester.
 *///from w  ww. ja v a 2 s.co m
public Collection<T> load() throws KettleConfigException {
    ClassLoader loader = Thread.currentThread().getContextClassLoader();

    Digester digester = DigesterLoader.createDigester(loader.getResource(rulesURL));

    final Set<T> configObjs = new LinkedHashSet<T>();

    digester.addRule(setNext, new SetNextRule("") {
        @SuppressWarnings("unchecked")
        public void end(String nameSpace, String name) throws Exception {
            configObjs.add((T) digester.peek());
        }
    });

    try {
        digester.parse(loader.getResource(configURL));
    } catch (Exception e) {
        throw new KettleConfigException(e);
    }

    return configObjs;
}

From source file:com.discursive.jccook.xml.bean.VariableSubExample.java

public void testDigest() throws Exception {

    List emails = new ArrayList();

    Map vars = new HashMap();
    vars.put("email.to", "tobrien@discursive.com");
    vars.put("user.name", "Tim");
    vars.put("order.id", "1RR2E223WVVS");
    vars.put("product.name", "Foundation");

    MultiVariableExpander expander = new MultiVariableExpander();
    expander.addSource("$", vars);

    Substitutor substitutor = new VariableSubstitutor(expander);

    InputStream input = getClass().getResourceAsStream("./email.xml");

    URL rules = getClass().getResource("./email-rules.xml");
    Digester digester = DigesterLoader.createDigester(rules);
    digester.setSubstitutor(substitutor);
    digester.push(emails);/*w  w w. ja v a  2 s.c  o m*/

    digester.parse(input);

    System.out.println("Resulting Email: " + emails.get(0));

}

From source file:com.discursive.jccook.xml.bean.BetwixtExample.java

public void testCustomXmlOutput() throws Exception {

    List plays = new ArrayList();

    InputStream input = getClass().getResourceAsStream("./plays.xml");
    URL rules = getClass().getResource("./play-rules.xml");
    Digester digester = DigesterLoader.createDigester(rules);
    digester.push(plays);/*from  w  w  w .j av  a 2  s  .  c o  m*/
    Object root = digester.parse(input);

    logger.debug("Number of plays: " + plays.size());

    Play play = (Play) plays.get(0);

    BeanWriter beanWriter = new BeanWriter();
    beanWriter.enablePrettyPrint();
    beanWriter.write(play);

    logger.debug(beanWriter.toString());
}

From source file:de.mpg.escidoc.services.syndication.Feeds.java

/**
 * Unmarshalling of the feed definitions XML file on hand of the feeds digester rules   
 * @param rulesFileName is URI of the digester rules file 
 * @param feedsFileName is URI of the feed definitions file 
 * @return feed collection class/*from   ww  w. j  a v  a2s . c  o m*/
 * @throws SyndicationException
 */
public static Feeds readFeedsFromXml(String rulesFileName, String feedsFileName) throws SyndicationException {
    URL rules = Feeds.class.getClassLoader().getResource(rulesFileName);

    Digester digester = DigesterLoader.createDigester(rules);
    digester.setNamespaceAware(false);

    Feeds fs = null;
    try {
        InputStream input = ResourceUtil.getResourceAsStream(feedsFileName, Feeds.class.getClassLoader());
        fs = (Feeds) digester.parse(input);
    } catch (Exception e) {
        throw new SyndicationException("Cannot parse: " + feedsFileName, e);
    }

    return fs;
}

From source file:fr.paris.lutece.plugins.updater.service.catalog.CatalogService.java

/**
 * Load a catalog list from a reader object
 * @param reader The reader//  w  w  w.j  av a2  s  .c o  m
 */
private void loadCatalogsList(Reader reader) {
    // Configure Digester from XML ruleset
    URL rules = getClass().getResource(FILE_CATALOGS_LIST_RULES);

    Digester digester = DigesterLoader.createDigester(rules);

    // Push empty List onto Digester's Stack
    digester.push(this);

    try {
        digester.parse(reader);
    } catch (FileNotFoundException e) {
        AppLogService.error(EXCEPTION_MESSAGE + e.getMessage(), e);
    } catch (SAXException e) {
        AppLogService.error(EXCEPTION_MESSAGE + e.getMessage(), e);
    } catch (IOException e) {
        AppLogService.error(EXCEPTION_MESSAGE + e.getMessage(), e);
    }
}

From source file:com.agnie.useradmin.tools.dbinit.DBInitializer.java

@Transactional
public void createPermissionsRoles(Application dm) throws Exception {
    HashMap<String, Permission> permMapping = new HashMap<String, Permission>();
    List<Permission> pms = new ArrayList<Permission>();
    InputStream input = getClass().getResourceAsStream("permissions.xml");
    URL rules = getClass().getResource("permission-digester-rule.xml");
    Digester digester = DigesterLoader.createDigester(rules);
    digester.push(pms);//from ww  w .j  a  v a2  s  .  c  o m
    digester.parse(input);
    for (Permission pm : pms) {
        pm.setId(java.util.UUID.randomUUID().toString());
        pm.setApplication(dm);
        em.get().persist(pm);
        permMapping.put(pm.getCode(), pm);
    }
    createRole(permMapping, dm);
}

From source file:fr.paris.lutece.plugins.updater.service.catalog.CatalogService.java

/**
 * Load a catalog from a reader object/*from  w ww .j  a va 2  s  . c  om*/
 * @param reader The reader
 */
private void load(Reader reader) {
    // Configure Digester from XML ruleset
    URL rules = getClass().getResource(FILE_CATALOG_RULES);

    Digester digester = DigesterLoader.createDigester(rules);

    // Push empty List onto Digester's Stack
    digester.push(this);

    try {
        digester.parse(reader);
    } catch (FileNotFoundException e) {
        AppLogService.error(EXCEPTION_MESSAGE + e.getMessage(), e);
    } catch (SAXException e) {
        AppLogService.error(EXCEPTION_MESSAGE + e.getMessage(), e);
    } catch (IOException e) {
        AppLogService.error(EXCEPTION_MESSAGE + e.getMessage(), e);
    }
}

From source file:com.agnie.useradmin.tools.dbinit.DBInitializer.java

@Transactional
public void createRole(HashMap<String, Permission> permMapping, Application dm) throws Exception {
    List<DummyRole> rls = new ArrayList<DummyRole>();
    InputStream input = getClass().getResourceAsStream("roles.xml");
    URL rules = getClass().getResource("role-digester-rule.xml");
    Digester digester = DigesterLoader.createDigester(rules);
    digester.push(rls);//from w ww .j  a va 2s .  c  om
    digester.parse(input);
    List<Permission> pms = null;
    for (DummyRole dummyRole : rls) {
        pms = new ArrayList<Permission>();
        Role rl = new Role();
        rl.setId(java.util.UUID.randomUUID().toString());
        rl.setName(dummyRole.getName());
        rl.setDescription(dummyRole.getDescription());
        rl.setLevel(dummyRole.getAuthLevel());
        rl.setApplication(dm);
        List<String> rlPms = dummyRole.getPermissions();
        for (String rlpm : rlPms) {
            pms.add(permMapping.get(rlpm));
        }
        rl.setPermissions(pms);
        em.get().persist(rl);
    }

}

From source file:fr.paris.lutece.portal.service.plugin.PluginFile.java

/**
 * Load plugin data from the XML file using Jakarta Commons Digester
 * @param strFilename The XML plugin filename
 * @throws fr.paris.lutece.portal.service.init.LuteceInitException If a problem occured during the loading
 */// w  ww .j a  v a2s.  c o  m
public void load(String strFilename) throws LuteceInitException {
    // Configure Digester from XML ruleset
    URL rules = getClass().getResource(FILE_RULES);
    Digester digester = DigesterLoader.createDigester(rules);

    // Push empty List onto Digester's Stack
    digester.push(this);
    digester.setValidating(false);

    try {
        InputStream input = new FileInputStream(strFilename);
        digester.parse(input);
    } catch (FileNotFoundException e) {
        throw new LuteceInitException("Error loading plugin file : " + strFilename, e);
    } catch (SAXException e) {
        throw new LuteceInitException("Error loading plugin file : " + strFilename, e);
    } catch (IOException e) {
        throw new LuteceInitException("Error loading plugin file : " + strFilename, e);
    }
}

From source file:com.germinus.easyconf.ConfigurationLoader.java

/**
 * Read an XML file and return an Object representation of its contents
 *//* w w w.j ava  2s  . com*/
Object loadXMLFile(URL confFileUrl, ComponentProperties properties) throws IOException, SAXException {
    log.debug("Loading XML file: " + confFileUrl);
    String componentName = properties.getComponentName();
    String rulesFileName = componentName + Conventions.DIGESTERRULES_EXTENSION;
    URL digesterRulesUrl = ClasspathUtil.locateResource(rulesFileName);
    if (digesterRulesUrl == null) {
        throw new DigesterRulesNotFoundException(componentName, rulesFileName);
    }
    Digester digester = DigesterLoader.createDigester(digesterRulesUrl);
    digester.setUseContextClassLoader(true);
    digester.setValidating(false);

    MultiVariableExpander expander = new MultiVariableExpander();
    expander.addSource("$", properties.toMap());
    Substitutor substitutor = new VariableSubstitutor(expander);
    digester.setSubstitutor(substitutor);

    try {
        Object confObj = digester.parse(confFileUrl.openStream());
        log.info("Read configuration from " + confFileUrl);
        return confObj;
    } catch (IllegalArgumentException e) {
        //FIXME: it does not catch the exception
        throw new InvalidPropertyException(properties.getComponentName(), e);
    }
}