replaceConfigurationWildcards();
    private void parse(URL xmlURL, Resource res, boolean validate) throws ParseException, IOException {        try {            setResource(res);            URL schemaURL = validate?getClass().getResource("ivy.xsd"):null;            XMLHelper.parse(xmlURL, schemaURL, this);            checkConfigurations();            if (!_artifactsDeclared) {                String[] confs = _md.getConfigurationsNames();                for (int i = 0; i < confs.length; i++) {                    _md.addArtifact(confs[i], new MDArtifact(_md, _md.getModuleRevisionId().getName(), "jar", "jar"));                }            }            _md.check();        } catch (ParserConfigurationException ex) {            IllegalStateException ise = new IllegalStateException(ex.getMessage()+" in "+xmlURL);            ise.initCause(ex);            throw ise;        } catch (Exception ex) {            checkErrors();            ParseException pe = new ParseException(ex.getMessage()+" in "+xmlURL, 0);            pe.initCause(ex);            throw pe;        }    }