com.atlassian.bamboo.build.artifact
Interface ArtifactHandler

All Superinterfaces:
BambooPluginModule
All Known Implementing Classes:
AbstractArtifactHandler, AbstractLocalArtifactHandler, AgentLocalArtifactHandler, BambooRemoteArtifactHandler, S3ArtifactHandler, ServerLocalArtifactHandler

public interface ArtifactHandler
extends BambooPluginModule

Handles artifact storage. Should provide 'local' (i.e. per plan basis) and 'global' storage. Artifacts in 'global' storage should not be removed when producing result (plan) is removed.


Field Summary
static int LAN_SPEED
           
static int LOCAL_SPEED
           
static int WAN_SPEED
           
 
Method Summary
 boolean canHandleArtifact(ArtifactDefinitionContext artifact, java.util.Map<java.lang.String,java.lang.String> artifactHandlersConfiguration)
           
 ArtifactLinkDataProvider getArtifactLinkDataProvider(Artifact artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
           
 ArtifactLinkDataProvider getArtifactLinkDataProvider(ArtifactLink artifactLink, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
           
 java.util.Map<java.lang.String,java.lang.String> getDefaultConfiguration()
           
 com.atlassian.plugin.ModuleDescriptor<ArtifactHandler> getModuleDescriptor()
           
 int getSpeed(java.util.Map<java.lang.String,java.lang.String> artifactHandlersConfiguration)
           
 java.util.Set<AgentType> getSupportedAgents()
           
 boolean moveArtifactToGlobalStorage(Artifact artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Move artifact to a 'global storage'.
 void populateContextForEdit(java.util.Map<java.lang.String,java.lang.Object> context)
           
 boolean publish(PlanResultKey planResultKey, ArtifactDefinitionContext artifact, ArtifactPublishingConfig artifactPublishingConfig)
           
 void removeArtifactFromStorage(Artifact artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for a single artifact.
 void removeArtifactFromStorage(PlanResultKey planResultKey, ImmutableArtifactDefinitionBase artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for a single artifact.
 void removeArtifactsFromStorage(PlanKey planKey, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for all results of a single.
 void removeArtifactsFromStorage(PlanResultKey planResultKey, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for a single plan result.
 ArtifactRetrievalStatus retrieve(PlanResultKey planResultKey, ResultKey clientKey, ArtifactSubscriptionContext artifactSubscription, ArtifactRetrievalConfig artifactRetrievalConfig)
          Retrieve plan artifact.
 ArtifactRetrievalStatus retrieve(ResultKey clientKey, Artifact artifact, ArtifactSubscriptionContext artifactSubscription, ArtifactRetrievalConfig artifactRetrievalConfig)
          Retrieve arbitrary Artifact.
 

Field Detail

LOCAL_SPEED

static final int LOCAL_SPEED
See Also:
Constant Field Values

LAN_SPEED

static final int LAN_SPEED
See Also:
Constant Field Values

WAN_SPEED

static final int WAN_SPEED
See Also:
Constant Field Values
Method Detail

publish

boolean publish(@NotNull
                PlanResultKey planResultKey,
                @NotNull
                ArtifactDefinitionContext artifact,
                @NotNull
                ArtifactPublishingConfig artifactPublishingConfig)
                throws java.io.IOException
Throws:
java.io.IOException

retrieve

@NotNull
ArtifactRetrievalStatus retrieve(@NotNull
                                         PlanResultKey planResultKey,
                                         @NotNull
                                         ResultKey clientKey,
                                         @NotNull
                                         ArtifactSubscriptionContext artifactSubscription,
                                         @NotNull
                                         ArtifactRetrievalConfig artifactRetrievalConfig)
                                 throws java.io.IOException
Retrieve plan artifact. Artifact is found by label (taken from artifactSubscription) and planResultKey.

Parameters:
planResultKey - identifier of source plan
clientKey - identifier of plan or deployment doing the download
artifactSubscription - download details (e.g. target path, copy pattern)
artifactRetrievalConfig - handler specific configuration
Throws:
java.io.IOException

retrieve

@NotNull
ArtifactRetrievalStatus retrieve(@NotNull
                                         ResultKey clientKey,
                                         @NotNull
                                         Artifact artifact,
                                         @NotNull
                                         ArtifactSubscriptionContext artifactSubscription,
                                         @NotNull
                                         ArtifactRetrievalConfig artifactRetrievalConfig)
                                 throws java.io.IOException
Retrieve arbitrary Artifact. Artifact is found by the information in artifact parameter.

Parameters:
clientKey - identifier of plan or deployment doing the download
artifact - artifact information
artifactSubscription - download details (e.g. target path, copy pattern)
artifactRetrievalConfig - handler specific configuration
Throws:
java.io.IOException

getSupportedAgents

@NotNull
java.util.Set<AgentType> getSupportedAgents()

populateContextForEdit

void populateContextForEdit(@NotNull
                            java.util.Map<java.lang.String,java.lang.Object> context)

getModuleDescriptor

@NotNull
com.atlassian.plugin.ModuleDescriptor<ArtifactHandler> getModuleDescriptor()

canHandleArtifact

boolean canHandleArtifact(ArtifactDefinitionContext artifact,
                          java.util.Map<java.lang.String,java.lang.String> artifactHandlersConfiguration)

getDefaultConfiguration

@NotNull
java.util.Map<java.lang.String,java.lang.String> getDefaultConfiguration()

getSpeed

int getSpeed(@NotNull
             java.util.Map<java.lang.String,java.lang.String> artifactHandlersConfiguration)

removeArtifactFromStorage

void removeArtifactFromStorage(@NotNull
                               Artifact artifact,
                               @NotNull
                               ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Removes artifact files for a single artifact.


removeArtifactFromStorage

void removeArtifactFromStorage(@NotNull
                               PlanResultKey planResultKey,
                               @NotNull
                               ImmutableArtifactDefinitionBase artifact,
                               @NotNull
                               ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Removes artifact files for a single artifact. Called when removing ArtifactLink Should not remove artifacts that were moved to global storage.


removeArtifactsFromStorage

void removeArtifactsFromStorage(@NotNull
                                PlanResultKey planResultKey,
                                @NotNull
                                ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Removes artifact files for a single plan result. Called when removing ResultsSummary Should not remove artifacts that were moved to global storage.


removeArtifactsFromStorage

void removeArtifactsFromStorage(@NotNull
                                PlanKey planKey,
                                @NotNull
                                ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Removes artifact files for all results of a single. Called when removing Plan Should not remove artifacts that were moved to global storage.


moveArtifactToGlobalStorage

boolean moveArtifactToGlobalStorage(@NotNull
                                    Artifact artifact,
                                    @NotNull
                                    ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Move artifact to a 'global storage'. Artifacts in 'global storage' should only be removed when removeArtifactFromStorage(Artifact, ArtifactHandlerConfigProvider) is called. It is not a requirement to physically move the files as long as the above contract is fulfilled.

Parameters:
artifact -
Returns:
true if move successful
Since:
5.0

getArtifactLinkDataProvider

@Nullable
ArtifactLinkDataProvider getArtifactLinkDataProvider(ArtifactLink artifactLink,
                                                              @NotNull
                                                              ArtifactHandlerConfigProvider artifactHandlerConfigProvider)

getArtifactLinkDataProvider

@Nullable
ArtifactLinkDataProvider getArtifactLinkDataProvider(Artifact artifact,
                                                              @Nullable
                                                              ArtifactHandlerConfigProvider artifactHandlerConfigProvider)


Copyright © 2013 Atlassian Software Systems Pty Ltd. All Rights Reserved.