Class Ivy


  • public class Ivy
    extends java.lang.Object
    Ivy is a free java based dependency manager.

    This class is the main class of Ivy, which acts as a Facade to all services offered by Ivy:

    • resolve dependencies
    • retrieve artifacts to a local location
    • deliver and publish modules
    • repository search and listing
    Here is one typical usage:
     Ivy ivy = Ivy.newInstance();
     ivy.configure(new URL("ivysettings.xml"));
     ivy.resolve(new URL("ivy.xml"));
     

    Using Ivy engines directly

    If the methods offered by the Ivy class are not flexible enough and you want to use Ivy engines directly, you need to call the methods within a single IvyContext associated to the Ivy instance you use.

    To do so, it is recommended to use the execute(org.apache.ivy.Ivy.IvyCallback) method like this:

     Ivy ivy = Ivy.newInstance();
     ivy.execute(new IvyCallback() {
         public Object doInIvyContext(Ivy ivy, IvyContext context) {
             // obviously we can use regular Ivy methods in the callback
             ivy.configure(new URL("ivysettings.xml"));
             // and we can safely use Ivy engines too
             ivy.getResolveEngine().resolve(new URL("ivy.xml"));
             return null;
         }
     });
     
    • Field Detail

      • DATE_FORMAT

        @Deprecated
        public static final java.text.SimpleDateFormat DATE_FORMAT
        Deprecated.
        Use the DateUtil utility class instead.
    • Constructor Detail

      • Ivy

        public Ivy()
        The default constructor of Ivy allows to create an instance of Ivy with none of its dependencies (engines, settings, ...) created. If you use this constructor, it's your responsibility to set the dependencies of Ivy using the appropriate setters (setResolveEngine, ...). You can also call the bind method to set all the dependencies except those that you have provided using the setters. If you want to get an instance ready to use, prefer the use of Ivy.newInstance().
    • Method Detail

      • getIvyVersion

        public static java.lang.String getIvyVersion()
        Returns the current version of Ivy, as displayed on the console when Ivy is initialized.
        Returns:
        the current version of Ivy
      • getIvyDate

        public static java.lang.String getIvyDate()
        Returns the date at which this version of Ivy has been built.

        May be empty if unknown.

        Returns:
        the date at which this version of Ivy has been built
      • getIvyHomeURL

        public static java.lang.String getIvyHomeURL()
        Returns the URL at which Ivy web site can be found.
        Returns:
        the URL at which Ivy web site can be found
      • newInstance

        public static Ivy newInstance()
      • newInstance

        public static Ivy newInstance​(IvySettings settings)
      • bind

        public void bind()
        This method is used to bind this Ivy instance to required dependencies, i.e. instance of settings, engines, and so on.

        After this call Ivy is still not configured, which means that the settings object is still empty.

      • execute

        public java.lang.Object execute​(Ivy.IvyCallback callback)
        Executes the given callback in the context of this Ivy instance.

        Alternatively you can use the pushContext() and popContext() methods, but this is not recommended:

         Object result = null;
         pushContext();
         try {
             result = callback.doInIvyContext(this, IvyContext.getContext());
         } finally {
             popContext();
         }
         doSomethingWithResult(result);
         
        Parameters:
        callback - IvyCallback
        Returns:
        Object
      • pushContext

        public void pushContext()
        Pushes a new IvyContext bound to this Ivy instance if the current context is not already bound to this Ivy instance. If the current context is already bound to this Ivy instance, it pushes the current context on the context stack, so that you can (and must) always call popContext() when you're done.

        Alternatively, you can use the execute(org.apache.ivy.Ivy.IvyCallback) method which takes care of everything for you.

      • popContext

        public void popContext()
        Pops the current Ivy context.

        You must call this method once and only once for each call to pushContext(), when you're done with the your Ivy related work.

        Alternatively, you can use the execute(org.apache.ivy.Ivy.IvyCallback) method which takes care of everything for you.

      • configure

        public void configure​(java.io.File settingsFile)
                       throws java.text.ParseException,
                              java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • configure

        public void configure​(java.net.URL settingsURL)
                       throws java.text.ParseException,
                              java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • configureDefault

        public void configureDefault()
                              throws java.text.ParseException,
                                     java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • configureDefault14

        public void configureDefault14()
                                throws java.text.ParseException,
                                       java.io.IOException
        Configures Ivy with 1.4 compatible default settings
        Throws:
        java.text.ParseException - if something goes wrong
        java.io.IOException - if something goes wrong
      • check

        public boolean check​(java.net.URL ivyFile,
                             java.lang.String resolvername)
      • resolve

        public ResolveReport resolve​(java.io.File ivySource)
                              throws java.text.ParseException,
                                     java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • resolve

        public ResolveReport resolve​(java.net.URL ivySource)
                              throws java.text.ParseException,
                                     java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • resolve

        public ResolveReport resolve​(ModuleRevisionId mrid,
                                     ResolveOptions options,
                                     boolean changing)
                              throws java.text.ParseException,
                                     java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • resolve

        public ResolveReport resolve​(java.net.URL ivySource,
                                     ResolveOptions options)
                              throws java.text.ParseException,
                                     java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • resolve

        public ResolveReport resolve​(java.io.File ivySource,
                                     ResolveOptions options)
                              throws java.text.ParseException,
                                     java.io.IOException
        Throws:
        java.text.ParseException
        java.io.IOException
      • retrieve

        @Deprecated
        public int retrieve​(ModuleRevisionId mrid,
                            java.lang.String destFilePattern,
                            RetrieveOptions options)
                     throws java.io.IOException
        Deprecated.
        Throws:
        java.io.IOException
      • deliver

        public void deliver​(ModuleRevisionId mrid,
                            java.lang.String revision,
                            java.lang.String destIvyPattern)
                     throws java.io.IOException,
                            java.text.ParseException
        Throws:
        java.io.IOException
        java.text.ParseException
      • deliver

        public void deliver​(java.lang.String revision,
                            java.lang.String destIvyPattern,
                            DeliverOptions options)
                     throws java.io.IOException,
                            java.text.ParseException
        Throws:
        java.io.IOException
        java.text.ParseException
      • deliver

        public void deliver​(ModuleRevisionId mrid,
                            java.lang.String revision,
                            java.lang.String destIvyPattern,
                            DeliverOptions options)
                     throws java.io.IOException,
                            java.text.ParseException
        Example of use: deliver(mrid, "1.5", "target/ivy/ivy-[revision].xml", DeliverOptions.newInstance(settings).setStatus("release").setValidate(false));
        Parameters:
        mrid - ModuleRevisionId
        revision - String
        destIvyPattern - String
        options - DeliverOptions
        Throws:
        java.io.IOException - if something goes wrong
        java.text.ParseException - if something goes wrong
      • publish

        public java.util.Collection<Artifact> publish​(ModuleRevisionId mrid,
                                                      java.util.Collection<java.lang.String> srcArtifactPattern,
                                                      java.lang.String resolverName,
                                                      PublishOptions options)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • sortNodes

        public java.util.List<IvyNode> sortNodes​(java.util.Collection<IvyNode> nodes,
                                                 SortOptions options)
        Sorts the collection of IvyNode from the less dependent to the more dependent
        Parameters:
        nodes - Collection<IvyNode>
        options - SortOptions
        Returns:
        List<IvyNode>
      • sortModuleDescriptors

        public java.util.List<ModuleDescriptor> sortModuleDescriptors​(java.util.Collection<ModuleDescriptor> moduleDescriptors,
                                                                      SortOptions options)
        Sorts the given ModuleDescriptors from the less dependent to the more dependent. This sort ensures that a ModuleDescriptor is always found in the list before all ModuleDescriptors depending directly on it.
        Parameters:
        moduleDescriptors - a Collection of ModuleDescriptor to sort
        options - Options to use to sort the descriptors.
        Returns:
        a List of sorted ModuleDescriptors
        Throws:
        CircularDependencyException - if a circular dependency exists and circular dependency strategy decide to throw an exception
      • listModules

        public java.lang.String[] listModules​(java.lang.String org)
      • listOrganisations

        public java.lang.String[] listOrganisations()
      • listRevisions

        public java.lang.String[] listRevisions​(java.lang.String org,
                                                java.lang.String module)
      • listTokenValues

        public java.lang.String[] listTokenValues​(java.lang.String token,
                                                  java.util.Map<java.lang.String,​java.lang.Object> otherTokenValues)
      • interrupt

        public void interrupt()
        Interrupts the current running operation, no later than interruptTimeout milliseconds after the call
      • interrupt

        public void interrupt​(java.lang.Thread operatingThread)
        Interrupts the current running operation in the given operating thread, no later than interruptTimeout milliseconds after the call
        Parameters:
        operatingThread - Thread
      • isInterrupted

        public boolean isInterrupted()
      • checkInterrupted

        public void checkInterrupted()
        Check if the current operation has been interrupted, and if it is the case, throw a runtime exception
      • getWorkingRevision

        public static java.lang.String getWorkingRevision()
      • getVariable

        public java.lang.String getVariable​(java.lang.String name)
      • substitute

        public java.lang.String substitute​(java.lang.String str)
      • setVariable

        public void setVariable​(java.lang.String varName,
                                java.lang.String value)
      • setCheckEngine

        public void setCheckEngine​(CheckEngine checkEngine)
      • setDeliverEngine

        public void setDeliverEngine​(DeliverEngine deliverEngine)
      • setInstallEngine

        public void setInstallEngine​(InstallEngine installEngine)
      • setPublishEngine

        public void setPublishEngine​(PublishEngine publishEngine)
      • setResolveEngine

        public void setResolveEngine​(ResolveEngine resolveEngine)
      • setRetrieveEngine

        public void setRetrieveEngine​(RetrieveEngine retrieveEngine)
      • setSearchEngine

        public void setSearchEngine​(SearchEngine searchEngine)
      • getSortEngine

        public SortEngine getSortEngine()
      • setSortEngine

        public void setSortEngine​(SortEngine sortEngine)
      • setEventManager

        public void setEventManager​(EventManager eventManager)
      • setSettings

        public void setSettings​(IvySettings settings)