Example usage for javax.xml.parsers DocumentBuilderFactory setIgnoringComments

List of usage examples for javax.xml.parsers DocumentBuilderFactory setIgnoringComments

Introduction

In this page you can find the example usage for javax.xml.parsers DocumentBuilderFactory setIgnoringComments.

Prototype


public void setIgnoringComments(boolean ignoreComments) 

Source Link

Document

Specifies that the parser produced by this code will ignore comments.

Usage

From source file:co.cask.cdap.common.conf.Configuration.java

private void loadResource(Properties properties, Object name, boolean quiet) {
    try {//w  ww. j a v a 2  s.c o m
        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        //ignore all comments inside the xml file
        docBuilderFactory.setIgnoringComments(true);

        //allow includes in the xml file
        docBuilderFactory.setNamespaceAware(true);
        try {
            docBuilderFactory.setXIncludeAware(true);
        } catch (UnsupportedOperationException e) {
            LOG.error("Failed to set setXIncludeAware(true) for parser " + docBuilderFactory + ":" + e, e);
        }
        DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
        Document doc = null;
        Element root = null;

        if (name instanceof URL) { // an URL resource
            URL url = (URL) name;
            if (url != null) {
                if (!quiet) {
                    LOG.info("parsing " + url);
                }
                doc = builder.parse(url.toString());
            }
        } else if (name instanceof String) { // a CLASSPATH resource
            URL url = getResource((String) name);
            if (url != null) {
                if (!quiet) {
                    LOG.info("parsing " + url);
                }
                doc = builder.parse(url.toString());
            }
        } else if (name instanceof InputStream) {
            try {
                doc = builder.parse((InputStream) name);
            } finally {
                ((InputStream) name).close();
            }
        } else if (name instanceof Element) {
            root = (Element) name;
        }

        if (doc == null && root == null) {
            if (quiet) {
                return;
            }
            throw new RuntimeException(name + " not found");
        }

        if (root == null) {
            root = doc.getDocumentElement();
        }
        if (!"configuration".equals(root.getTagName())) {
            LOG.fatal("bad conf file: top-level element not <configuration>");
        }
        NodeList props = root.getChildNodes();
        for (int i = 0; i < props.getLength(); i++) {
            Node propNode = props.item(i);
            if (!(propNode instanceof Element)) {
                continue;
            }
            Element prop = (Element) propNode;
            if ("configuration".equals(prop.getTagName())) {
                loadResource(properties, prop, quiet);
                continue;
            }
            if (!"property".equals(prop.getTagName())) {
                LOG.warn("bad conf file: element not <property>");
            }
            NodeList fields = prop.getChildNodes();
            String attr = null;
            String value = null;
            boolean finalParameter = false;
            for (int j = 0; j < fields.getLength(); j++) {
                Node fieldNode = fields.item(j);
                if (!(fieldNode instanceof Element)) {
                    continue;
                }
                Element field = (Element) fieldNode;
                if ("name".equals(field.getTagName()) && field.hasChildNodes()) {
                    attr = ((Text) field.getFirstChild()).getData().trim();
                }
                if ("value".equals(field.getTagName()) && field.hasChildNodes()) {
                    value = ((Text) field.getFirstChild()).getData();
                }
                if ("final".equals(field.getTagName()) && field.hasChildNodes()) {
                    finalParameter = "true".equals(((Text) field.getFirstChild()).getData());
                }
            }

            // Ignore this parameter if it has already been marked as 'final'
            if (attr != null) {
                if (deprecatedKeyMap.containsKey(attr)) {
                    DeprecatedKeyInfo keyInfo = deprecatedKeyMap.get(attr);
                    keyInfo.accessed = false;
                    for (String key : keyInfo.newKeys) {
                        // update new keys with deprecated key's value
                        loadProperty(properties, name, key, value, finalParameter);
                    }
                } else {
                    loadProperty(properties, name, attr, value, finalParameter);
                }
            }
        }

    } catch (IOException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    } catch (DOMException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    } catch (SAXException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    } catch (ParserConfigurationException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    }
}

From source file:com.buaa.cfs.conf.Configuration.java

private Resource loadResource(Properties properties, Resource wrapper, boolean quiet) {
    String name = UNKNOWN_RESOURCE;
    try {//from  w  w  w.j  a v  a  2  s  .com
        Object resource = wrapper.getResource();
        name = wrapper.getName();

        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        //ignore all comments inside the xml file
        docBuilderFactory.setIgnoringComments(true);

        //allow includes in the xml file
        docBuilderFactory.setNamespaceAware(true);
        try {
            docBuilderFactory.setXIncludeAware(true);
        } catch (UnsupportedOperationException e) {
            LOG.error("Failed to set setXIncludeAware(true) for parser " + docBuilderFactory + ":" + e, e);
        }
        DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
        Document doc = null;
        Element root = null;
        boolean returnCachedProperties = false;

        if (resource instanceof URL) { // an URL resource
            doc = parse(builder, (URL) resource);
        } else if (resource instanceof String) { // a CLASSPATH resource
            URL url = getResource((String) resource);
            doc = parse(builder, url);
        } else if (resource instanceof Path) { // a file resource
            // Can't use FileSystem API or we get an infinite loop
            // since FileSystem uses Configuration API.  Use java.io.File instead.
            File file = new File(((Path) resource).toUri().getPath()).getAbsoluteFile();
            if (file.exists()) {
                if (!quiet) {
                    LOG.debug("parsing File " + file);
                }
                doc = parse(builder, new BufferedInputStream(new FileInputStream(file)),
                        ((Path) resource).toString());
            }
        } else if (resource instanceof InputStream) {
            doc = parse(builder, (InputStream) resource, null);
            returnCachedProperties = true;
        } else if (resource instanceof Properties) {
            overlay(properties, (Properties) resource);
        } else if (resource instanceof Element) {
            root = (Element) resource;
        }

        if (root == null) {
            if (doc == null) {
                if (quiet) {
                    return null;
                }
                throw new RuntimeException(resource + " not found");
            }
            root = doc.getDocumentElement();
        }
        Properties toAddTo = properties;
        if (returnCachedProperties) {
            toAddTo = new Properties();
        }
        if (!"configuration".equals(root.getTagName()))
            LOG.fatal("bad conf file: top-level element not <configuration>");
        NodeList props = root.getChildNodes();
        DeprecationContext deprecations = deprecationContext.get();
        for (int i = 0; i < props.getLength(); i++) {
            Node propNode = props.item(i);
            if (!(propNode instanceof Element))
                continue;
            Element prop = (Element) propNode;
            if ("configuration".equals(prop.getTagName())) {
                loadResource(toAddTo, new Resource(prop, name), quiet);
                continue;
            }
            if (!"property".equals(prop.getTagName()))
                LOG.warn("bad conf file: element not <property>");
            NodeList fields = prop.getChildNodes();
            String attr = null;
            String value = null;
            boolean finalParameter = false;
            LinkedList<String> source = new LinkedList<String>();
            for (int j = 0; j < fields.getLength(); j++) {
                Node fieldNode = fields.item(j);
                if (!(fieldNode instanceof Element))
                    continue;
                Element field = (Element) fieldNode;
                if ("name".equals(field.getTagName()) && field.hasChildNodes())
                    attr = StringInterner.weakIntern(((Text) field.getFirstChild()).getData().trim());
                if ("value".equals(field.getTagName()) && field.hasChildNodes())
                    value = StringInterner.weakIntern(((Text) field.getFirstChild()).getData());
                if ("final".equals(field.getTagName()) && field.hasChildNodes())
                    finalParameter = "true".equals(((Text) field.getFirstChild()).getData());
                if ("source".equals(field.getTagName()) && field.hasChildNodes())
                    source.add(StringInterner.weakIntern(((Text) field.getFirstChild()).getData()));
            }
            source.add(name);

            // Ignore this parameter if it has already been marked as 'final'
            if (attr != null) {
                if (deprecations.getDeprecatedKeyMap().containsKey(attr)) {
                    DeprecatedKeyInfo keyInfo = deprecations.getDeprecatedKeyMap().get(attr);
                    keyInfo.clearAccessed();
                    for (String key : keyInfo.newKeys) {
                        // update new keys with deprecated key's value
                        loadProperty(toAddTo, name, key, value, finalParameter,
                                source.toArray(new String[source.size()]));
                    }
                } else {
                    loadProperty(toAddTo, name, attr, value, finalParameter,
                            source.toArray(new String[source.size()]));
                }
            }
        }

        if (returnCachedProperties) {
            overlay(properties, toAddTo);
            return new Resource(toAddTo, name);
        }
        return null;
    } catch (IOException e) {
        LOG.fatal("error parsing conf " + name, e);
        throw new RuntimeException(e);
    } catch (DOMException e) {
        LOG.fatal("error parsing conf " + name, e);
        throw new RuntimeException(e);
    } catch (SAXException e) {
        LOG.fatal("error parsing conf " + name, e);
        throw new RuntimeException(e);
    } catch (ParserConfigurationException e) {
        LOG.fatal("error parsing conf " + name, e);
        throw new RuntimeException(e);
    }
}

From source file:de.interactive_instruments.ShapeChange.Options.java

public void loadConfiguration() throws ShapeChangeAbortException {

    InputStream configStream = null;
    if (configFile == null) {
        // load minimal configuration, if no configuration file has been
        // provided
        configFile = "/config/minimal.xml";
        configStream = getClass().getResourceAsStream(configFile);
        if (configStream == null) {
            configFile = "src/main/resources" + configFile;
            File file = new File(configFile);
            if (file.exists())
                try {
                    configStream = new FileInputStream(file);
                } catch (FileNotFoundException e1) {
                    throw new ShapeChangeAbortException("Minimal configuration file not found: " + configFile);
                }/*from  w w w .  j  a v  a  2  s.c  o m*/
            else {
                URL url;
                String configURL = "http://shapechange.net/resources/config/minimal.xml";
                try {
                    url = new URL(configURL);
                    configStream = url.openStream();
                } catch (MalformedURLException e) {
                    throw new ShapeChangeAbortException("Minimal configuration file not accessible from: "
                            + configURL + " (malformed URL)");
                } catch (IOException e) {
                    throw new ShapeChangeAbortException(
                            "Minimal configuration file not accessible from: " + configURL + " (IO error)");
                }
            }
        }
    } else {
        File file = new File(configFile);
        if (file == null || !file.exists()) {
            try {
                configStream = (new URL(configFile)).openStream();
            } catch (MalformedURLException e) {
                throw new ShapeChangeAbortException(
                        "No configuration file found at " + configFile + " (malformed URL)");
            } catch (IOException e) {
                throw new ShapeChangeAbortException(
                        "No configuration file found at " + configFile + " (IO exception)");
            }
        } else {
            try {
                configStream = new FileInputStream(file);
            } catch (FileNotFoundException e) {
                throw new ShapeChangeAbortException("No configuration file found at " + configFile);
            }
        }
        if (configStream == null) {
            throw new ShapeChangeAbortException("No configuration file found at " + configFile);
        }
    }

    DocumentBuilder builder = null;
    ShapeChangeErrorHandler handler = null;
    try {
        System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
                "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        factory.setValidating(true);
        factory.setFeature("http://apache.org/xml/features/validation/schema", true);
        factory.setIgnoringElementContentWhitespace(true);
        factory.setIgnoringComments(true);
        factory.setXIncludeAware(true);
        factory.setFeature("http://apache.org/xml/features/xinclude/fixup-base-uris", false);
        builder = factory.newDocumentBuilder();
        handler = new ShapeChangeErrorHandler();
        builder.setErrorHandler(handler);
    } catch (FactoryConfigurationError e) {
        throw new ShapeChangeAbortException("Unable to get a document builder factory.");
    } catch (ParserConfigurationException e) {
        throw new ShapeChangeAbortException("XML Parser was unable to be configured.");
    }

    // parse file
    try {
        Document document = builder.parse(configStream);
        if (handler.errorsFound()) {
            throw new ShapeChangeAbortException("Invalid configuration file.");
        }

        // parse input element specific content
        NodeList nl = document.getElementsByTagName("input");
        Element inputElement = (Element) nl.item(0);
        if (inputElement.hasAttribute("id")) {
            inputId = inputElement.getAttribute("id").trim();
            if (inputId.length() == 0) {
                inputId = null;
            }
        } else {
            inputId = Options.INPUTELEMENTID;
        }

        Map<String, String> inputParameters = new HashMap<String, String>();
        nl = inputElement.getElementsByTagName("parameter");
        for (int j = 0; j < nl.getLength(); j++) {
            Element e = (Element) nl.item(j);
            String key = e.getAttribute("name");
            String val = e.getAttribute("value");
            inputParameters.put(key, val);
        }

        Map<String, String> stereotypeAliases = new HashMap<String, String>();
        nl = inputElement.getElementsByTagName("StereotypeAlias");
        for (int j = 0; j < nl.getLength(); j++) {
            Element e = (Element) nl.item(j);
            String key = e.getAttribute("alias");
            String val = e.getAttribute("wellknown");

            // case shall be ignored
            key = key.toLowerCase();
            val = val.toLowerCase();

            stereotypeAliases.put(key, val);
        }

        Map<String, String> tagAliases = new HashMap<String, String>();
        nl = inputElement.getElementsByTagName("TagAlias");
        for (int j = 0; j < nl.getLength(); j++) {
            Element e = (Element) nl.item(j);
            String key = e.getAttribute("alias");
            String val = e.getAttribute("wellknown");

            // case not to be ignored for tagged values at the moment
            // key = key.toLowerCase();
            // val = val.toLowerCase();

            tagAliases.put(key, val);
        }

        Map<String, String> descriptorSources = new HashMap<String, String>();
        nl = inputElement.getElementsByTagName("DescriptorSource");
        for (int j = 0; j < nl.getLength(); j++) {
            Element e = (Element) nl.item(j);
            String key = e.getAttribute("descriptor");
            String val = e.getAttribute("source");

            // case shall be ignored for descriptor and source
            key = key.toLowerCase();
            val = val.toLowerCase();

            if (val.equals("sc:extract")) {
                String s = e.getAttribute("token");
                val += "#" + (s == null ? "" : s);
            } else if (val.equals("tag")) {
                String s = e.getAttribute("tag");
                val += "#" + (s == null ? "" : s);
            }

            descriptorSources.put(key, val);
        }

        Map<String, PackageInfoConfiguration> packageInfos = parsePackageInfos(inputElement);

        this.inputConfig = new InputConfiguration(inputId, inputParameters, stereotypeAliases, tagAliases,
                descriptorSources, packageInfos);

        // parse dialog specific parameters
        nl = document.getElementsByTagName("dialog");
        if (nl != null && nl.getLength() != 0) {
            for (int k = 0; k < nl.getLength(); k++) {
                Node node = nl.item(k);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element dialogElement = (Element) node;
                    this.dialogParameters = parseParameters(dialogElement, "parameter");
                }
            }
        }

        // parse log specific parameters
        nl = document.getElementsByTagName("log");
        if (nl != null && nl.getLength() != 0) {
            for (int k = 0; k < nl.getLength(); k++) {
                Node node = nl.item(k);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element logElement = (Element) node;
                    this.logParameters = parseParameters(logElement, "parameter");
                }
            }
        }

        // add standard rules, just so that configured rules can be
        // validated
        addStandardRules();

        // Load transformer configurations (if any are provided in the
        // configuration file)
        Map<String, TransformerConfiguration> transformerConfigs = parseTransformerConfigurations(document);

        // Load target configurations
        this.targetConfigs = parseTargetConfigurations(document);

        this.resetFields();
        // this.resetUponLoadFlag = false;

        // TBD discuss if there's a better way to support rule and
        // requirements matching for the input model
        // TBD apparently the matching requires all
        // applicable encoding rules to be known up front
        for (TargetConfiguration tgtConfig : targetConfigs) {

            // System.out.println(tgtConfig);
            String className = tgtConfig.getClassName();
            String mode = tgtConfig.getProcessMode().name();

            // set targets and their mode; if a target occurs multiple
            // times, keep the enabled one(s)
            if (!this.fTargets.containsKey(className)) {
                addTarget(className, mode);

            } else {
                if (this.fTargets.get(className).equals(ProcessMode.disabled)) {
                    // set targets and their mode; if a target occurs
                    // multiple times, keep the enabled one(s)
                    addTarget(className, mode);
                }
            }

            // ensure that we have all the rules from all non-disabled
            // targets
            // we repeat this for the same target (if it is not disabled) to
            // ensure that we get the union of all encoding rules
            if (!tgtConfig.getProcessMode().equals(ProcessMode.disabled)) {
                for (ProcessRuleSet prs : tgtConfig.getRuleSets().values()) {
                    String nam = prs.getName();
                    String ext = prs.getExtendedRuleSetName();
                    addExtendsEncRule(nam, ext);

                    if (prs.hasAdditionalRules()) {
                        for (String rule : prs.getAdditionalRules()) {
                            addRule(rule, nam);
                        }
                    }
                }
            }

            /*
             * looks like we also need parameters like defaultEncodingRule
             * !!! IF THERE ARE DIFFERENT DEFAULT ENCODING RULES FOR
             * DIFFERENT TARGETS (WITH SAME CLASS) THIS WONT WORK!!!
             */
            for (String paramName : tgtConfig.getParameters().keySet()) {
                setParameter(className, paramName, tgtConfig.getParameters().get(paramName));
            }

            // in order for the input model load not to produce warnings,
            // we also need to load the map entries
            if (tgtConfig instanceof TargetXmlSchemaConfiguration) {

                TargetXmlSchemaConfiguration config = (TargetXmlSchemaConfiguration) tgtConfig;

                // add xml schema namespace information
                for (XmlNamespace xns : config.getXmlNamespaces()) {
                    addNamespace(xns.getNsabr(), xns.getNs(), xns.getLocation());
                    // if (xns.getLocation() != null) {
                    addSchemaLocation(xns.getNs(), xns.getLocation());
                    // }
                }

                // add xsd map entries
                for (XsdMapEntry xsdme : config.getXsdMapEntries()) {

                    for (String xsdEncodingRule : xsdme.getEncodingRules()) {

                        String type = xsdme.getType();
                        String xmlPropertyType = xsdme.getXmlPropertyType();
                        String xmlElement = xsdme.getXmlElement();
                        String xmlTypeContent = xsdme.getXmlTypeContent();
                        String xmlTypeNilReason = xsdme.getXmlTypeNilReason();
                        String xmlType = xsdme.getXmlType();
                        String xmlTypeType = xsdme.getXmlTypeType();
                        String xmlAttribute = xsdme.getXmlAttribute();
                        String xmlAttributeGroup = xsdme.getXmlAttributeGroup();

                        if (xmlPropertyType != null) {
                            if (xmlPropertyType.equals("_P_") && xmlElement != null) {
                                addTypeMapEntry(type, xsdEncodingRule, "propertyType", xmlElement);
                            } else if (xmlPropertyType.equals("_MP_") && xmlElement != null) {
                                addTypeMapEntry(type, xsdEncodingRule, "metadataPropertyType", xmlElement);
                            } else {
                                addTypeMapEntry(type, xsdEncodingRule, "direct", xmlPropertyType,
                                        xmlTypeType + "/" + xmlTypeContent, xmlTypeNilReason);
                            }
                        }
                        if (xmlElement != null) {
                            addElementMapEntry(type, xsdEncodingRule, "direct", xmlElement);
                        }
                        if (xmlType != null) {
                            addBaseMapEntry(type, xsdEncodingRule, "direct", xmlType,
                                    xmlTypeType + "/" + xmlTypeContent);
                        }
                        if (xmlAttribute != null) {
                            addAttributeMapEntry(type, xsdEncodingRule, xmlAttribute);
                        }
                        if (xmlAttributeGroup != null) {
                            addAttributeGroupMapEntry(type, xsdEncodingRule, xmlAttributeGroup);
                        }
                    }
                }
            } else {

                // add map entries for Target (no need to do this for
                // transformers)
                for (ProcessMapEntry pme : tgtConfig.getMapEntries()) {
                    addTargetTypeMapEntry(tgtConfig.getClassName(), pme.getType(), pme.getRule(),
                            pme.getTargetType(), pme.getParam());
                }
            }
        }

        // create "tree"
        for (TargetConfiguration tgtConfig : targetConfigs) {
            for (String inputIdref : tgtConfig.getInputIds()) {
                if (inputIdref.equals(getInputId())) {
                    this.inputTargetConfigs.add(tgtConfig);
                } else {
                    transformerConfigs.get(inputIdref).addTarget(tgtConfig);
                }
            }
        }

        for (TransformerConfiguration trfConfig : transformerConfigs.values()) {
            String inputIdref = trfConfig.getInputId();
            if (inputIdref.equals(getInputId())) {
                this.inputTransformerConfigs.add(trfConfig);
            } else {
                transformerConfigs.get(inputIdref).addTransformer(trfConfig);
            }
        }

        // Determine constraint creation handling parameters:
        String classTypesToCreateConstraintsFor = parameter("classTypesToCreateConstraintsFor");
        if (classTypesToCreateConstraintsFor != null) {
            classTypesToCreateConstraintsFor = classTypesToCreateConstraintsFor.trim();
            if (classTypesToCreateConstraintsFor.length() > 0) {
                String[] stereotypes = classTypesToCreateConstraintsFor.split("\\W*,\\W*");
                this.classTypesToCreateConstraintsFor = new HashSet<Integer>();
                for (String stereotype : stereotypes) {
                    String sForCons = stereotype.toLowerCase();
                    if (sForCons.equals("enumeration")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(ENUMERATION));
                    } else if (sForCons.equals("codelist")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(CODELIST));
                    } else if (sForCons.equals("schluesseltabelle")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(OKSTRAKEY));
                    } else if (sForCons.equals("fachid")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(OKSTRAFID));
                    } else if (sForCons.equals("datatype")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(DATATYPE));
                    } else if (sForCons.equals("union")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(UNION));
                    } else if (sForCons.equals("featureconcept")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(FEATURECONCEPT));
                    } else if (sForCons.equals("attributeconcept")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(ATTRIBUTECONCEPT));
                    } else if (sForCons.equals("valueconcept")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(VALUECONCEPT));
                    } else if (sForCons.equals("interface")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(MIXIN));
                    } else if (sForCons.equals("basictype")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(BASICTYPE));
                    } else if (sForCons.equals("adeelement")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(FEATURE));
                    } else if (sForCons.equals("featuretype")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(FEATURE));
                    } else if (sForCons.equals("type")) {
                        this.classTypesToCreateConstraintsFor.add(new Integer(OBJECT));
                    } else {
                        this.classTypesToCreateConstraintsFor.add(new Integer(UNKNOWN));
                    }
                }
            }
        }

        String constraintCreationForProperties = parameter("constraintCreationForProperties");
        if (constraintCreationForProperties != null) {
            if (constraintCreationForProperties.trim().equalsIgnoreCase("false")) {
                this.constraintCreationForProperties = false;
            }
        }

        /*
         * TODO add documentation
         */
        String ignoreEncodingRuleTaggedValues = parameter("ignoreEncodingRuleTaggedValues");

        if (ignoreEncodingRuleTaggedValues != null) {
            if (ignoreEncodingRuleTaggedValues.trim().equalsIgnoreCase("true")) {
                this.ignoreEncodingRuleTaggedValues = true;
            }
        }

        String useStringInterning_value = parameter(PARAM_USE_STRING_INTERNING);

        if (useStringInterning_value != null && useStringInterning_value.trim().equalsIgnoreCase("true")) {
            this.useStringInterning = true;
        }

        String loadGlobalIds_value = this.parameter(PARAM_LOAD_GLOBAL_IDENTIFIERS);

        if (loadGlobalIds_value != null && loadGlobalIds_value.trim().equalsIgnoreCase("true")) {
            this.loadGlobalIds = true;
        }

        String language_value = inputConfig.getParameters().get(PARAM_LANGUAGE);

        if (language_value != null && !language_value.trim().isEmpty()) {
            this.language = language_value.trim().toLowerCase();
        }

    } catch (SAXException e) {
        String m = e.getMessage();
        if (m != null) {
            throw new ShapeChangeAbortException(
                    "Error while loading configuration file: " + System.getProperty("line.separator") + m);
        } else {
            e.printStackTrace(System.err);
            throw new ShapeChangeAbortException("Error while loading configuration file: "
                    + System.getProperty("line.separator") + System.err);
        }
    } catch (IOException e) {
        String m = e.getMessage();
        if (m != null) {
            throw new ShapeChangeAbortException(
                    "Error while loading configuration file: " + System.getProperty("line.separator") + m);
        } else {
            e.printStackTrace(System.err);
            throw new ShapeChangeAbortException("Error while loading configuration file: "
                    + System.getProperty("line.separator") + System.err);
        }
    }

    MapEntry nsme = namespace("gml");
    if (nsme != null) {
        GML_NS = nsme.rule;
    }
}

From source file:com.dosse.bwentrain.androidPlayer.MainActivity.java

private Preset loadPreset(String f) {
    InputStream p = null;//from www  .j  av a2 s . c  om
    Preset x = null;
    try {
        if (new File(f).exists())
            p = new FileInputStream(f);
        else
            p = openFileInput(f);
        if (p == null)
            throw new Exception("Can't open " + f);
        //read xml document
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setIgnoringComments(true);
        factory.setIgnoringElementContentWhitespace(true);
        factory.setValidating(false);
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(p);
        doc.getDocumentElement().normalize();
        //parse it
        x = new Preset(doc.getDocumentElement());
        if (getSharedPreferences("SINE", Context.MODE_PRIVATE).getBoolean("noise_switch", false)) {
            //if noise is disabled, remove it
            Envelope e = x.getNoiseEnvelope();
            while (e.getPointCount() != 1)
                e.removePoint(1);
            e.setVal(0, 0);
        }
    } catch (Throwable t) {
        //corrupt or not a preset file
        Log.e("SINE", f + " invalid because " + t.toString());
    } finally {
        if (p != null)
            try {
                p.close();
            } catch (IOException e) {
            }
    }
    return x;
}

From source file:net.sourceforge.pmd.lang.xml.ast.XmlParser.java

protected Document parseDocument(Reader reader) throws ParseException {
    nodeCache.clear();//from   w w  w .j a  v a  2 s.c  om
    try {
        String xmlData = IOUtils.toString(reader);

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setNamespaceAware(parserOptions.isNamespaceAware());
        dbf.setValidating(parserOptions.isValidating());
        dbf.setIgnoringComments(parserOptions.isIgnoringComments());
        dbf.setIgnoringElementContentWhitespace(parserOptions.isIgnoringElementContentWhitespace());
        dbf.setExpandEntityReferences(parserOptions.isExpandEntityReferences());
        dbf.setCoalescing(parserOptions.isCoalescing());
        dbf.setXIncludeAware(parserOptions.isXincludeAware());
        dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
        dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
        DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
        documentBuilder.setEntityResolver(parserOptions.getEntityResolver());
        Document document = documentBuilder.parse(new InputSource(new StringReader(xmlData)));
        DOMLineNumbers lineNumbers = new DOMLineNumbers(document, xmlData);
        lineNumbers.determine();
        return document;
    } catch (ParserConfigurationException | SAXException | IOException e) {
        throw new ParseException(e);
    }
}

From source file:org.apache.hadoop.conf.Configuration.java

private void loadResource(Properties properties, Object name, boolean quiet) {
    try {/*w ww.  j ava2 s . com*/
        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        //ignore all comments inside the xml file
        docBuilderFactory.setIgnoringComments(true);

        //allow includes in the xml file
        docBuilderFactory.setNamespaceAware(true);
        try {
            docBuilderFactory.setXIncludeAware(true);
        } catch (UnsupportedOperationException e) {
            LOG.error("Failed to set setXIncludeAware(true) for parser " + docBuilderFactory + ":" + e, e);
        }
        DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
        Document doc = null;
        Element root = null;

        if (name instanceof URL) { // an URL resource
            URL url = (URL) name;
            if (url != null) {
                if (!quiet) {
                    LOG.info("parsing " + url);
                }
                doc = builder.parse(url.toString());
            }
        } else if (name instanceof String) { // a CLASSPATH resource
            URL url = getResource((String) name);
            if (url != null) {
                if (!quiet) {
                    LOG.info("parsing " + url);
                }
                doc = builder.parse(url.toString());
            }
        } else if (name instanceof Path) { // a file resource
            // Can't use FileSystem API or we get an infinite loop
            // since FileSystem uses Configuration API.  Use java.io.File instead.
            File file = new File(((Path) name).toUri().getPath()).getAbsoluteFile();
            if (file.exists()) {
                if (!quiet) {
                    LOG.info("parsing " + file);
                }
                InputStream in = new BufferedInputStream(new FileInputStream(file));
                try {
                    doc = builder.parse(in);
                } finally {
                    in.close();
                }
            }
        } else if (name instanceof InputStream) {
            try {
                doc = builder.parse((InputStream) name);
            } finally {
                ((InputStream) name).close();
            }
        } else if (name instanceof Element) {
            root = (Element) name;
        }

        if (doc == null && root == null) {
            if (quiet)
                return;
            throw new RuntimeException(name + " not found");
        }

        if (root == null) {
            root = doc.getDocumentElement();
        }
        if (!"configuration".equals(root.getTagName()))
            LOG.fatal("bad conf file: top-level element not <configuration>");
        NodeList props = root.getChildNodes();
        for (int i = 0; i < props.getLength(); i++) {
            Node propNode = props.item(i);
            if (!(propNode instanceof Element))
                continue;
            Element prop = (Element) propNode;
            if ("configuration".equals(prop.getTagName())) {
                loadResource(properties, prop, quiet);
                continue;
            }
            if (!"property".equals(prop.getTagName()))
                LOG.warn("bad conf file: element not <property>");
            NodeList fields = prop.getChildNodes();
            String attr = null;
            String value = null;
            boolean finalParameter = false;
            for (int j = 0; j < fields.getLength(); j++) {
                Node fieldNode = fields.item(j);
                if (!(fieldNode instanceof Element))
                    continue;
                Element field = (Element) fieldNode;
                if ("name".equals(field.getTagName()) && field.hasChildNodes())
                    attr = ((Text) field.getFirstChild()).getData().trim();
                if ("value".equals(field.getTagName()) && field.hasChildNodes())
                    value = ((Text) field.getFirstChild()).getData();
                if ("final".equals(field.getTagName()) && field.hasChildNodes())
                    finalParameter = "true".equals(((Text) field.getFirstChild()).getData());
            }

            // Ignore this parameter if it has already been marked as 'final'
            if (attr != null) {
                if (value != null) {
                    if (!finalParameters.contains(attr)) {
                        properties.setProperty(attr, value);
                        if (storeResource) {
                            updatingResource.put(attr, name.toString());
                        }
                    } else if (!value.equals(properties.getProperty(attr))) {
                        LOG.warn(name + ":a attempt to override final parameter: " + attr + ";  Ignoring.");
                    }
                }
                if (finalParameter) {
                    finalParameters.add(attr);
                }
            }
        }

    } catch (IOException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    } catch (DOMException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    } catch (SAXException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    } catch (ParserConfigurationException e) {
        LOG.fatal("error parsing conf file: " + e);
        throw new RuntimeException(e);
    }
}

From source file:org.apache.hadoop.corona.ConfigManager.java

/**
 * Get the root element of the XML document
 * @return the root element of the XML document
 * @throws IOException//from  w w w  . ja v a 2  s  .  c  om
 * @throws SAXException
 * @throws ParserConfigurationException
 */
private Element getRootElement(String fileName) throws IOException, SAXException, ParserConfigurationException {
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    docBuilderFactory.setIgnoringComments(true);
    DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
    Document doc = builder.parse(new File(fileName));
    Element root = doc.getDocumentElement();
    if (!matched(root, CONFIGURATION_TAG_NAME)) {
        throw new IOException("Bad " + fileName);
    }
    return root;
}

From source file:org.apache.hadoop.hdfs.server.hightidenode.ConfigManager.java

/**
 * Updates the in-memory data structures from the config file. This file is
 * expected to be in the following whitespace-separated format:
 * Blank lines and lines starting with # are ignored.
 *  //from  w  ww .  j ava  2s  . c om
 * @throws IOException if the config file cannot be read.
 * @throws HighTideConfigurationException if configuration entries are invalid.
 * @throws ClassNotFoundException if user-defined policy classes cannot be loaded
 * @throws ParserConfigurationException if XML parser is misconfigured.
 * @throws SAXException if config file is malformed.
 * @returns A new set of policy categories.
 */
void reloadConfigs() throws IOException, ParserConfigurationException, SAXException, ClassNotFoundException,
        HighTideConfigurationException {

    if (configFileName == null) {
        return;
    }

    File file = new File(configFileName);
    if (!file.exists()) {
        throw new HighTideConfigurationException("Configuration file " + configFileName + " does not exist.");
    }

    // Read and parse the configuration file.
    // allow include files in configuration file
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    docBuilderFactory.setIgnoringComments(true);
    docBuilderFactory.setNamespaceAware(true);
    try {
        docBuilderFactory.setXIncludeAware(true);
    } catch (UnsupportedOperationException e) {
        LOG.error("Failed to set setXIncludeAware(true) for raid parser " + docBuilderFactory + ":" + e, e);
    }
    LOG.error("Reloading config file " + file);

    DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
    Document doc = builder.parse(file);
    Element root = doc.getDocumentElement();
    if (!"configuration".equalsIgnoreCase(root.getTagName()))
        throw new HighTideConfigurationException(
                "Bad configuration file: " + "top-level element not <configuration>");
    NodeList elements = root.getChildNodes();

    Set<PolicyInfo> existingPolicies = new HashSet<PolicyInfo>();

    // loop through all the configured source paths.
    for (int i = 0; i < elements.getLength(); i++) {
        Node node = elements.item(i);
        if (!(node instanceof Element)) {
            continue;
        }
        Element element = (Element) node;
        String elementTagName = element.getTagName();
        String policyName = null;
        if ("srcPath".equalsIgnoreCase(elementTagName)) {
            String srcPathPrefix = element.getAttribute("name");

            if (srcPathPrefix == null || srcPathPrefix.length() == 0) {
                throw new HighTideConfigurationException(
                        "Bad configuration file: " + "srcPath node does not have a path.");
            }
            PolicyInfo policyInfo = new PolicyInfo(srcPathPrefix, conf);
            policyName = srcPathPrefix;
            Properties policyProperties;

            // loop through all elements of this policy
            NodeList policies = element.getChildNodes();
            for (int j = 0; j < policies.getLength(); j++) {
                Node node1 = policies.item(j);
                if (!(node1 instanceof Element)) {
                    continue;
                }
                Element policy = (Element) node1;
                if ((!"property".equalsIgnoreCase(policy.getTagName()))
                        && (!"destPath".equalsIgnoreCase(policy.getTagName()))) {
                    throw new HighTideConfigurationException(
                            "Bad configuration file: " + "Expecting <property> or <destPath> for srcPath "
                                    + srcPathPrefix + " but found " + policy.getTagName());
                }

                // parse the <destPath> items
                if ("destPath".equalsIgnoreCase(policy.getTagName())) {
                    String destPath = policy.getAttribute("name");
                    if (destPath == null) {
                        throw new HighTideConfigurationException("Bad configuration file: "
                                + "<destPath> tag should have an attribute named 'name'.");
                    }
                    NodeList properties = policy.getChildNodes();
                    Properties destProperties = new Properties();
                    for (int k = 0; k < properties.getLength(); k++) {
                        Node node2 = properties.item(k);
                        if (!(node2 instanceof Element)) {
                            continue;
                        }
                        Element property = (Element) node2;
                        String propertyName = property.getTagName();
                        if (!("property".equalsIgnoreCase(propertyName))) {
                            throw new HighTideConfigurationException(
                                    "Bad configuration file: " + "<destPath> can have only <property> children."
                                            + " but found " + propertyName);
                        }
                        NodeList nl = property.getChildNodes();
                        String pname = null, pvalue = null;
                        for (int l = 0; l < nl.getLength(); l++) {
                            Node node3 = nl.item(l);
                            if (!(node3 instanceof Element)) {
                                continue;
                            }
                            Element item = (Element) node3;
                            String itemName = item.getTagName();
                            if ("name".equalsIgnoreCase(itemName)) {
                                pname = ((Text) item.getFirstChild()).getData().trim();
                            } else if ("value".equalsIgnoreCase(itemName)) {
                                pvalue = ((Text) item.getFirstChild()).getData().trim();
                            }
                        }
                        if (pname == null || pvalue == null) {
                            throw new HighTideConfigurationException("Bad configuration file: "
                                    + "All property for destPath " + destPath + "  must have name and value ");
                        }
                        LOG.info(policyName + "." + pname + " = " + pvalue);
                        destProperties.setProperty(pname, pvalue);
                    }
                    policyInfo.addDestPath(destPath, destProperties);

                } else if ("property".equalsIgnoreCase(policy.getTagName())) {
                    Element property = (Element) node1;
                    NodeList nl = property.getChildNodes();
                    String pname = null, pvalue = null;
                    for (int l = 0; l < nl.getLength(); l++) {
                        Node node3 = nl.item(l);
                        if (!(node3 instanceof Element)) {
                            continue;
                        }
                        Element item = (Element) node3;
                        String itemName = item.getTagName();
                        if ("name".equalsIgnoreCase(itemName)) {
                            pname = ((Text) item.getFirstChild()).getData().trim();
                        } else if ("value".equalsIgnoreCase(itemName)) {
                            pvalue = ((Text) item.getFirstChild()).getData().trim();
                        }
                    }
                    if (pname == null || pvalue == null) {
                        throw new HighTideConfigurationException("Bad configuration file: "
                                + "All property for srcPath " + srcPathPrefix + " must have name and value ");
                    }
                    LOG.info(policyName + "." + pname + " = " + pvalue);
                    policyInfo.setProperty(pname, pvalue);
                }
            }
            existingPolicies.add(policyInfo);
        } else {
            throw new HighTideConfigurationException("Bad configuration file: "
                    + "The top level item must be srcPath but found " + elementTagName);
        }
    }
    validateAllPolicies(existingPolicies);
    setAllPolicies(existingPolicies);
    return;
}

From source file:org.apache.hadoop.mapred.PoolManager.java

/**
 * Updates the allocation list from the allocation config file. This file is
 * expected to be in the following whitespace-separated format:
 * /*from  w w  w  .  j a v a  2 s  . co m*/
 * <code>
 * poolName1 mapAlloc reduceAlloc
 * poolName2 mapAlloc reduceAlloc
 * ...
 * </code>
 * 
 * Blank lines and lines starting with # are ignored.
 *  
 * @throws IOException if the config file cannot be read.
 * @throws AllocationConfigurationException if allocations are invalid.
 * @throws ParserConfigurationException if XML parser is misconfigured.
 * @throws SAXException if config file is malformed.
 */
public void reloadAllocs()
        throws IOException, ParserConfigurationException, SAXException, AllocationConfigurationException {
    if (allocFile == null)
        return;
    // Create some temporary hashmaps to hold the new allocs, and we only save
    // them in our fields if we have parsed the entire allocs file successfully.
    Map<String, Integer> mapAllocs = new HashMap<String, Integer>();
    Map<String, Integer> reduceAllocs = new HashMap<String, Integer>();
    Map<String, Integer> poolMaxJobs = new HashMap<String, Integer>();
    Map<String, Integer> userMaxJobs = new HashMap<String, Integer>();
    Map<String, Integer> poolMaxMaps = new HashMap<String, Integer>();
    Map<String, Integer> poolMaxReduces = new HashMap<String, Integer>();
    Map<String, Double> poolWeights = new HashMap<String, Double>();
    Map<String, SchedulingMode> poolModes = new HashMap<String, SchedulingMode>();
    Map<String, Long> minSharePreemptionTimeouts = new HashMap<String, Long>();
    int userMaxJobsDefault = Integer.MAX_VALUE;
    int poolMaxJobsDefault = Integer.MAX_VALUE;
    long fairSharePreemptionTimeout = Long.MAX_VALUE;
    long defaultMinSharePreemptionTimeout = Long.MAX_VALUE;
    SchedulingMode defaultSchedulingMode = SchedulingMode.FAIR;

    // Remember all pool names so we can display them on web UI, etc.
    List<String> poolNamesInAllocFile = new ArrayList<String>();

    // Read and parse the allocations file.
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    docBuilderFactory.setIgnoringComments(true);
    DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
    Document doc;
    if (allocFile instanceof String) {
        doc = builder.parse(new File((String) allocFile));
    } else {
        doc = builder.parse(allocFile.toString());
    }
    Element root = doc.getDocumentElement();
    if (!"allocations".equals(root.getTagName()))
        throw new AllocationConfigurationException(
                "Bad fair scheduler config " + "file: top-level element not <allocations>");
    NodeList elements = root.getChildNodes();
    for (int i = 0; i < elements.getLength(); i++) {
        Node node = elements.item(i);
        if (!(node instanceof Element))
            continue;
        Element element = (Element) node;
        if ("pool".equals(element.getTagName())) {
            String poolName = element.getAttribute("name");
            poolNamesInAllocFile.add(poolName);
            NodeList fields = element.getChildNodes();
            for (int j = 0; j < fields.getLength(); j++) {
                Node fieldNode = fields.item(j);
                if (!(fieldNode instanceof Element))
                    continue;
                Element field = (Element) fieldNode;
                if ("minMaps".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    int val = Integer.parseInt(text);
                    mapAllocs.put(poolName, val);
                } else if ("minReduces".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    int val = Integer.parseInt(text);
                    reduceAllocs.put(poolName, val);
                } else if ("maxMaps".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    int val = Integer.parseInt(text);
                    poolMaxMaps.put(poolName, val);
                } else if ("maxReduces".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    int val = Integer.parseInt(text);
                    poolMaxReduces.put(poolName, val);
                } else if ("maxRunningJobs".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    int val = Integer.parseInt(text);
                    poolMaxJobs.put(poolName, val);
                } else if ("weight".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    double val = Double.parseDouble(text);
                    poolWeights.put(poolName, val);
                } else if ("minSharePreemptionTimeout".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    long val = Long.parseLong(text) * 1000L;
                    minSharePreemptionTimeouts.put(poolName, val);
                } else if ("schedulingMode".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    poolModes.put(poolName, parseSchedulingMode(text));
                }
            }
            if (poolMaxMaps.containsKey(poolName) && mapAllocs.containsKey(poolName)
                    && poolMaxMaps.get(poolName) < mapAllocs.get(poolName)) {
                LOG.warn(String.format("Pool %s has max maps %d less than min maps %d", poolName,
                        poolMaxMaps.get(poolName), mapAllocs.get(poolName)));
            }
            if (poolMaxReduces.containsKey(poolName) && reduceAllocs.containsKey(poolName)
                    && poolMaxReduces.get(poolName) < reduceAllocs.get(poolName)) {
                LOG.warn(String.format("Pool %s has max reduces %d less than min reduces %d", poolName,
                        poolMaxReduces.get(poolName), reduceAllocs.get(poolName)));
            }
        } else if ("user".equals(element.getTagName())) {
            String userName = element.getAttribute("name");
            NodeList fields = element.getChildNodes();
            for (int j = 0; j < fields.getLength(); j++) {
                Node fieldNode = fields.item(j);
                if (!(fieldNode instanceof Element))
                    continue;
                Element field = (Element) fieldNode;
                if ("maxRunningJobs".equals(field.getTagName())) {
                    String text = ((Text) field.getFirstChild()).getData().trim();
                    int val = Integer.parseInt(text);
                    userMaxJobs.put(userName, val);
                }
            }
        } else if ("userMaxJobsDefault".equals(element.getTagName())) {
            String text = ((Text) element.getFirstChild()).getData().trim();
            int val = Integer.parseInt(text);
            userMaxJobsDefault = val;
        } else if ("poolMaxJobsDefault".equals(element.getTagName())) {
            String text = ((Text) element.getFirstChild()).getData().trim();
            int val = Integer.parseInt(text);
            poolMaxJobsDefault = val;
        } else if ("fairSharePreemptionTimeout".equals(element.getTagName())) {
            String text = ((Text) element.getFirstChild()).getData().trim();
            long val = Long.parseLong(text) * 1000L;
            fairSharePreemptionTimeout = val;
        } else if ("defaultMinSharePreemptionTimeout".equals(element.getTagName())) {
            String text = ((Text) element.getFirstChild()).getData().trim();
            long val = Long.parseLong(text) * 1000L;
            defaultMinSharePreemptionTimeout = val;
        } else if ("defaultPoolSchedulingMode".equals(element.getTagName())) {
            String text = ((Text) element.getFirstChild()).getData().trim();
            defaultSchedulingMode = parseSchedulingMode(text);
        } else {
            LOG.warn("Bad element in allocations file: " + element.getTagName());
        }
    }

    // Commit the reload; also create any pool defined in the alloc file
    // if it does not already exist, so it can be displayed on the web UI.
    synchronized (this) {
        this.mapAllocs = mapAllocs;
        this.reduceAllocs = reduceAllocs;
        this.poolMaxMaps = poolMaxMaps;
        this.poolMaxReduces = poolMaxReduces;
        this.poolMaxJobs = poolMaxJobs;
        this.userMaxJobs = userMaxJobs;
        this.poolWeights = poolWeights;
        this.minSharePreemptionTimeouts = minSharePreemptionTimeouts;
        this.userMaxJobsDefault = userMaxJobsDefault;
        this.poolMaxJobsDefault = poolMaxJobsDefault;
        this.fairSharePreemptionTimeout = fairSharePreemptionTimeout;
        this.defaultMinSharePreemptionTimeout = defaultMinSharePreemptionTimeout;
        this.defaultSchedulingMode = defaultSchedulingMode;
        for (String name : poolNamesInAllocFile) {
            Pool pool = getPool(name);
            if (poolModes.containsKey(name)) {
                pool.setSchedulingMode(poolModes.get(name));
            } else {
                pool.setSchedulingMode(defaultSchedulingMode);
            }
        }
    }
}

From source file:org.apache.hadoop.mapred.QueueConfigurationParser.java

/**
 * Method to load the resource file./*from ww w  .j ava 2 s .  com*/
 * generates the root.
 * 
 * @param resourceInput InputStream that provides the XML to parse
 * @return
 * @throws ParserConfigurationException
 * @throws SAXException
 * @throws IOException
 */
protected Queue loadResource(InputStream resourceInput)
        throws ParserConfigurationException, SAXException, IOException {
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    //ignore all comments inside the xml file
    docBuilderFactory.setIgnoringComments(true);

    //allow includes in the xml file
    docBuilderFactory.setNamespaceAware(true);
    try {
        docBuilderFactory.setXIncludeAware(true);
    } catch (UnsupportedOperationException e) {
        LOG.info("Failed to set setXIncludeAware(true) for parser " + docBuilderFactory + NAME_SEPARATOR + e);
    }
    DocumentBuilder builder = docBuilderFactory.newDocumentBuilder();
    Document doc = null;
    Element queuesNode = null;

    doc = builder.parse(resourceInput);
    queuesNode = doc.getDocumentElement();
    return this.parseResource(queuesNode);
}