Class IvyNode

  • All Implemented Interfaces:
    java.lang.Comparable

    public class IvyNode
    extends java.lang.Object
    implements java.lang.Comparable
    • Method Detail

      • loadData

        public boolean loadData​(java.lang.String rootModuleConf,
                                IvyNode parent,
                                java.lang.String parentConf,
                                java.lang.String conf,
                                boolean shouldBePublic,
                                IvyNodeUsage usage)
        After the call node may be discarded. To avoid using discarded node, make sure to get the real node after the call IvyNode node = ... node.loadData(); node = node.getRealNode(); ...
      • getDependencies

        public java.util.Collection getDependencies​(java.lang.String rootModuleConf,
                                                    java.lang.String[] confs,
                                                    java.lang.String requestedConf)
      • getDependencies

        public java.util.Collection getDependencies​(java.lang.String rootModuleConf,
                                                    java.lang.String conf,
                                                    java.lang.String requestedConf)
        Load the dependencies of the current node

        The resulting collection of nodes may have some configuration to load

        Parameters:
        rootModuleConf - the requested configuration of the root module
        conf - the configuration to load of this node
        requestedConf - the actual node conf requested, possibly extending the conf one.
        Returns:
      • hasConfigurationsToLoad

        public boolean hasConfigurationsToLoad()
      • updateConfsToFetch

        public void updateConfsToFetch​(java.util.Collection confs)
      • getRequiredConfigurations

        public java.lang.String[] getRequiredConfigurations​(IvyNode in,
                                                            java.lang.String inConf)
        returns the required configurations from the given node
        Parameters:
        in -
        Returns:
      • getRequiredConfigurations

        public java.lang.String[] getRequiredConfigurations()
        returns all the current required configurations of the node
        Returns:
      • getConfiguration

        public Configuration getConfiguration​(java.lang.String conf)
      • getConfigurations

        public java.lang.String[] getConfigurations​(java.lang.String rootModuleConf)
        Returns the configurations of the dependency required in a given root module configuration.
        Parameters:
        rootModuleConf -
        Returns:
      • isConfRequiredByMergedUsageOnly

        protected boolean isConfRequiredByMergedUsageOnly​(java.lang.String rootModuleConf,
                                                          java.lang.String conf)
      • discardConf

        public void discardConf​(java.lang.String rootModuleConf,
                                java.lang.String conf)
      • getRootModuleConfigurations

        public java.lang.String[] getRootModuleConfigurations()
        Returns the root module configurations in which this dependency is required
        Returns:
      • getRootModuleConfigurationsSet

        public java.util.Set getRootModuleConfigurationsSet()
        Returns the root module configurations in which this dependency is required
        Returns:
      • getConfsToFetch

        public java.lang.String[] getConfsToFetch()
      • getRealConfs

        public java.lang.String[] getRealConfs​(java.lang.String conf)
      • getAllArtifacts

        public Artifact[] getAllArtifacts()
        Returns all the artifacts of this dependency required in all the root module configurations
        Returns:
      • getSelectedArtifacts

        public Artifact[] getSelectedArtifacts​(Filter artifactFilter)
        Returns all the artifacts of this dependency required in the root module configurations in which the node is not evicted nor blacklisted
        Parameters:
        artifactFilter -
        Returns:
      • getArtifacts

        public Artifact[] getArtifacts​(java.lang.String rootModuleConf)
        Returns the artifacts of this dependency required in the configurations themselves required in the given root module configuration
        Parameters:
        rootModuleConf -
        Returns:
      • hasProblem

        public boolean hasProblem()
      • getProblem

        public java.lang.Exception getProblem()
      • getProblemMessage

        public java.lang.String getProblemMessage()
      • isDownloaded

        public boolean isDownloaded()
      • isSearched

        public boolean isSearched()
      • isLoaded

        public boolean isLoaded()
      • isFetched

        public boolean isFetched​(java.lang.String conf)
      • getRoot

        public IvyNode getRoot()
      • getRealNode

        public IvyNode getRealNode()
      • getModuleId

        public ModuleId getModuleId()
      • getPublication

        public long getPublication()
      • getLastModified

        public long getLastModified()
        Returns the last modified timestamp of the module represented by this Node, or 0 if the last modified timestamp is currently unkwown (module not loaded)
        Returns:
        the last modified timestamp of the module represented by this Node
      • clean

        public void clean()
        Clean data related to one root module configuration only
      • getAllCallersModuleIds

        public java.util.Collection getAllCallersModuleIds()
      • addCaller

        public void addCaller​(java.lang.String rootModuleConf,
                              IvyNode callerNode,
                              java.lang.String callerConf,
                              java.lang.String requestedConf,
                              java.lang.String[] dependencyConfs,
                              DependencyDescriptor dd)
      • doesCallersExclude

        public boolean doesCallersExclude​(java.lang.String rootModuleConf,
                                          Artifact artifact,
                                          java.util.Stack callersStack)
      • getResolvedNodes

        public java.util.Set getResolvedNodes​(ModuleId moduleId,
                                              java.lang.String rootModuleConf)
        A copy of the set of resolved nodes (real nodes)
      • getResolvedRevisions

        public java.util.Collection getResolvedRevisions​(ModuleId moduleId,
                                                         java.lang.String rootModuleConf)
      • getAllEvictingConflictManagers

        public java.util.Collection getAllEvictingConflictManagers()
      • getAllEvictingNodes

        public java.util.Collection getAllEvictingNodes()
      • getAllEvictingNodesDetails

        public java.util.Collection getAllEvictingNodesDetails()
      • getEvictedConfs

        public java.lang.String[] getEvictedConfs()
      • getEvictedNodes

        public java.util.Collection getEvictedNodes​(ModuleId mid,
                                                    java.lang.String rootModuleConf)
      • getEvictedRevisions

        public java.util.Collection getEvictedRevisions​(ModuleId mid,
                                                        java.lang.String rootModuleConf)
      • isCompletelyEvicted

        public boolean isCompletelyEvicted()
      • isEvicted

        public boolean isEvicted​(java.lang.String rootModuleConf)
      • markEvicted

        public void markEvicted​(java.lang.String rootModuleConf,
                                IvyNode node,
                                ConflictManager conflictManager,
                                java.util.Collection resolved)
      • setEvictedNodes

        public void setEvictedNodes​(ModuleId moduleId,
                                    java.lang.String rootModuleConf,
                                    java.util.Collection evicted)
      • setResolvedNodes

        public void setResolvedNodes​(ModuleId moduleId,
                                     java.lang.String rootModuleConf,
                                     java.util.Collection resolved)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • compareTo

        public int compareTo​(java.lang.Object obj)
        Specified by:
        compareTo in interface java.lang.Comparable
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getPendingConflicts

        public java.util.Collection getPendingConflicts​(java.lang.String rootModuleConf,
                                                        ModuleId mid)
        Returns a collection of Nodes in conflict for which conflict has been detected but conflict resolution hasn't been done yet
        Parameters:
        rootModuleConf -
        mid - the module id for which pending conflicts should be found
        Returns:
        a Collection of IvyNode in pending conflict
      • setPendingConflicts

        public void setPendingConflicts​(ModuleId moduleId,
                                        java.lang.String rootModuleConf,
                                        java.util.Collection conflicts)
      • blacklist

        public void blacklist​(IvyNodeBlacklist bdata)
        Blacklists the current node, so that a new resolve process won't ever consider this node as available in the repository.

        This is useful in combination with RestartResolveProcess for conflict manager implementation which use a best effort strategy to find compatible dependency set, like LatestCompatibleConflictManager

        Parameters:
        rootModuleConf - the root module configuration in which the node should be blacklisted
      • isBlacklisted

        public boolean isBlacklisted​(java.lang.String rootModuleConf)
        Indicates if this node has been blacklisted in the given root module conf.

        A blacklisted node should be considered as if it doesn't even exist on the repository.

        Parameters:
        rootModuleConf - the root module conf for which we'd like to know if the node is blacklisted
        Returns:
        true if this node is blacklisted int he given root module conf, false otherwise
        See Also:
        #blacklist(String)
      • isCompletelyBlacklisted

        public boolean isCompletelyBlacklisted()
        Indicates if this node has been blacklisted in all root module configurations.
        Returns:
        true if this node is blacklisted in all root module configurations, false otherwise
        See Also:
        #blacklist(String)
      • getBlacklistData

        public IvyNodeBlacklist getBlacklistData​(java.lang.String rootModuleConf)
        Returns the blacklist data of this node in the given root module conf, or null if this node is not blacklisted in this root module conf.
        Parameters:
        rootModuleConf - the root module configuration to consider
        Returns:
        the blacklist data if any
      • hasAnyMergedUsageWithTransitiveDependency

        public boolean hasAnyMergedUsageWithTransitiveDependency​(java.lang.String rootModuleConf)
        Indicates if there is any of the merged usages of this node which has a depender with transitive dependency descriptor.

        If at there is at least one usage from the merged usages for which there is a depender in the given root module conf which has a dependency descriptor with transitive == true, then it returns true. Otherwise it returns false.

        Parameters:
        rootModuleConf - the root module configuration to consider
        Returns:
        true if there is any merged usage with transitive dd, false otherwise.