com.atlassian.bamboo.plugins.hg
Class HgRepositoryAccessImpl

java.lang.Object
  extended by com.atlassian.bamboo.plugins.hg.HgRepositoryAccessImpl
All Implemented Interfaces:
HgRepositoryAccess

@NotThreadSafe
public class HgRepositoryAccessImpl
extends java.lang.Object
implements HgRepositoryAccess


Field Summary
static java.lang.String DEFAULT_SSH_COMMAND
           
 
Constructor Summary
HgRepositoryAccessImpl(com.opensymphony.xwork.TextProvider textProvider, BuildLogger buildLogger, HgRepository repository)
           
 
Method Summary
 void archiveSourceCode(java.io.File destinationDirectory, java.io.File cacheDirectory, java.lang.String vcsRevision, java.lang.String[] includePattern)
          "Archive" (as in svn export) contents of specified revision, applying specified --include pattern
 void close()
          Cleans up resources, connections, etc...
 BuildRepositoryChanges collectChangesSinceLastBuild(java.io.File cacheDirectory, java.lang.String lastVcsRevisionKey)
          Checks whether remote repository has newer revision(s).
 java.lang.String retrieveSourceCode(java.io.File sourceDirectory, java.io.File cacheDirectory, java.lang.String vcsRevision)
          Updates sources in sourceDirectory from remote repository to targetRevision.
 java.lang.String retrieveSourceCode(java.io.File sourceDirectory, java.lang.String vcsRevision)
          Updates sources in sourceDirectory from remote repository to targetRevision.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_SSH_COMMAND

public static final java.lang.String DEFAULT_SSH_COMMAND
See Also:
Constant Field Values
Constructor Detail

HgRepositoryAccessImpl

public HgRepositoryAccessImpl(com.opensymphony.xwork.TextProvider textProvider,
                              BuildLogger buildLogger,
                              HgRepository repository)
                       throws RepositoryException
Throws:
RepositoryException
Method Detail

collectChangesSinceLastBuild

public BuildRepositoryChanges collectChangesSinceLastBuild(@NotNull
                                                           java.io.File cacheDirectory,
                                                           @Nullable
                                                           java.lang.String lastVcsRevisionKey)
                                                    throws RepositoryException
Description copied from interface: HgRepositoryAccess
Checks whether remote repository has newer revision(s). If pullAndCollect is true then updates local cache directory and returns changesets since last checked revision

Specified by:
collectChangesSinceLastBuild in interface HgRepositoryAccess
Parameters:
cacheDirectory - specifies where to store updated repository. Perfectly it should be the 'cache' directory holding shared repository for all plans using the same repository URL
lastVcsRevisionKey - specifies since which revision we want to collect changesets
Returns:
BuildChanges object which will have filled vcsRevisionKey with newest revision from remote repository. If pullAndCollect is true then BuildChanges will have filled changes with repository changesets between previousRevision and newest revision
Throws:
RepositoryException

retrieveSourceCode

public java.lang.String retrieveSourceCode(@NotNull
                                           java.io.File sourceDirectory,
                                           @Nullable
                                           java.lang.String vcsRevision)
                                    throws RepositoryException
Description copied from interface: HgRepositoryAccess
Updates sources in sourceDirectory from remote repository to targetRevision. Extracts changesets since previousRevision and stores them in collectedChangesetsReceiver

Specified by:
retrieveSourceCode in interface HgRepositoryAccess
Parameters:
sourceDirectory - specifies where we want to retrieve sources
vcsRevision - specifies since which revision we want to collect changesets
Returns:
targetRevision
Throws:
RepositoryException

retrieveSourceCode

public java.lang.String retrieveSourceCode(@NotNull
                                           java.io.File sourceDirectory,
                                           @NotNull
                                           java.io.File cacheDirectory,
                                           @Nullable
                                           java.lang.String vcsRevision)
                                    throws RepositoryException
Description copied from interface: HgRepositoryAccess
Updates sources in sourceDirectory from remote repository to targetRevision. Extracts changesets since previousRevision and stores them in collectedChangesetsReceiver

Specified by:
retrieveSourceCode in interface HgRepositoryAccess
Parameters:
sourceDirectory - specifies where we want to retrieve sources
cacheDirectory - specifies where is kept local cache directory, which will hold presumably a more updated repository than sourceDirectory.
vcsRevision - specifies since which revision we want to collect changesets
Returns:
targetRevision
Throws:
RepositoryException

archiveSourceCode

public void archiveSourceCode(@NotNull
                              java.io.File destinationDirectory,
                              @NotNull
                              java.io.File cacheDirectory,
                              @Nullable
                              java.lang.String vcsRevision,
                              @Nullable
                              java.lang.String[] includePattern)
                       throws RepositoryException
Description copied from interface: HgRepositoryAccess
"Archive" (as in svn export) contents of specified revision, applying specified --include pattern

Differs from {link #retrieveSourceCode} by not cloning the repository first (think "svn checkout" vs. "svn export")

Specified by:
archiveSourceCode in interface HgRepositoryAccess
Parameters:
destinationDirectory - directory to extract files to
cacheDirectory - local repository to extract from
vcsRevision - revision to extract, tip if null
includePattern - include patterns to limit extracted files, all files if null or empty
Throws:
RepositoryException - on any error

close

public void close()
Description copied from interface: HgRepositoryAccess
Cleans up resources, connections, etc...

Specified by:
close in interface HgRepositoryAccess


Copyright © 2011 Atlassian. All Rights Reserved.