fr.jayasoft.ivy
Class Ivy

java.lang.Object
  extended by fr.jayasoft.ivy.Ivy
All Implemented Interfaces:
fr.jayasoft.ivy.repository.TransferListener, java.util.EventListener

public class Ivy
extends java.lang.Object
implements fr.jayasoft.ivy.repository.TransferListener

Ivy is a free java based dependency manager. This class is the main class of Ivy, which offers mainly dependency resolution. Here is one typical usage: Ivy ivy = new Ivy(); ivy.configure(new URL("ivyconf.xml")); ivy.resolve(new URL("ivy.xml"), null, new String[] {"*"}, null, null, true);

Author:
x.hanin

Field Summary
static java.text.SimpleDateFormat DATE_FORMAT
           
 
Constructor Summary
Ivy()
           
 
Method Summary
 void addAllVariables(java.util.Map variables)
           
 void addAllVariables(java.util.Map variables, boolean overwrite)
           
 void addConfigured(ConflictManager cm)
           
 void addConfigured(DependencyResolver resolver)
           
 void addConfigured(LatestStrategy latest)
           
 void addConfigured(fr.jayasoft.ivy.parser.ModuleDescriptorParser parser)
           
 void addConfigured(fr.jayasoft.ivy.namespace.Namespace ns)
           
 void addConfigured(fr.jayasoft.ivy.matcher.PatternMatcher m)
           
 void addConflictManager(java.lang.String name, ConflictManager cm)
           
 void addIvyListener(fr.jayasoft.ivy.event.IvyListener listener)
           
 void addLatestStrategy(java.lang.String name, LatestStrategy latest)
           
 void addMatcher(fr.jayasoft.ivy.matcher.PatternMatcher m)
           
 void addModuleConfiguration(ModuleId mid, fr.jayasoft.ivy.matcher.PatternMatcher matcher, java.lang.String resolverName)
          regular expressions as explained in Pattern class may be used in ModuleId organisation and name
 void addNamespace(fr.jayasoft.ivy.namespace.Namespace ns)
           
 void addResolver(DependencyResolver resolver)
           
 void addTransferListener(fr.jayasoft.ivy.repository.TransferListener listener)
           
 boolean check(java.net.URL ivyFile, java.lang.String resolvername)
          Checks the given ivy file using current configuration to see if all dependencies are available, with good confs.
 void configure(java.io.File configurationFile)
           
 void configure(java.net.URL configurationURL)
           
 void configureDefault()
           
 void configureRepositories(boolean remote)
          Call this method to ask ivy to configure some variables using either a remote or a local properties file
 boolean debugConflictResolution()
           
 void deliver(ModuleRevisionId mrid, java.lang.String revision, java.io.File cache, java.lang.String destIvyPattern, java.lang.String status, java.util.Date pubdate, PublishingDependencyRevisionResolver pdrResolver, boolean validate)
           
 void deliver(ModuleRevisionId mrid, java.lang.String revision, java.io.File cache, java.lang.String destIvyPattern, java.lang.String status, java.util.Date pubdate, PublishingDependencyRevisionResolver pdrResolver, boolean validate, boolean resolveDynamicRevisions)
          delivers a resolved ivy file based upon last resolve call status and the given PublishingDependencyRevisionResolver.
 boolean doValidate()
           
 fr.jayasoft.ivy.report.ArtifactDownloadReport download(Artifact artifact, java.io.File cache)
          Download an artifact to the cache.
 void filterIgnore(java.util.Collection names)
          Filters the names list by removing all names that should be ignored as defined by the listing ignore list
 ResolvedModuleRevision findModuleInCache(ModuleRevisionId mrid, java.io.File cache, boolean validate)
           
 java.util.Collection findModuleRevisionIds(DependencyResolver resolver, ModuleRevisionId pattern, fr.jayasoft.ivy.matcher.PatternMatcher matcher)
           
 void fireIvyEvent(fr.jayasoft.ivy.event.IvyEvent evt)
           
protected  void fireTransferEvent(fr.jayasoft.ivy.repository.TransferEvent evt)
           
 java.io.File getArchiveFileInCache(java.io.File cache, Artifact artifact)
           
 java.io.File getArchiveFileInCache(java.io.File cache, java.lang.String organisation, java.lang.String module, java.lang.String revision, java.lang.String artifact, java.lang.String type, java.lang.String ext)
           
 java.lang.String getArchivePathInCache(Artifact artifact)
           
 java.lang.String getArchivePathInCache(java.lang.String organisation, java.lang.String module, java.lang.String revision, java.lang.String artifact, java.lang.String type, java.lang.String ext)
           
 java.lang.String getCacheArtifactPattern()
           
 java.lang.String getCacheDataFilePattern()
           
 java.lang.String getCacheIvyPattern()
           
 ConflictManager getConflictManager(java.lang.String name)
           
 java.io.File getDefaultCache()
           
static java.net.URL getDefaultConfigurationURL()
           
 ConflictManager getDefaultConflictManager()
           
 java.io.File getDefaultIvyUserDir()
           
 LatestStrategy getDefaultLatestStrategy()
           
 DependencyResolver getDefaultResolver()
           
 IvyNode[] getDependencies(ModuleDescriptor md, java.lang.String[] confs, java.io.File cache, java.util.Date date, fr.jayasoft.ivy.report.ResolveReport report, boolean validate)
          Resolve the dependencies of a module without downloading corresponding artifacts.
 IvyNode[] getDependencies(java.net.URL ivySource, java.lang.String[] confs, java.io.File cache, java.util.Date date, boolean validate)
          Resolve the dependencies of a module without downloading corresponding artifacts.
 DependencyResolver getDictatorResolver()
           
 java.io.File getIvyFileInCache(java.io.File cache, ModuleRevisionId mrid)
           
 LatestStrategy getLatestStrategy(java.lang.String name)
           
static java.lang.String getLocalHostName()
           
 fr.jayasoft.ivy.matcher.PatternMatcher getMatcher(java.lang.String name)
           
 fr.jayasoft.ivy.namespace.Namespace getNamespace(java.lang.String name)
           
 fr.jayasoft.ivy.report.ReportOutputter[] getReportOutputters()
           
 java.io.File getResolvedIvyFileInCache(java.io.File cache, ModuleRevisionId mrid)
           
 java.io.File getResolvedIvyPropertiesInCache(java.io.File cache, ModuleRevisionId mrid)
           
 DependencyResolver getResolver(ModuleId moduleId)
           
 DependencyResolver getResolver(java.lang.String resolverName)
           
 java.lang.String getResolverName(ModuleId moduleId)
           
 fr.jayasoft.ivy.namespace.Namespace getSystemNamespace()
           
 java.lang.Class getTypeDef(java.lang.String name)
           
 java.util.Map getTypeDefs()
           
 java.lang.String getVariable(java.lang.String name)
           
 java.util.Map getVariables()
          Returns the variables loaded in configuration file.
 boolean hasIvyListener(fr.jayasoft.ivy.event.IvyListener listener)
           
 boolean hasTransferListener(fr.jayasoft.ivy.repository.TransferListener listener)
           
 fr.jayasoft.ivy.report.ResolveReport install(ModuleRevisionId mrid, java.lang.String from, java.lang.String to, boolean transitive, boolean validate, boolean overwrite, fr.jayasoft.ivy.filter.Filter artifactFilter, java.io.File cache, java.lang.String matcherName)
           
 boolean isCheckUpToDate()
           
 boolean isUseRemoteConfig()
           
 boolean listingIgnore(java.lang.String name)
          Returns true if the name should be ignored in listing
 fr.jayasoft.ivy.resolver.ModuleEntry[] listModuleEntries(fr.jayasoft.ivy.resolver.OrganisationEntry org)
           
 java.lang.String[] listModules(java.lang.String org)
           
 fr.jayasoft.ivy.resolver.OrganisationEntry[] listOrganisationEntries()
           
 java.lang.String[] listOrganisations()
           
 fr.jayasoft.ivy.resolver.RevisionEntry[] listRevisionEntries(fr.jayasoft.ivy.resolver.ModuleEntry module)
           
 java.lang.String[] listRevisions(java.lang.String org, java.lang.String module)
           
 void loadProperties(java.io.File file)
           
 void loadProperties(java.io.File file, boolean overwrite)
           
 void loadProperties(java.net.URL url)
           
 void loadProperties(java.net.URL url, boolean overwrite)
           
 boolean logModuleWhenFound()
           
 boolean logNotConvertedExclusionRule()
           
 boolean logResolvedRevision()
           
 java.util.Collection publish(ModuleRevisionId mrid, java.lang.String pubrevision, java.io.File cache, java.lang.String srcArtifactPattern, java.lang.String resolverName, java.lang.String srcIvyPattern, boolean validate)
           
 java.util.Collection publish(ModuleRevisionId mrid, java.lang.String pubrevision, java.io.File cache, java.lang.String srcArtifactPattern, java.lang.String resolverName, java.lang.String srcIvyPattern, boolean validate, boolean overwrite)
           
 void removeIvyListener(fr.jayasoft.ivy.event.IvyListener listener)
           
 void removeTransferListener(fr.jayasoft.ivy.repository.TransferListener listener)
           
 fr.jayasoft.ivy.report.ResolveReport resolve(java.net.URL ivySource, java.lang.String revision, java.lang.String[] confs, java.io.File cache, java.util.Date date, boolean validate)
           
 fr.jayasoft.ivy.report.ResolveReport resolve(java.net.URL ivySource, java.lang.String revision, java.lang.String[] confs, java.io.File cache, java.util.Date date, boolean validate, boolean useCacheOnly)
           
 fr.jayasoft.ivy.report.ResolveReport resolve(java.net.URL ivySource, java.lang.String revision, java.lang.String[] confs, java.io.File cache, java.util.Date date, boolean validate, boolean useCacheOnly, fr.jayasoft.ivy.filter.Filter artifactFilter)
           
 void retrieve(ModuleId moduleId, java.lang.String[] confs, java.io.File cache, java.lang.String destFilePattern)
          example of destFilePattern : - lib/[organisation]/[module]/[artifact]-[revision].[type] - lib/[artifact].[type] : flatten with no revision moduleId is used with confs and localCacheDirectory to determine an ivy report file, used as input for the copy If such a file does not exist for any conf (resolve has not been called before ?) then an IllegalStateException is thrown and nothing is copied.
 void retrieve(ModuleId moduleId, java.lang.String[] confs, java.io.File cache, java.lang.String destFilePattern, java.lang.String destIvyPattern)
          If destIvyPattern is null no ivy files will be copied.
 void saveResolver(java.io.File cache, ModuleDescriptor md, java.lang.String name)
          Saves the information of which resolver was used to resolve a md, so that this info can be retrieve later (even after a jvm restart) by getSavedResolverName(ModuleDescriptor md)
 void setCacheArtifactPattern(java.lang.String cacheArtifactPattern)
           
 void setCacheIvyPattern(java.lang.String cacheIvyPattern)
           
 void setCheckUpToDate(boolean checkUpToDate)
           
 void setConfigurationVariables(java.io.File configurationFile)
           
 void setConfigurationVariables(java.net.URL configurationURL)
           
 void setDefaultCache(java.io.File cacheDirectory)
           
 void setDefaultConflictManager(ConflictManager defaultConflictManager)
           
 void setDefaultIvyUserDir(java.io.File defaultUserDir)
           
 void setDefaultLatestStrategy(LatestStrategy defaultLatestStrategy)
           
 void setDefaultResolver(java.lang.String resolverName)
           
 void setDictatorResolver(DependencyResolver dictatorResolver)
           
 void setLogNotConvertedExclusionRule(boolean logNotConvertedExclusionRule)
           
 void setUseRemoteConfig(boolean useRemoteConfig)
           
 void setValidate(boolean validate)
           
 void setVariable(java.lang.String varName, java.lang.String value)
           
 void setVariable(java.lang.String varName, java.lang.String value, boolean overwrite)
           
 void setVariables(java.util.Map variables)
          WARNING: Replace all current ivy variables by the given Map.
static java.util.List sortModuleDescriptors(java.util.Collection moduleDescriptors)
          Sorts the given ModuleDescriptors from the less dependent to the more dependent.
static java.util.List sortNodes(java.util.Collection nodes)
           
 java.lang.String substitute(java.lang.String str)
          Substitute variables in the given string by their value found in the current set of variables
 void transferProgress(fr.jayasoft.ivy.repository.TransferEvent evt)
           
 void typeDef(java.lang.String name, java.lang.Class clazz)
           
 void typeDefs(java.io.InputStream stream)
           
 void typeDefs(java.util.Properties p)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DATE_FORMAT

public static final java.text.SimpleDateFormat DATE_FORMAT
Constructor Detail

Ivy

public Ivy()
Method Detail

configureRepositories

public void configureRepositories(boolean remote)
Call this method to ask ivy to configure some variables using either a remote or a local properties file


typeDefs

public void typeDefs(java.io.InputStream stream)
              throws java.io.IOException
Throws:
java.io.IOException

typeDefs

public void typeDefs(java.util.Properties p)

configure

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

configure

public void configure(java.net.URL configurationURL)
               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

setConfigurationVariables

public void setConfigurationVariables(java.io.File configurationFile)

setConfigurationVariables

public void setConfigurationVariables(java.net.URL configurationURL)

loadProperties

public void loadProperties(java.net.URL url)
                    throws java.io.IOException
Throws:
java.io.IOException

loadProperties

public void loadProperties(java.net.URL url,
                           boolean overwrite)
                    throws java.io.IOException
Throws:
java.io.IOException

loadProperties

public void loadProperties(java.io.File file)
                    throws java.io.IOException
Throws:
java.io.IOException

loadProperties

public void loadProperties(java.io.File file,
                           boolean overwrite)
                    throws java.io.IOException
Throws:
java.io.IOException

setVariable

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

setVariable

public void setVariable(java.lang.String varName,
                        java.lang.String value,
                        boolean overwrite)

addAllVariables

public void addAllVariables(java.util.Map variables)

addAllVariables

public void addAllVariables(java.util.Map variables,
                            boolean overwrite)

substitute

public java.lang.String substitute(java.lang.String str)
Substitute variables in the given string by their value found in the current set of variables

Parameters:
str - the string in which substitution should be made
Returns:
the string where all current ivy variables have been substituted by their value

getVariables

public java.util.Map getVariables()
Returns the variables loaded in configuration file. Those variables may better be seen as ant properties

Returns:

typeDef

public void typeDef(java.lang.String name,
                    java.lang.Class clazz)

getTypeDefs

public java.util.Map getTypeDefs()

getTypeDef

public java.lang.Class getTypeDef(java.lang.String name)

addConfigured

public void addConfigured(DependencyResolver resolver)

addConfigured

public void addConfigured(fr.jayasoft.ivy.parser.ModuleDescriptorParser parser)

addResolver

public void addResolver(DependencyResolver resolver)

setDefaultCache

public void setDefaultCache(java.io.File cacheDirectory)

setDefaultResolver

public void setDefaultResolver(java.lang.String resolverName)

addModuleConfiguration

public void addModuleConfiguration(ModuleId mid,
                                   fr.jayasoft.ivy.matcher.PatternMatcher matcher,
                                   java.lang.String resolverName)
regular expressions as explained in Pattern class may be used in ModuleId organisation and name

Parameters:
moduleId -
resolverName -

getDefaultIvyUserDir

public java.io.File getDefaultIvyUserDir()

setDefaultIvyUserDir

public void setDefaultIvyUserDir(java.io.File defaultUserDir)

getDefaultCache

public java.io.File getDefaultCache()

getResolver

public DependencyResolver getResolver(ModuleId moduleId)

getResolver

public DependencyResolver getResolver(java.lang.String resolverName)

getDefaultResolver

public DependencyResolver getDefaultResolver()

getResolverName

public java.lang.String getResolverName(ModuleId moduleId)

addConfigured

public void addConfigured(ConflictManager cm)

getConflictManager

public ConflictManager getConflictManager(java.lang.String name)

addConflictManager

public void addConflictManager(java.lang.String name,
                               ConflictManager cm)

addConfigured

public void addConfigured(LatestStrategy latest)

getLatestStrategy

public LatestStrategy getLatestStrategy(java.lang.String name)

addLatestStrategy

public void addLatestStrategy(java.lang.String name,
                              LatestStrategy latest)

addConfigured

public void addConfigured(fr.jayasoft.ivy.namespace.Namespace ns)

getNamespace

public fr.jayasoft.ivy.namespace.Namespace getNamespace(java.lang.String name)

getSystemNamespace

public fr.jayasoft.ivy.namespace.Namespace getSystemNamespace()

addNamespace

public void addNamespace(fr.jayasoft.ivy.namespace.Namespace ns)

addConfigured

public void addConfigured(fr.jayasoft.ivy.matcher.PatternMatcher m)

getMatcher

public fr.jayasoft.ivy.matcher.PatternMatcher getMatcher(java.lang.String name)

addMatcher

public void addMatcher(fr.jayasoft.ivy.matcher.PatternMatcher m)

check

public boolean check(java.net.URL ivyFile,
                     java.lang.String resolvername)
Checks the given ivy file using current configuration to see if all dependencies are available, with good confs. If a resolver name is given, it also checks that the declared publications are available in the corresponding resolver. Note that the check is not performed recursively, i.e. if a dependency has itself dependencies badly described or not available, this check will not discover it.


resolve

public fr.jayasoft.ivy.report.ResolveReport resolve(java.net.URL ivySource,
                                                    java.lang.String revision,
                                                    java.lang.String[] confs,
                                                    java.io.File cache,
                                                    java.util.Date date,
                                                    boolean validate)
                                             throws java.text.ParseException,
                                                    java.io.IOException
Parameters:
ivySource - the url to the descriptor of the module for which dependencies should be resolved
revision - the revision of the module for which dependencies should be resolved. This revision is considered as the resolved revision of the module, unless it is null. If it is null, then a default revision is given if necessary (no revision found in ivy file)
confs - the configurations for which dependencies should be resolved
cache - the directory where to place resolved dependencies
date - the date for which the dependencies should be resolved. All obtained artifacts should have a publication date which is before or equal to the given date
Throws:
java.text.ParseException
java.io.IOException
java.lang.NullPointerException - if any parameter is null except cache or date

resolve

public fr.jayasoft.ivy.report.ResolveReport resolve(java.net.URL ivySource,
                                                    java.lang.String revision,
                                                    java.lang.String[] confs,
                                                    java.io.File cache,
                                                    java.util.Date date,
                                                    boolean validate,
                                                    boolean useCacheOnly)
                                             throws java.text.ParseException,
                                                    java.io.IOException
Throws:
java.text.ParseException
java.io.IOException

resolve

public fr.jayasoft.ivy.report.ResolveReport resolve(java.net.URL ivySource,
                                                    java.lang.String revision,
                                                    java.lang.String[] confs,
                                                    java.io.File cache,
                                                    java.util.Date date,
                                                    boolean validate,
                                                    boolean useCacheOnly,
                                                    fr.jayasoft.ivy.filter.Filter artifactFilter)
                                             throws java.text.ParseException,
                                                    java.io.IOException
Throws:
java.text.ParseException
java.io.IOException

download

public fr.jayasoft.ivy.report.ArtifactDownloadReport download(Artifact artifact,
                                                              java.io.File cache)
Download an artifact to the cache. Not used internally, useful especially for IDE plugins needing to download artifact one by one (for source or javadoc artifact, for instance). Downloaded artifact file can be accessed using getArchiveFileInCache method. It is possible to track the progression of the download using classical ivy progress monitoring feature (see addTransferListener).

Parameters:
artifact - the artifact to download
cache - the cache to use. If null, will use default cache
Returns:
a report concerning the download

getReportOutputters

public fr.jayasoft.ivy.report.ReportOutputter[] getReportOutputters()

getDependencies

public IvyNode[] getDependencies(java.net.URL ivySource,
                                 java.lang.String[] confs,
                                 java.io.File cache,
                                 java.util.Date date,
                                 boolean validate)
                          throws java.text.ParseException,
                                 java.io.IOException
Resolve the dependencies of a module without downloading corresponding artifacts. The module to resolve is given by its ivy file URL. This method requires appropriate configuration of the ivy instance, especially resolvers.

Parameters:
ivySource - url of the ivy file to use for dependency resolving
confs - an array of configuration names to resolve - must not be null nor empty
cache - the cache to use - default cache is used if null
date - the date to which resolution must be done - may be null
Returns:
an array of the resolved dependencies
Throws:
java.text.ParseException - if a parsing problem occured in the ivy file
java.io.IOException - if an IO problem was raised during ivy file parsing

getDependencies

public IvyNode[] getDependencies(ModuleDescriptor md,
                                 java.lang.String[] confs,
                                 java.io.File cache,
                                 java.util.Date date,
                                 fr.jayasoft.ivy.report.ResolveReport report,
                                 boolean validate)
Resolve the dependencies of a module without downloading corresponding artifacts. The module to resolve is given by its module descriptor.This method requires appropriate configuration of the ivy instance, especially resolvers.

Parameters:
md - the descriptor of the module for which we want to get dependencies - must not be null
confs - an array of configuration names to resolve - must not be null nor empty
cache - the cache to use - default cache is used if null
date - the date to which resolution must be done - may be null
report - a resolve report to fill during resolution - may be null
Returns:
an array of the resolved Dependencies

findModuleInCache

public ResolvedModuleRevision findModuleInCache(ModuleRevisionId mrid,
                                                java.io.File cache,
                                                boolean validate)

install

public fr.jayasoft.ivy.report.ResolveReport install(ModuleRevisionId mrid,
                                                    java.lang.String from,
                                                    java.lang.String to,
                                                    boolean transitive,
                                                    boolean validate,
                                                    boolean overwrite,
                                                    fr.jayasoft.ivy.filter.Filter artifactFilter,
                                                    java.io.File cache,
                                                    java.lang.String matcherName)
                                             throws java.io.IOException
Throws:
java.io.IOException

findModuleRevisionIds

public java.util.Collection findModuleRevisionIds(DependencyResolver resolver,
                                                  ModuleRevisionId pattern,
                                                  fr.jayasoft.ivy.matcher.PatternMatcher matcher)

retrieve

public void retrieve(ModuleId moduleId,
                     java.lang.String[] confs,
                     java.io.File cache,
                     java.lang.String destFilePattern)
example of destFilePattern : - lib/[organisation]/[module]/[artifact]-[revision].[type] - lib/[artifact].[type] : flatten with no revision moduleId is used with confs and localCacheDirectory to determine an ivy report file, used as input for the copy If such a file does not exist for any conf (resolve has not been called before ?) then an IllegalStateException is thrown and nothing is copied.


retrieve

public void retrieve(ModuleId moduleId,
                     java.lang.String[] confs,
                     java.io.File cache,
                     java.lang.String destFilePattern,
                     java.lang.String destIvyPattern)
If destIvyPattern is null no ivy files will be copied.


deliver

public void deliver(ModuleRevisionId mrid,
                    java.lang.String revision,
                    java.io.File cache,
                    java.lang.String destIvyPattern,
                    java.lang.String status,
                    java.util.Date pubdate,
                    PublishingDependencyRevisionResolver pdrResolver,
                    boolean validate)
             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.io.File cache,
                    java.lang.String destIvyPattern,
                    java.lang.String status,
                    java.util.Date pubdate,
                    PublishingDependencyRevisionResolver pdrResolver,
                    boolean validate,
                    boolean resolveDynamicRevisions)
             throws java.io.IOException,
                    java.text.ParseException
delivers a resolved ivy file based upon last resolve call status and the given PublishingDependencyRevisionResolver. If resolve report file cannot be found in cache, then it throws an IllegalStateException (maybe resolve has not been called before ?) Moreover, the given PublishingDependencyRevisionResolver is used for each dependency to get its published information. This can particularly useful when the publish is made for a delivery, and when we wish to deliver each dependency which is still in integration. The PublishingDependencyRevisionResolver can then do the delivering work for the dependency and return the new (delivered) dependency info (with the delivered revision). Note that PublishingDependencyRevisionResolver is only called for each direct dependency.

Parameters:
status - the new status, null to keep the old one
Throws:
java.text.ParseException
java.io.IOException

publish

public java.util.Collection publish(ModuleRevisionId mrid,
                                    java.lang.String pubrevision,
                                    java.io.File cache,
                                    java.lang.String srcArtifactPattern,
                                    java.lang.String resolverName,
                                    java.lang.String srcIvyPattern,
                                    boolean validate)
                             throws java.io.IOException
Parameters:
pubrevision -
resolverName - the name of a resolver to use for publication
srcArtifactPattern - a pattern to find artifacts to publish with the given resolver
srcIvyPattern - a pattern to find ivy file to publish, null if ivy file should not be published
Returns:
a collection of missing artifacts (those that are not published)
Throws:
java.text.ParseException
java.io.IOException

publish

public java.util.Collection publish(ModuleRevisionId mrid,
                                    java.lang.String pubrevision,
                                    java.io.File cache,
                                    java.lang.String srcArtifactPattern,
                                    java.lang.String resolverName,
                                    java.lang.String srcIvyPattern,
                                    boolean validate,
                                    boolean overwrite)
                             throws java.io.IOException
Parameters:
pubrevision -
resolverName - the name of a resolver to use for publication
srcArtifactPattern - a pattern to find artifacts to publish with the given resolver
srcIvyPattern - a pattern to find ivy file to publish, null if ivy file should not be published
Returns:
a collection of missing artifacts (those that are not published)
Throws:
java.text.ParseException
java.io.IOException

sortNodes

public static java.util.List sortNodes(java.util.Collection nodes)

sortModuleDescriptors

public static java.util.List sortModuleDescriptors(java.util.Collection moduleDescriptors)
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
Returns:
a List of sorted ModuleDescriptors

getResolvedIvyFileInCache

public java.io.File getResolvedIvyFileInCache(java.io.File cache,
                                              ModuleRevisionId mrid)

getResolvedIvyPropertiesInCache

public java.io.File getResolvedIvyPropertiesInCache(java.io.File cache,
                                                    ModuleRevisionId mrid)

getIvyFileInCache

public java.io.File getIvyFileInCache(java.io.File cache,
                                      ModuleRevisionId mrid)

getArchiveFileInCache

public java.io.File getArchiveFileInCache(java.io.File cache,
                                          Artifact artifact)

getArchiveFileInCache

public java.io.File getArchiveFileInCache(java.io.File cache,
                                          java.lang.String organisation,
                                          java.lang.String module,
                                          java.lang.String revision,
                                          java.lang.String artifact,
                                          java.lang.String type,
                                          java.lang.String ext)

getArchivePathInCache

public java.lang.String getArchivePathInCache(Artifact artifact)

getArchivePathInCache

public java.lang.String getArchivePathInCache(java.lang.String organisation,
                                              java.lang.String module,
                                              java.lang.String revision,
                                              java.lang.String artifact,
                                              java.lang.String type,
                                              java.lang.String ext)

getLocalHostName

public static java.lang.String getLocalHostName()

listOrganisationEntries

public fr.jayasoft.ivy.resolver.OrganisationEntry[] listOrganisationEntries()

listOrganisations

public java.lang.String[] listOrganisations()

listModuleEntries

public fr.jayasoft.ivy.resolver.ModuleEntry[] listModuleEntries(fr.jayasoft.ivy.resolver.OrganisationEntry org)

listModules

public java.lang.String[] listModules(java.lang.String org)

listRevisionEntries

public fr.jayasoft.ivy.resolver.RevisionEntry[] listRevisionEntries(fr.jayasoft.ivy.resolver.ModuleEntry module)

listRevisions

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

listingIgnore

public boolean listingIgnore(java.lang.String name)
Returns true if the name should be ignored in listing

Parameters:
name -
Returns:

filterIgnore

public void filterIgnore(java.util.Collection names)
Filters the names list by removing all names that should be ignored as defined by the listing ignore list

Parameters:
names -

isCheckUpToDate

public boolean isCheckUpToDate()

setCheckUpToDate

public void setCheckUpToDate(boolean checkUpToDate)

getCacheArtifactPattern

public java.lang.String getCacheArtifactPattern()

setCacheArtifactPattern

public void setCacheArtifactPattern(java.lang.String cacheArtifactPattern)

getCacheIvyPattern

public java.lang.String getCacheIvyPattern()

setCacheIvyPattern

public void setCacheIvyPattern(java.lang.String cacheIvyPattern)

doValidate

public boolean doValidate()

setValidate

public void setValidate(boolean validate)

getVariable

public java.lang.String getVariable(java.lang.String name)

getDefaultConflictManager

public ConflictManager getDefaultConflictManager()

setDefaultConflictManager

public void setDefaultConflictManager(ConflictManager defaultConflictManager)

getDefaultLatestStrategy

public LatestStrategy getDefaultLatestStrategy()

setDefaultLatestStrategy

public void setDefaultLatestStrategy(LatestStrategy defaultLatestStrategy)

addTransferListener

public void addTransferListener(fr.jayasoft.ivy.repository.TransferListener listener)

removeTransferListener

public void removeTransferListener(fr.jayasoft.ivy.repository.TransferListener listener)

hasTransferListener

public boolean hasTransferListener(fr.jayasoft.ivy.repository.TransferListener listener)

fireTransferEvent

protected void fireTransferEvent(fr.jayasoft.ivy.repository.TransferEvent evt)

addIvyListener

public void addIvyListener(fr.jayasoft.ivy.event.IvyListener listener)

removeIvyListener

public void removeIvyListener(fr.jayasoft.ivy.event.IvyListener listener)

hasIvyListener

public boolean hasIvyListener(fr.jayasoft.ivy.event.IvyListener listener)

fireIvyEvent

public void fireIvyEvent(fr.jayasoft.ivy.event.IvyEvent evt)

transferProgress

public void transferProgress(fr.jayasoft.ivy.repository.TransferEvent evt)
Specified by:
transferProgress in interface fr.jayasoft.ivy.repository.TransferListener

isUseRemoteConfig

public boolean isUseRemoteConfig()

setUseRemoteConfig

public void setUseRemoteConfig(boolean useRemoteConfig)

getDictatorResolver

public DependencyResolver getDictatorResolver()

setDictatorResolver

public void setDictatorResolver(DependencyResolver dictatorResolver)

setVariables

public void setVariables(java.util.Map variables)
WARNING: Replace all current ivy variables by the given Map. Should be used only when restoring variables. Thr given Map is not copied, but stored by reference.

Parameters:
variables -

getDefaultConfigurationURL

public static java.net.URL getDefaultConfigurationURL()

saveResolver

public void saveResolver(java.io.File cache,
                         ModuleDescriptor md,
                         java.lang.String name)
Saves the information of which resolver was used to resolve a md, so that this info can be retrieve later (even after a jvm restart) by getSavedResolverName(ModuleDescriptor md)

Parameters:
md - the module descriptor resolved
name - resolver name

getCacheDataFilePattern

public java.lang.String getCacheDataFilePattern()

logModuleWhenFound

public boolean logModuleWhenFound()

logResolvedRevision

public boolean logResolvedRevision()

debugConflictResolution

public boolean debugConflictResolution()

logNotConvertedExclusionRule

public boolean logNotConvertedExclusionRule()

setLogNotConvertedExclusionRule

public void setLogNotConvertedExclusionRule(boolean logNotConvertedExclusionRule)