org.apache.ivy.plugins.resolver
Class ChainResolver

java.lang.Object
  extended by org.apache.ivy.plugins.resolver.AbstractResolver
      extended by org.apache.ivy.plugins.resolver.ChainResolver
All Implemented Interfaces:
Validatable, DependencyResolver, HasLatestStrategy

public class ChainResolver
extends AbstractResolver


Nested Class Summary
static class ChainResolver.ResolvedModuleRevisionArtifactInfo
           
 
Constructor Summary
ChainResolver()
           
 
Method Summary
 void abortPublishTransaction()
           
 void add(DependencyResolver resolver)
           
 void beginPublishTransaction(ModuleRevisionId module, boolean overwrite)
           
 void commitPublishTransaction()
           
 DownloadReport download(Artifact[] artifacts, DownloadOptions options)
          Download artifacts with specified DownloadOptions.
 ArtifactDownloadReport download(ArtifactOrigin artifact, DownloadOptions options)
          Default implementation downloads the artifact without taking advantage of its location
 void dumpSettings()
           
 boolean exists(Artifact artifact)
          Returns true if the given artifact can be located by this resolver and actually exist.
 ResolvedResource findIvyFileRef(DependencyDescriptor dd, ResolveData data)
          Finds the module descriptor for the specified DependencyDescriptor.
 ResolvedModuleRevision getDependency(DependencyDescriptor dd, ResolveData data)
          Resolve a module by id, getting its module descriptor and resolving the revision if it's a latest one (i.e.
 java.util.List getResolvers()
           
 boolean isCheckmodified()
          True if this resolver should check lastmodified date to know if ivy files are up to date.
 boolean isDual()
           
 boolean isReturnFirst()
           
 java.util.Map[] listTokenValues(java.lang.String[] tokens, java.util.Map criteria)
          Same as DependencyResolver.listTokenValues(String, Map) but more generic.
 ArtifactOrigin locate(Artifact artifact)
          Default implementation actually download the artifact Subclasses should overwrite this to avoid the download
 void publish(Artifact artifact, java.io.File src, boolean overwrite)
           
 void reportFailure()
          Reports last resolve failure as Messages
 void reportFailure(Artifact art)
          Reports last artifact download failure as Messages
 void setCheckmodified(boolean check)
           
 void setDual(boolean b)
           
 void setReturnFirst(boolean returnFirst)
           
 
Methods inherited from class org.apache.ivy.plugins.resolver.AbstractResolver
checkInterrupted, checkLatest, doValidate, findModuleInCache, findModuleInCache, fromSystem, fromSystem, getCacheDownloadOptions, getCacheOptions, getChangingMatcherName, getChangingPattern, getDownloadOptions, getEventManager, getLatest, getLatestStrategy, getName, getNamespace, getRepositoryCacheManager, getSettings, getSystemNode, getTypeName, hidePassword, isAfter, isValidate, listModules, listOrganisations, listRevisions, listTokenValues, saveModuleRevisionIfNeeded, setCache, setChangingMatcher, setChangingPattern, setEventManager, setLatest, setLatestStrategy, setName, setNamespace, setRepositoryCacheManager, setSettings, setValidate, toString, toSystem, toSystem, toSystem, toSystem, toSystem, toSystem, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ChainResolver

public ChainResolver()
Method Detail

add

public void add(DependencyResolver resolver)

isCheckmodified

public boolean isCheckmodified()
True if this resolver should check lastmodified date to know if ivy files are up to date.

Returns:

setCheckmodified

public void setCheckmodified(boolean check)
Overrides:
setCheckmodified in class AbstractResolver

getDependency

public ResolvedModuleRevision getDependency(DependencyDescriptor dd,
                                            ResolveData data)
                                     throws java.text.ParseException
Description copied from interface: DependencyResolver
Resolve a module by id, getting its module descriptor and resolving the revision if it's a latest one (i.e. a revision uniquely identifying the revision of a module in the current environment - If this revision is not able to identify uniquelely the revision of the module outside of the current environment, then the resolved revision must begin by ##)

Throws:
java.text.ParseException

findIvyFileRef

public ResolvedResource findIvyFileRef(DependencyDescriptor dd,
                                       ResolveData data)
Description copied from interface: DependencyResolver
Finds the module descriptor for the specified DependencyDescriptor. If this resolver can't find the module descriptor, null is returned.

Parameters:
dd - the dependency descriptor
data - the resolve data
Returns:
the module descriptor, or null

listTokenValues

public java.util.Map[] listTokenValues(java.lang.String[] tokens,
                                       java.util.Map criteria)
Description copied from interface: DependencyResolver
Same as DependencyResolver.listTokenValues(String, Map) but more generic.

Specified by:
listTokenValues in interface DependencyResolver
Overrides:
listTokenValues in class AbstractResolver
Parameters:
tokens - the tokens of the query
criteria - the token which have values
Returns:
the list of token values (Map[]), must not be null

reportFailure

public void reportFailure()
Description copied from interface: DependencyResolver
Reports last resolve failure as Messages

Specified by:
reportFailure in interface DependencyResolver
Overrides:
reportFailure in class AbstractResolver

reportFailure

public void reportFailure(Artifact art)
Description copied from interface: DependencyResolver
Reports last artifact download failure as Messages

Specified by:
reportFailure in interface DependencyResolver
Overrides:
reportFailure in class AbstractResolver

download

public DownloadReport download(Artifact[] artifacts,
                               DownloadOptions options)
Description copied from interface: DependencyResolver
Download artifacts with specified DownloadOptions.

The resolver will always make a best effort, and do not stop when an artifact is not available. It rather continue to attempt to download other requested artifacts, and report what has been done in the returned DownloadReport.

The returned DownloadReport is never null, and always contain an ArtifactDownloadReport for each requested Artifact.

Parameters:
artifacts - an array of artifacts to download. Must not be null.
options - options to apply for this download. Must not be null.
Returns:
a DownloadReport with details about each Artifact download.

getResolvers

public java.util.List getResolvers()

publish

public void publish(Artifact artifact,
                    java.io.File src,
                    boolean overwrite)
             throws java.io.IOException
Throws:
java.io.IOException

abortPublishTransaction

public void abortPublishTransaction()
                             throws java.io.IOException
Specified by:
abortPublishTransaction in interface DependencyResolver
Overrides:
abortPublishTransaction in class AbstractResolver
Throws:
java.io.IOException

beginPublishTransaction

public void beginPublishTransaction(ModuleRevisionId module,
                                    boolean overwrite)
                             throws java.io.IOException
Specified by:
beginPublishTransaction in interface DependencyResolver
Overrides:
beginPublishTransaction in class AbstractResolver
Throws:
java.io.IOException

commitPublishTransaction

public void commitPublishTransaction()
                              throws java.io.IOException
Specified by:
commitPublishTransaction in interface DependencyResolver
Overrides:
commitPublishTransaction in class AbstractResolver
Throws:
java.io.IOException

isReturnFirst

public boolean isReturnFirst()

setReturnFirst

public void setReturnFirst(boolean returnFirst)

dumpSettings

public void dumpSettings()
Specified by:
dumpSettings in interface DependencyResolver
Overrides:
dumpSettings in class AbstractResolver

exists

public boolean exists(Artifact artifact)
Description copied from interface: DependencyResolver
Returns true if the given artifact can be located by this resolver and actually exist.

Specified by:
exists in interface DependencyResolver
Overrides:
exists in class AbstractResolver
Parameters:
artifact - the artifact which should be tested.
Returns:
true if the given artifact can be located by this resolver and actually exist.

locate

public ArtifactOrigin locate(Artifact artifact)
Description copied from class: AbstractResolver
Default implementation actually download the artifact Subclasses should overwrite this to avoid the download

Specified by:
locate in interface DependencyResolver
Overrides:
locate in class AbstractResolver
Parameters:
artifact - the artifact which should be located
Returns:
the artifact location, or null if it can't be located by this resolver or doesn't exist.

download

public ArtifactDownloadReport download(ArtifactOrigin artifact,
                                       DownloadOptions options)
Description copied from class: AbstractResolver
Default implementation downloads the artifact without taking advantage of its location

Specified by:
download in interface DependencyResolver
Overrides:
download in class AbstractResolver
Parameters:
artifact - the location of the artifact to download. Must not be null.
options - options to apply for this download. Must not be null.
Returns:
a report detailing how the download has gone, is never null.

setDual

public void setDual(boolean b)

isDual

public boolean isDual()