Class CompositeBuildArtifacts
- java.lang.Object
-
- jetbrains.buildServer.serverSide.impl.artifacts.BuildArtifactsBase
-
- jetbrains.buildServer.serverSide.impl.artifacts.CompositeBuildArtifacts
-
- All Implemented Interfaces:
BuildArtifacts
public final class CompositeBuildArtifacts extends BuildArtifactsBase
Represents a container which allows to combine artifacts from multiple providers (e. g.: internal and external ones, or artifacts from different builds). Not related to composite builds.
- Author:
- vbedrosova
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jetbrains.buildServer.serverSide.impl.artifacts.BuildArtifactsBase
BuildArtifactsBase.BreakException
-
Nested classes/interfaces inherited from interface jetbrains.buildServer.serverSide.artifacts.BuildArtifacts
BuildArtifacts.BuildArtifactsProcessor
-
-
Field Summary
-
Fields inherited from class jetbrains.buildServer.serverSide.impl.artifacts.BuildArtifactsBase
COMPARATOR, myBuildPromotion, myFilter, mySecurityContext
-
-
Constructor Summary
Constructors Constructor Description CompositeBuildArtifacts(BuildArtifacts artifacts, File baseFolder, ArtifactsGuard guard, BuildPromotion buildPromotion, SecurityContext securityContext, ArtifactsFilter filter)
Creates a new flat view of the artifacts from a single artifact provider.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BuildArtifactHolder
findArtifact(String relativePath)
Returns artifact holder for requested artifact path.List<BuildArtifacts>
getArtifactProviders()
BuildArtifact
getRootArtifact()
boolean
isAvailable()
Checks if build contains available artifactsvoid
iterateArtifacts(BuildArtifacts.BuildArtifactsProcessor processor)
Iterates among all build artifacts calling given processor for every new found artifact.-
Methods inherited from class jetbrains.buildServer.serverSide.impl.artifacts.BuildArtifactsBase
checkAccess, checkVisibility, foundAccessible, getArtifact, iterate, normalizePath, notAccessible, notFound, toString, toStringItem
-
-
-
-
Constructor Detail
-
CompositeBuildArtifacts
public CompositeBuildArtifacts(@NotNull BuildArtifacts artifacts, @NotNull File baseFolder, @NotNull ArtifactsGuard guard, @NotNull BuildPromotion buildPromotion, @NotNull SecurityContext securityContext, @NotNull ArtifactsFilter filter)
Creates a new flat view of the artifacts from a single artifact provider.
- Parameters:
artifacts
- the artifacts to wrap, either from the same build or (for composite builds) from artifact dependencies.baseFolder
- usually the common server-side artifact directory for the given build (localartifacts
internally hold the same value). Only used for file system locking purposes and not really needed (may even be a nonexistent path).guard
- encapsulates the hierarchical RW-lock used to separate file system readers and writers.buildPromotion
- the corresponding build promotion. For the artifacts of composite builds,artifacts
will reference build promotions that correspond to artifact dependencies.securityContext
- the security context (artifacts
holds the same reference).filter
- the artifact filter.
-
-
Method Detail
-
getRootArtifact
@NotNull public BuildArtifact getRootArtifact()
- Returns:
- root artifact directory item
- See Also:
BuildArtifacts.getRootArtifact()
-
isAvailable
public boolean isAvailable()
Checks if build contains available artifacts- Specified by:
isAvailable
in interfaceBuildArtifacts
- Overrides:
isAvailable
in classBuildArtifactsBase
- Returns:
- true if there are some available artifacts
- See Also:
BuildArtifactsBase.isAvailable()
-
findArtifact
@NotNull public BuildArtifactHolder findArtifact(@NotNull String relativePath)
Returns artifact holder for requested artifact path. Use this method if you need detailed information on why you cannot see an artifact by given relative path- Specified by:
findArtifact
in interfaceBuildArtifacts
- Overrides:
findArtifact
in classBuildArtifactsBase
- Parameters:
relativePath
- relative path to find artifact- Returns:
- artifact holder object representing an artifact, even if build have no such artifact or you do not have rights to see it
- See Also:
BuildArtifactsBase.findArtifact(String)
-
iterateArtifacts
public void iterateArtifacts(@NotNull BuildArtifacts.BuildArtifactsProcessor processor)
Iterates among all build artifacts calling given processor for every new found artifact. Iteration is done as depth-first search. Artifacts are read-locked withArtifactsGuard
while processing files- Specified by:
iterateArtifacts
in interfaceBuildArtifacts
- Overrides:
iterateArtifacts
in classBuildArtifactsBase
- Parameters:
processor
- found artifacts processor- See Also:
BuildArtifactsBase.iterateArtifacts(BuildArtifactsProcessor)
-
getArtifactProviders
@NotNull public List<BuildArtifacts> getArtifactProviders()
-
-