public boolean check()

in src/java/org/apache/ivy/core/check/CheckEngine.java [59:127]


    public boolean check(URL ivyFile, String resolvername) {
        try {
            boolean result = true;
            // parse ivy file
            ModuleDescriptor md = ModuleDescriptorParserRegistry.getInstance().parseDescriptor(
                settings, ivyFile, settings.doValidate());

            // check publications if possible
            if (resolvername != null) {
                DependencyResolver resolver = settings.getResolver(resolvername);
                Set<Artifact> artifacts = new HashSet<>();
                for (String conf : md.getConfigurationsNames()) {
                    artifacts.addAll(Arrays.asList(md.getArtifacts(conf)));
                }
                for (Artifact artifact : artifacts) {
                    if (!resolver.exists(artifact)) {
                        Message.info("declared publication not found: " + artifact);
                        result = false;
                    }
                }
            }

            // check dependencies
            ResolveData data = new ResolveData(resolveEngine, new ResolveOptions());
            for (DependencyDescriptor dd : md.getDependencies()) {
                // check master confs
                for (String masterConf : dd.getModuleConfigurations()) {
                    if (!"*".equals(masterConf.trim()) && md.getConfiguration(masterConf) == null) {
                        Message.info("dependency required in non existing conf for " + ivyFile
                                + " \n\tin " + dd + ": " + masterConf);
                        result = false;
                    }
                }
                // resolve
                DependencyResolver resolver = settings.getResolver(dd.getDependencyRevisionId());
                ResolvedModuleRevision rmr = resolver.getDependency(dd, data);
                if (rmr == null) {
                    Message.info("dependency not found in " + ivyFile + ":\n\t" + dd);
                    result = false;
                } else {
                    for (String depConf : dd.getDependencyConfigurations(md.getConfigurationsNames())) {
                        if (!Arrays.asList(rmr.getDescriptor().getConfigurationsNames())
                                .contains(depConf)) {
                            Message.info("dependency configuration is missing for " + ivyFile
                                    + "\n\tin " + dd + ": " + depConf);
                            result = false;
                        }
                        for (Artifact art : rmr.getDescriptor().getArtifacts(depConf)) {
                            if (!resolver.exists(art)) {
                                Message.info("dependency artifact is missing for " + ivyFile
                                        + "\n\t in " + dd + ": " + art);
                                result = false;
                            }
                        }
                    }
                }
            }
            return result;
        } catch (ParseException e) {
            Message.info("parse problem on " + ivyFile, e);
            return false;
        } catch (IOException e) {
            Message.info("io problem on " + ivyFile, e);
            return false;
        } catch (Exception e) {
            Message.info("problem on " + ivyFile, e);
            return false;
        }
    }