Example usage for org.apache.commons.digester Digester setUseContextClassLoader

List of usage examples for org.apache.commons.digester Digester setUseContextClassLoader

Introduction

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

Prototype

public void setUseContextClassLoader(boolean use) 

Source Link

Document

Determine whether to use the Context ClassLoader (the one found by calling Thread.currentThread().getContextClassLoader()) to resolve/load classes that are defined in various rules.

Usage

From source file:com.zyd.ztools.util.XmlUtil.java

public static Property parseXml(String content) {
    if (content == null || content.length() <= 0) {
        return null;
    }/*from   w  ww. j  a v a2  s .c  o m*/
    Property property = null;
    try {
        Digester digester = new Digester();
        digester.clear();
        digester.setValidating(false);
        digester.setUseContextClassLoader(true);
        digester.addObjectCreate("property", Property.class);
        digester.addBeanPropertySetter("property/returncode", "returncode");
        digester.addBeanPropertySetter("property/key", "key");
        digester.addBeanPropertySetter("property/original", "original");
        InputStream in = new ByteArrayInputStream(content.getBytes("UTF-8"));
        property = (Property) digester.parse(in);
    } catch (Exception e) {
        System.out.println("?XML...");
        System.out.println(content);
    }
    return property;
}

From source file:com.nec.nsgui.model.biz.framework.menu.NSMenuFactory.java

/**
 * parse the inputStream and create NSMenusBean object.
 * @param inputStream/*from w w  w  .  j a  v a 2 s.c o m*/
 * @return
 * @throws Exception
 */
private static NSMenusBean parse(InputStream inputStream) throws Exception {
    Digester digester = new Digester();
    digester.setValidating(false);
    digester.setUseContextClassLoader(true);
    //parse root and create nsmenus object.
    digester.addObjectCreate(CONFIG_FILE_TAG_NSMENUS, NSMenusBean.class);

    //parse Category and create a CategoryBean object.
    String categoryStr = CONFIG_FILE_TAG_NSMENUS + CONFIG_FILE_TAG_SEPARATER + CONFIG_FILE_TAG_CATEGORY;
    digester.addObjectCreate(categoryStr, CategoryBean.class);
    digester.addSetProperties(categoryStr);
    digester.addSetNext(categoryStr, "addCategoryMap");

    //parse SubCategory and create SubCategoryBean object.
    String subCategoryStr = categoryStr + CONFIG_FILE_TAG_SEPARATER + CONFIG_FILE_TAG_SUBCATEGORY;
    digester.addObjectCreate(subCategoryStr, SubCategoryBean.class);
    digester.addSetProperties(subCategoryStr);
    digester.addSetNext(subCategoryStr, "addSubCategoryMap");

    //parse Item and create ItemBean object.
    String itemStr = subCategoryStr + CONFIG_FILE_TAG_SEPARATER + CONFIG_FILE_TAG_ITEM;
    digester.addObjectCreate(itemStr, ItemBean.class);
    digester.addSetProperties(itemStr);
    String hiddenStr = itemStr + CONFIG_FILE_TAG_SEPARATER + CONFIG_FILE_TAG_HIDDEN;
    digester.addCallMethod(hiddenStr, "addHiddenMap", 2);
    digester.addCallParam(hiddenStr, 0, "name");
    digester.addCallParam(hiddenStr, 1, "value");
    digester.addSetNext(itemStr, "addItemMap");

    return (NSMenusBean) digester.parse(inputStream);
}

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.
 *///w w  w.  ja v a 2  s  . co  m
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:com.jamcracker.jif.util.JIFUtil.java

/**
 * @param xmlMessage/*from ww  w .j  av  a2s. com*/
 * @return
 * @throws Exception
 */
public static JIFRequest processRequest(String xmlMessage) throws Exception {
    JIFRequest requestMsgObj = null;
    if (xmlMessage == null) {
        return requestMsgObj;
    }

    try {
        Digester digester = DigesterLoader.createDigester(JIFUtil.class.getResource("/operation-rule.xml"));
        digester.setUseContextClassLoader(true);
        InputStream stream = new ByteArrayInputStream(xmlMessage.getBytes());
        requestMsgObj = (JIFRequest) digester.parse(stream);
        return requestMsgObj;
    } catch (Exception exec) {
        LOG.error("Exception occured in <<JIFUtil>>", exec);
    }
    return requestMsgObj;

}

From source file:com.sun.faces.generate.AbstractGenerator.java

/**
 * <p>Configure and return a <code>Digester</code> instance suitable for
 * use in the environment specified by our parameter flags.</p>
 *
 * @param dtd[] array of absolute pathnames of the DTDs to be registered (if any)
 *  and their corresponding public identifiers
 * @param design Include rules suitable for design time use in a tool
 * @param generate Include rules suitable for generating component,
 *  renderer, and tag classes//from ww w .j a va2 s  .  c o  m
 * @param runtime Include rules suitable for runtime execution
 *
 * @exception MalformedURLException if a URL cannot be formed correctly
 */
protected static Digester digester(String dtd[], boolean design, boolean generate, boolean runtime)
        throws MalformedURLException {

    Digester digester = new Digester();

    // Configure basic properties
    digester.setNamespaceAware(false);
    digester.setUseContextClassLoader(true);
    digester.setValidating(true);

    // Configure parsing rules
    digester.addRuleSet(new FacesConfigRuleSet(design, generate, runtime));

    // Configure preregistered entities
    int i = 0;
    while (dtd.length > 0) {
        if (dtd[i] != null && dtd[i + 1] != null) {
            digester.register(dtd[i], (new File(dtd[i + 1])).toURL().toString());
        }
        i += 2;
        if (i >= dtd.length) {
            break;
        }
    }
    return (digester);

}

From source file:eu.planets_project.pp.plato.services.action.PreservationActionRegistryFactory.java

/**
 *   //from  w  w w  . j  a  v  a  2s .  c om
 * @return a list of all in PreservationActionRegistries.xml defined registries.
 * @throws IllegalArgumentException
 */
static public List<PreservationActionRegistryDefinition> getAvailableRegistries()
        throws IllegalArgumentException {
    ArrayList<PreservationActionRegistryDefinition> allRegistries = new ArrayList<PreservationActionRegistryDefinition>();

    String configFile = "data/services/PreservationActionRegistries.xml";
    InputStream config = Thread.currentThread().getContextClassLoader().getResourceAsStream(configFile);

    Digester digester = new Digester();
    digester.setValidating(false);
    digester.setErrorHandler(new StrictErrorHandler());

    digester.push(allRegistries);
    digester.addObjectCreate("*/registry", PreservationActionRegistryDefinition.class);
    digester.addBeanPropertySetter("*/registry/shortname", "shortname");
    digester.addBeanPropertySetter("*/registry/logo", "logo");
    digester.addBeanPropertySetter("*/registry/url", "url");
    digester.addBeanPropertySetter("*/registry/type", "type");
    digester.addBeanPropertySetter("*/registry/active", "active");
    digester.addSetNext("*/registry", "add");

    try {
        digester.setUseContextClassLoader(true);
        digester.parse(config);
    } catch (Exception e) {
        log.error("Error in config file: " + configFile, e);
    }
    return allRegistries;

}

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

private Object readConfig(Digester digester) throws IOException, SAXException {
    Object configuration;//from  w  w w  .  ja  va2s  . com
    digester.setUseContextClassLoader(true);
    digester.setValidating(false);
    URL confFile = ClasspathUtil.locateResource(null, "test_module.xml");
    assertNotNull("Configuration file not found", confFile);
    configuration = digester.parse(confFile.openStream());
    return configuration;
}

From source file:net.sf.j2ep.ConfigParser.java

/**
 * Creates the rules.// w  w  w  .j a v a2s.c  o m
 * 
 * @return The rules all put into a rule chain
 */
private LinkedList createServerList(File data) throws Exception {
    Digester digester = new Digester();
    digester.setUseContextClassLoader(true);

    // Construct server list
    digester.addObjectCreate("config", LinkedList.class);

    // Create servers
    digester.addObjectCreate("config/server", null, "className");
    digester.addSetProperties("config/server");
    // Create rule
    digester.addObjectCreate("config/server/rule", null, "className");
    digester.addSetProperties("config/server/rule");
    digester.addSetNext("config/server/rule", "setRule");
    // Create composite rule
    digester.addObjectCreate("config/server/composite-rule", null, "className");
    digester.addSetProperties("config/server/composite-rule");
    digester.addObjectCreate("config/server/composite-rule/rule", null, "className");
    digester.addSetProperties("config/server/composite-rule/rule");
    digester.addSetNext("config/server/composite-rule/rule", "addRule");
    digester.addSetNext("config/server/composite-rule", "setRule");
    // Add server to list
    digester.addSetNext("config/server", "add");

    // Create cluster servers
    digester.addObjectCreate("config/cluster-server", null, "className");
    digester.addSetProperties("config/cluster-server");
    // Create the servers in this cluster
    digester.addCallMethod("config/cluster-server/server", "addServer", 2);
    digester.addCallParam("config/cluster-server/server", 0, "domainName");
    digester.addCallParam("config/cluster-server/server", 1, "path");
    // Create rule
    digester.addObjectCreate("config/cluster-server/rule", null, "className");
    digester.addSetProperties("config/cluster-server/rule");
    digester.addSetNext("config/cluster-server/rule", "setRule");
    // Create composite rule
    digester.addObjectCreate("config/cluster-server/composite-rule", null, "className");
    digester.addSetProperties("config/cluster-server/composite-rule");
    digester.addObjectCreate("config/cluster-server/composite-rule/rule", null, "className");
    digester.addSetProperties("config/cluster-server/composite-rule/rule");
    digester.addSetNext("config/cluster-server/composite-rule/rule", "addRule");
    digester.addSetNext("config/cluster-server/composite-rule", "setRule");

    // Add server to list
    digester.addSetNext("config/cluster-server", "add");

    return (LinkedList) digester.parse(data);
}

From source file:com.nec.nsgui.exception.NSExceptionPlugIn.java

/**
  * read the exception config file by means of Digester,
  * and genetat the responding object/*from   w  w w  .  j  a  v a2 s  .  c om*/
  * @param servlet The ActionServlet making this request
  * @param inputStream The Exception config file content 
  * 
  */

protected ExceptionConf parse(InputStream inputStream) throws Exception {

    Digester dgstr = new Digester();
    ExceptionConf exConf;
    dgstr.setValidating(false);
    dgstr.setUseContextClassLoader(true);

    dgstr.addObjectCreate("ExceptionConf", ExceptionConf.class);

    //creat and add the ProcessRule object
    dgstr.addObjectCreate("ExceptionConf/ProcessRule", ProcessRule.class);
    dgstr.addSetProperties("ExceptionConf/ProcessRule");
    dgstr.addSetNext("ExceptionConf/ProcessRule", "addProcessRule");

    //creat and add the ProcessRule object 's child (ErrorMessage)
    dgstr.addObjectCreate("ExceptionConf/ProcessRule/ErrorMessage", ErrorMessage.class);
    dgstr.addSetProperties("ExceptionConf/ProcessRule/ErrorMessage");
    //add the ErrorMessage 's child (arg)
    dgstr.addCallMethod("ExceptionConf/ProcessRule/ErrorMessage/arg", "addArg", 1);
    dgstr.addCallParam("ExceptionConf/ProcessRule/ErrorMessage/arg", 0, "property");
    dgstr.addSetNext("ExceptionConf/ProcessRule/ErrorMessage", "addErrMsg");

    //creat and add the ProcessRule object 's child (Dispatcher)
    dgstr.addObjectCreate("ExceptionConf/ProcessRule/Dispatcher", Dispatcher.class);
    dgstr.addSetProperties("ExceptionConf/ProcessRule/Dispatcher");
    dgstr.addObjectCreate("ExceptionConf/ProcessRule/Dispatcher/ErrorMessage", ErrorMessage.class);
    dgstr.addSetNext("ExceptionConf/ProcessRule/Dispatcher/ErrorMessage", "addErrMsg");
    dgstr.addSetProperties("ExceptionConf/ProcessRule/Dispatcher/ErrorMessage");
    dgstr.addSetNext("ExceptionConf/ProcessRule/Dispatcher", "addDispatcher");

    exConf = (ExceptionConf) dgstr.parse(inputStream);

    return exConf;
}

From source file:net.jakubholy.jeeutils.jsfelcheck.beanfinder.jsf11.Jsf11FacesConfigXmlBeanFinder.java

protected Digester digester(boolean validateXml) {
    Digester digester = new Digester();

    digester.setNamespaceAware(false);/* w  w  w  .j a va2s  . c o m*/
    digester.setUseContextClassLoader(true);
    digester.setValidating(validateXml);

    digester.addRuleSet(new FacesConfigRuleSet(false, false, true));

    for (int i = 0; i < DTD_INFO.length; i++) {
        URL url = getClass().getResource(DTD_INFO[i][0]);
        if (url != null) {
            digester.register(DTD_INFO[i][1], url.toString());
        } else {
            throw new RuntimeException("NO_DTD_FOUND_ERROR: " + DTD_INFO[i][1] + "," + DTD_INFO[i][0]);
        }

    }

    digester.push(new FacesConfigBean());

    return digester;
}