Package org.apache.ivy.core.module.descriptor

Examples of org.apache.ivy.core.module.descriptor.DependencyDescriptor


        DependencyDescriptor[] dependencies = md.getDependencies();
        assertNotNull(dependencies);
        assertEquals(2, dependencies.length);
       
        // no conf def => defaults to defaultConf: *->*
        DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));       

        // confs def: conf2,conf3->*
        dd = getDependency(dependencies, "mymodule2");
        assertEquals(new HashSet(Arrays.asList(new String[] {"conf2", "conf3"})), new HashSet(Arrays.asList(dd.getModuleConfigurations())));
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf2")));       
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf3")));       
    }
View Full Code Here


        DependencyDescriptor[] dependencies = md.getDependencies();
        assertNotNull(dependencies);
        assertEquals(2, dependencies.length);
       
        // no conf def => defaults to defaultConf defined in imported file: *->@
        DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"conf1"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));       
        assertEquals(Arrays.asList(new String[] {"conf2"}), Arrays.asList(dd.getDependencyConfigurations("conf2")));       

        // confs def: conf1->*
        dd = getDependency(dependencies, "mymodule2");
        assertEquals(Arrays.asList(new String[] {"conf1"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));       
    }
View Full Code Here

        DependencyDescriptor[] dependencies = md.getDependencies();
        assertNotNull(dependencies);
        assertEquals(2, dependencies.length);
       
        // confs dep1: conf1->A;conf2->B (mappingoverride = true)
        DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
        assertEquals(Arrays.asList(new String[] {"conf1", "conf2"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"A"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));
        assertEquals(Arrays.asList(new String[] {"B"}), Arrays.asList(dd.getDependencyConfigurations("conf2")))
       
        // confs dep2: conf2->B
        dd = getDependency(dependencies, "mymodule2");
        assertEquals(Arrays.asList(new String[] {"conf2"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"B"}), Arrays.asList(dd.getDependencyConfigurations("conf2")))
    }
View Full Code Here

        DependencyDescriptor[] dependencies = md.getDependencies();
        assertNotNull(dependencies);
        assertEquals(2, dependencies.length);
       
        // confs dep1: all-public->all-public (mappingoverride = true)
        DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
        assertEquals(Arrays.asList(new String[] {"all-public"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"all-public"}), Arrays.asList(dd.getDependencyConfigurations("all-public")));
       
        // confs dep2: extra->extra;all-public->all-public (mappingoverride = true)
        dd = getDependency(dependencies, "mymodule2");
        assertEquals(Arrays.asList(new String[] {"extra", "all-public"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"extra"}), Arrays.asList(dd.getDependencyConfigurations("extra")))
        assertEquals(Arrays.asList(new String[] {"all-public"}), Arrays.asList(dd.getDependencyConfigurations("all-public")))
    }
View Full Code Here

        DependencyDescriptor[] dependencies = md.getDependencies();
        assertNotNull(dependencies);
        assertEquals(3, dependencies.length);
       
        // confs dep1: *->default1,default3
        DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"default1", "default3"}), Arrays.asList(dd.getDependencyConfigurations("default")));
       
        // confs dep2: test->default2,default3
        dd = getDependency(dependencies, "mymodule2");
        assertEquals(Arrays.asList(new String[] {"test"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"default2", "default3"}), Arrays.asList(dd.getDependencyConfigurations("test")))
       
        // confs dep3: *->default4
        dd = getDependency(dependencies, "mymodule3");
        assertEquals(Arrays.asList(new String[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
        assertEquals(Arrays.asList(new String[] {"default4"}), Arrays.asList(dd.getDependencyConfigurations("bla")))
    }
View Full Code Here

                    _data.getReport().addDependency(this);
                    return false;
                }
                try {
                    Message.debug("\tusing "+resolver+" to resolve "+getId());
                    DependencyDescriptor dependencyDescriptor = getDependencyDescriptor(parent);
                    _data.getEventManager().fireIvyEvent(new StartResolveDependencyEvent(resolver, dependencyDescriptor));
                    _module = resolver.getDependency(dependencyDescriptor, _data);
                    _data.getEventManager().fireIvyEvent(new EndResolveDependencyEvent(resolver, dependencyDescriptor, _module));
                    if (_module != null) {
                        _data.getCacheManager().saveResolver(_module.getDescriptor(), _module.getResolver().getName());
                        _data.getCacheManager().saveArtResolver(_module.getDescriptor(), _module.getArtifactResolver().getName());
                        if (_settings.logModuleWhenFound()) {
                            Message.info("\tfound "+_module.getId()+" in "+_module.getResolver().getName());
                        } else {
                            Message.verbose("\tfound "+_module.getId()+" in "+_module.getResolver().getName());
                        }
                       
                        if (_data.getSettings().getVersionMatcher().isDynamic(getId())) {
                            // IVY-56: check if revision has actually been resolved
                            if (_data.getSettings().getVersionMatcher().isDynamic(_module.getId())) {
                                Message.error("impossible to resolve dynamic revision for "+getId()+": check your configuration and make sure revision is part of your pattern");
                                _problem = new RuntimeException("impossible to resolve dynamic revision");
                                _data.getReport().addDependency(this);
                                return false;
                            }
                            IvyNode resolved = _data.getNode(_module.getId());
                            if (resolved != null) {
                                // exact revision has already been resolved
                                // => update it and discard this node
                                _md = _module.getDescriptor(); // needed for handleConfiguration
                                if (!handleConfiguration(loaded, rootModuleConf, parent, parentConf, conf, shouldBePublic)) {
                                    return false;
                                }
                               
                                if (resolved._md == null) {
                                  resolved._md = _md;
                                }
                                if (resolved._module == null) {
                                  resolved._module = _module;
                                }
                                resolved._downloaded |= _module.isDownloaded();
                                resolved._searched |= _module.isSearched()
                                resolved._dds.putAll(_dds);
                                resolved.updateDataFrom(this, rootModuleConf);
                                resolved.loadData(rootModuleConf, parent, parentConf, conf, shouldBePublic);
                                DependencyDescriptor dd = dependencyDescriptor;
                                if (dd != null) {
                                    resolved.addDependencyArtifacts(rootModuleConf, dd.getDependencyArtifacts(parentConf));
                                    resolved.addDependencyIncludes(rootModuleConf, dd.getIncludeRules(parentConf));
                                }
                                _data.replaceNode(getId(), resolved, rootModuleConf); // this actually discards the node

                                if (_settings.logResolvedRevision()) {
                                    Message.info("\t["+_module.getId().getRevision()+"] "+getId());
                                } else {
                                    Message.verbose("\t["+_module.getId().getRevision()+"] "+getId());
                                }
                               
                                return true;
                            }
                        }
                        _downloaded = _module.isDownloaded();
                        _searched = _module.isSearched();
                    } else {
                        Message.warn("\tmodule not found: "+getId());
                        resolver.reportFailure();
                        _problem = new RuntimeException("not found");
                    }
                } catch (Exception e) {
                    _problem = e;
                }
               
                // still not resolved, report error
                if (_module == null) {
                    _data.getReport().addDependency(this);
                    return false;
                } else {
                    loaded = true;
                    if (_settings.getVersionMatcher().isDynamic(getId())) {
                        if (_settings.logResolvedRevision()) {
                            Message.info("\t["+_module.getId().getRevision()+"] "+getId());
                        } else {
                            Message.verbose("\t["+_module.getId().getRevision()+"] "+getId());
                        }
                    }
                    _md = _module.getDescriptor();
                    _confsToFetch.remove("*");
                    updateConfsToFetch(
                        Arrays.asList(
                            resolveSpecialConfigurations(
                                getRequiredConfigurations(parent, parentConf), this)));
               
            } else {
                loaded = true;
            }
        }
        if (hasProblem()) {
            _data.getReport().addDependency(this);
            return handleConfiguration(loaded, rootModuleConf, parent, parentConf, conf, shouldBePublic) && loaded;
        }
        if (!handleConfiguration(loaded, rootModuleConf, parent, parentConf, conf, shouldBePublic)) {
            return false;
        }
        DependencyDescriptor dd = getDependencyDescriptor(parent);
        if (dd != null) {
            addDependencyArtifacts(rootModuleConf, dd.getDependencyArtifacts(parentConf));
            addDependencyIncludes(rootModuleConf, dd.getIncludeRules(parentConf));
        }
        return loaded;
       
    }
View Full Code Here

            throw new IllegalStateException("impossible to get dependencies when data has not been loaded");
        }
        DependencyDescriptor[] dds = _md.getDependencies();
        Collection dependencies = new LinkedHashSet(); // it's important to respect dependencies order
        for (int i = 0; i < dds.length; i++) {
            DependencyDescriptor dd = dds[i];
            String[] dependencyConfigurations = dd.getDependencyConfigurations(conf, requestedConf);
            if (dependencyConfigurations.length == 0) {
                // no configuration of the dependency is required for current confs :
                // it is exactly the same as if there was no dependency at all on it
                continue;
            }
            if (isDependencyModuleExcluded(rootModuleConf, dd.getDependencyRevisionId(), conf)) {
                // the whole module is excluded, it is considered as not being part of dependencies at all
                Message.verbose("excluding "+dd.getDependencyRevisionId()+" in "+conf);
                continue;
            }
            IvyNode depNode = _data.getNode(dd.getDependencyRevisionId());
            if (depNode == null) {
                depNode = new IvyNode(_data, this, dd);
            } else {
                depNode.addDependencyDescriptor(this, dd);
                if (depNode.hasProblem()) {
View Full Code Here

    }
   
    public ResolvedModuleRevision getDependency(DependencyDescriptor dd, ResolveData data) throws ParseException {
      IvyContext.getContext().pushResolver(this);
      try {
        DependencyDescriptor systemDd = dd;
        dd = fromSystem(dd);

        clearIvyAttempts();
        clearArtifactAttempts();
        boolean downloaded = false;
        boolean searched = false;
        ModuleRevisionId mrid = dd.getDependencyRevisionId();
        // check revision
        int index = mrid.getRevision().indexOf("@");
        if (index != -1 && !mrid.getRevision().substring(index+1).equals(_workspaceName)) {
          Message.verbose("\t"+getName()+": unhandled revision => "+mrid.getRevision());
          return null;
        }

        boolean isDynamic = getSettings().getVersionMatcher().isDynamic(mrid);
        if (isDynamic && !acceptLatest()) {
          Message.error("dynamic revisions not handled by "+getClass().getName()+". impossible to resolve "+mrid);
          return null;
        }

        boolean isChangingRevision = getChangingMatcher().matches(mrid.getRevision());       
        boolean isChangingDependency = isChangingRevision || dd.isChanging();

        // if we do not have to check modified and if the revision is exact and not changing, 
        // we first search for it in cache
        ResolvedModuleRevision cachedRmr = null;
        boolean checkedCache = false;
        if (!isDynamic && !isCheckmodified() && !isChangingDependency) {
          cachedRmr = findModuleInCache(data, mrid);
          checkedCache = true;
          if (cachedRmr != null) {
            if (cachedRmr.getDescriptor().isDefault() && cachedRmr.getResolver() != this) {
              Message.verbose("\t"+getName()+": found revision in cache: "+mrid+" (resolved by "+cachedRmr.getResolver().getName()+"): but it's a default one, maybe we can find a better one");
            } else {
              Message.verbose("\t"+getName()+": revision in cache: "+mrid);
              return toSystem(cachedRmr);
            }
          }
        }
        checkInterrupted();
        URL cachedIvyURL = null;
        ResolvedResource ivyRef = findIvyFileRef(dd, data);
        checkInterrupted();
        searched = true;

        // get module descriptor
        ModuleDescriptorParser parser;
        ModuleDescriptor md;
        ModuleDescriptor systemMd = null;
        if (ivyRef == null) {
          if (!isAllownomd()) {
            Message.verbose("\t"+getName()+": no ivy file found for "+mrid);
            return null;
          }
          parser = XmlModuleDescriptorParser.getInstance();
          md = DefaultModuleDescriptor.newDefaultInstance(mrid, dd.getAllDependencyArtifacts());
          ResolvedResource artifactRef = findFirstArtifactRef(md, dd, data);
          checkInterrupted();
          if (artifactRef == null) {
            Message.verbose("\t"+getName()+": no ivy file nor artifact found for "+mrid);
            String[] conf = md.getConfigurationsNames();
            for (int i = 0; i < conf.length; i++) {
              Artifact[] artifacts = md.getArtifacts(conf[i]);
              for (int j = 0; j < artifacts.length; j++) {
              }
            }
            if (!checkedCache) {
              cachedRmr = findModuleInCache(data, mrid);
            }
            if (cachedRmr != null) {
              Message.verbose("\t"+getName()+": revision in cache: "+mrid);
              return toSystem(cachedRmr);                   
            }
            return null;
          } else {
            long lastModified = artifactRef.getLastModified();
            if (lastModified != 0 && md instanceof DefaultModuleDescriptor) {
              ((DefaultModuleDescriptor) md).setLastModified(lastModified);
            }
            Message.verbose("\t"+getName()+": no ivy file found for "+mrid+": using default data");           
            if (isDynamic) {
              md.setResolvedModuleRevisionId(ModuleRevisionId.newInstance(mrid, artifactRef.getRevision()));
            }
          }
        } else {
          ResolvedModuleRevision rmr = null;
          if (ivyRef instanceof MDResolvedResource) {
            rmr = ((MDResolvedResource)ivyRef).getResolvedModuleRevision();
          }
          if (rmr == null) {
            rmr = parse(ivyRef, dd, data);
            if (rmr == null) {
              return null;
            }
          }
          if (!rmr.isDownloaded()) {
            return toSystem(rmr);
          } else {
            md = rmr.getDescriptor();
            parser = ModuleDescriptorParserRegistry.getInstance().getParser(ivyRef.getResource());
            cachedIvyURL = rmr.getLocalMDUrl();

            // check descriptor data is in sync with resource revision and names
            systemMd = toSystem(md);
            if (_checkconsistency) {
              checkDescriptorConsistency(mrid, md, ivyRef);
              checkDescriptorConsistency(systemDd.getDependencyRevisionId(), systemMd, ivyRef);
            } else {
              if (md instanceof DefaultModuleDescriptor) {
                String revision = getRevision(ivyRef, mrid, md);
                ((DefaultModuleDescriptor)md).setModuleRevisionId(ModuleRevisionId.newInstance(mrid, revision));
              } else {
                Message.warn("consistency disabled with instance of non DefaultModuleDescriptor... module info can't be updated, so consistency check will be done");
                checkDescriptorConsistency(mrid, md, ivyRef);
                checkDescriptorConsistency(systemDd.getDependencyRevisionId(), systemMd, ivyRef);
              }
            }
          }
        }
View Full Code Here

            Properties props = new Properties();
            if (dependencies.length > 0) {
              IvyNode root = dependencies[0].getRoot();
              for (int i = 0; i < dependencies.length; i++) {
                if (!dependencies[i].isCompletelyEvicted() && !dependencies[i].hasProblem()) {
                  DependencyDescriptor dd = dependencies[i].getDependencyDescriptor(root);
                  if (dd != null) {
                    String rev = dependencies[i].getResolvedId().getRevision();
                    String status = dependencies[i].getDescriptor().getStatus();
                    props.put(dd.getDependencyRevisionId().encodeToString(), rev+" "+status);
                  }
                }
              }
            }
            props.store(new FileOutputStream(ivyPropertiesInCache), md.getResolvedModuleRevisionId()+ " resolved revisions");
View Full Code Here

        for (int i = 0; i < extendedConfs.length; i++) {
            fetchDependencies(node, extendedConfs[i], false);
        }
       
        // now we can actually resolve this configuration dependencies
        DependencyDescriptor dd = node.getDependencyDescriptor();
        if (!isDependenciesFetched(node.getNode(), conf) && (dd == null || node.isTransitive())) {
            Collection dependencies = node.getDependencies(conf);
            for (Iterator iter = dependencies.iterator(); iter.hasNext();) {
                VisitNode dep = (VisitNode)iter.next();
                dep.useRealNode(); // the node may have been resolved to another real one while resolving other deps
View Full Code Here

TOP

Related Classes of org.apache.ivy.core.module.descriptor.DependencyDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.