org.kathrynhuxtable.maven.wagon.gitsite
Class GitSiteWagon

java.lang.Object
  extended by org.apache.maven.wagon.AbstractWagon
      extended by org.kathrynhuxtable.maven.wagon.gitsite.GitSiteWagon
All Implemented Interfaces:
org.apache.maven.wagon.Wagon

public class GitSiteWagon
extends org.apache.maven.wagon.AbstractWagon

Wagon provider to deploy site documentation to GitHub's pages system.

This should do more or less the following, but doesn't because it doesn't actually delete old files.

 mkdir ${checkoutDirectory}
 cd ${checkoutDirectory}
 git init
 git remote add origin ${gitRepoUrl}
 git pull origin refs/heads/${siteBranch}
 
 git add .
 git commit -a -m "Wagon: Deploying site to repository"
 git push origin master:${siteBranch}
 rm -Rf ${checkoutDirectory}
 
We need to create the gh-pages branch if it doesn't already exist:
 cd ${checkoutDirectory}
 git symbolic-ref HEAD refs/heads/gh-pages
 rm .git/index
 git clean -fdx
 git add .
 git commit -a -m "First pages commit"
 git push origin gh-pages
 

Author:
Kathryn Huxtable, Brett Porter, Emmanuel Venisse, Carlos Sanchez, Jason van Zyl

Field Summary
 
Fields inherited from class org.apache.maven.wagon.AbstractWagon
authenticationInfo, DEFAULT_BUFFER_SIZE, interactive, proxyInfo, repository, sessionEventSupport, transferEventSupport
 
Fields inherited from interface org.apache.maven.wagon.Wagon
ROLE
 
Constructor Summary
GitSiteWagon()
           
 
Method Summary
 void closeConnection()
           
 void connect(org.apache.maven.wagon.repository.Repository repository, org.apache.maven.wagon.authentication.AuthenticationInfo authenticationInfo, org.apache.maven.wagon.proxy.ProxyInfoProvider proxyInfoProvider)
           
protected  org.apache.maven.scm.ScmResult executeCommand(org.apache.maven.scm.provider.git.gitexe.GitExeScmProvider scmProvider, org.apache.maven.scm.provider.git.command.GitCommand command, org.apache.maven.scm.provider.ScmProviderRepository repository, org.apache.maven.scm.ScmFileSet fileSet, org.apache.maven.scm.CommandParameters parameters)
          Wrapper around gitCommand.execute to handle setting the logger.
 void get(String resourceName, File destination)
           
 File getCheckoutDirectory()
          Get the directory where Wagon will checkout files from SCM.
 List<String> getFileList(String resourcePath)
          Get the file list for the resource.
 boolean getIfNewer(String resourceName, File destination, long timestamp)
           
 org.apache.maven.scm.manager.ScmManager getScmManager()
          Get the ScmManager used in this Wagon.
 org.apache.maven.scm.provider.ScmProvider getScmProvider(String scmType)
          Convenience method to get the ScmProvider implementation to handle the provided SCM type.
 String getSiteBranch()
          Get the siteBranch used in this Wagon.
 void openConnectionInternal()
          This will clean up the checkout directory.
 void put(File source, String destination)
           
 void putDirectory(File sourceDirectory, String destinationDirectory)
           
 boolean resourceExists(String resourceName)
           
 void setCheckoutDirectory(File checkoutDirectory)
          Set the directory where Wagon will checkout files from SCM.
 void setScmManager(org.apache.maven.scm.manager.ScmManager scmManager)
          Set the ScmManager used in this Wagon.
 void setSiteBranch(String siteBranch)
          Set the siteBranch used in this Wagon.
 boolean supportsDirectoryCopy()
          Return whether or not this wagon supports directory copy.
 
Methods inherited from class org.apache.maven.wagon.AbstractWagon
addSessionListener, addTransferListener, cleanupGetTransfer, cleanupPutTransfer, connect, connect, connect, connect, connect, createParentDirectories, disconnect, finishGetTransfer, finishPutTransfer, fireGetCompleted, fireGetInitiated, fireGetStarted, firePutCompleted, firePutInitiated, firePutStarted, fireSessionConnectionRefused, fireSessionDebug, fireSessionDisconnected, fireSessionDisconnecting, fireSessionError, fireSessionLoggedIn, fireSessionLoggedOff, fireSessionOpened, fireSessionOpening, fireTransferDebug, fireTransferError, fireTransferProgress, getAuthenticationInfo, getPath, getPermissionsOverride, getProxyInfo, getProxyInfo, getRepository, getSessionEventSupport, getTimeout, getTransfer, getTransfer, getTransfer, getTransfer, getTransferEventSupport, hasSessionListener, hasTransferListener, isInteractive, openConnection, postProcessListeners, putTransfer, putTransfer, removeSessionListener, removeTransferListener, setInteractive, setPermissionsOverride, setSessionEventSupport, setTimeout, setTransferEventSupport, transfer, transfer, transfer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GitSiteWagon

public GitSiteWagon()
Method Detail

getScmManager

public org.apache.maven.scm.manager.ScmManager getScmManager()
Get the ScmManager used in this Wagon.

Returns:
the ScmManager.

setScmManager

public void setScmManager(org.apache.maven.scm.manager.ScmManager scmManager)
Set the ScmManager used in this Wagon.

Parameters:
scmManager - the scmManager to set.

getSiteBranch

public String getSiteBranch()
Get the siteBranch used in this Wagon.

Returns:
the siteBranch.

setSiteBranch

public void setSiteBranch(String siteBranch)
Set the siteBranch used in this Wagon.

Parameters:
siteBranch - the siteBranch to set.

getCheckoutDirectory

public File getCheckoutDirectory()
Get the directory where Wagon will checkout files from SCM. This directory will be deleted!

Returns:
the checkoutDirectory.

setCheckoutDirectory

public void setCheckoutDirectory(File checkoutDirectory)
Set the directory where Wagon will checkout files from SCM. This directory will be deleted!

Parameters:
checkoutDirectory - the check-out directory to set.

getScmProvider

public org.apache.maven.scm.provider.ScmProvider getScmProvider(String scmType)
                                                         throws org.apache.maven.scm.manager.NoSuchScmProviderException
Convenience method to get the ScmProvider implementation to handle the provided SCM type.

Parameters:
scmType - type of SCM, eg. svn, cvs
Returns:
the ScmProvider that will handle provided SCM type.
Throws:
org.apache.maven.scm.manager.NoSuchScmProviderException - if there is no ScmProvider able to handle that SCM type.

openConnectionInternal

public void openConnectionInternal()
                            throws org.apache.maven.wagon.ConnectionException
This will clean up the checkout directory.

Specified by:
openConnectionInternal in class org.apache.maven.wagon.AbstractWagon
Throws:
org.apache.maven.wagon.ConnectionException

supportsDirectoryCopy

public boolean supportsDirectoryCopy()
Return whether or not this wagon supports directory copy.

Specified by:
supportsDirectoryCopy in interface org.apache.maven.wagon.Wagon
Overrides:
supportsDirectoryCopy in class org.apache.maven.wagon.AbstractWagon
Returns:
true
See Also:
AbstractWagon.supportsDirectoryCopy()

connect

public void connect(org.apache.maven.wagon.repository.Repository repository,
                    org.apache.maven.wagon.authentication.AuthenticationInfo authenticationInfo,
                    org.apache.maven.wagon.proxy.ProxyInfoProvider proxyInfoProvider)
             throws org.apache.maven.wagon.ConnectionException,
                    org.apache.maven.wagon.authentication.AuthenticationException
Specified by:
connect in interface org.apache.maven.wagon.Wagon
Overrides:
connect in class org.apache.maven.wagon.AbstractWagon
Throws:
org.apache.maven.wagon.ConnectionException
org.apache.maven.wagon.authentication.AuthenticationException
See Also:
AbstractWagon.connect(org.apache.maven.wagon.repository.Repository, org.apache.maven.wagon.authentication.AuthenticationInfo, org.apache.maven.wagon.proxy.ProxyInfoProvider)

put

public void put(File source,
                String destination)
         throws org.apache.maven.wagon.TransferFailedException
Throws:
org.apache.maven.wagon.TransferFailedException
See Also:
Wagon.put(java.io.File, java.lang.String)

putDirectory

public void putDirectory(File sourceDirectory,
                         String destinationDirectory)
                  throws org.apache.maven.wagon.TransferFailedException,
                         org.apache.maven.wagon.ResourceDoesNotExistException,
                         org.apache.maven.wagon.authorization.AuthorizationException
Specified by:
putDirectory in interface org.apache.maven.wagon.Wagon
Overrides:
putDirectory in class org.apache.maven.wagon.AbstractWagon
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.authorization.AuthorizationException
See Also:
AbstractWagon.putDirectory(java.io.File, java.lang.String)

closeConnection

public void closeConnection()
                     throws org.apache.maven.wagon.ConnectionException
Specified by:
closeConnection in class org.apache.maven.wagon.AbstractWagon
Throws:
org.apache.maven.wagon.ConnectionException
See Also:
AbstractWagon.closeConnection()

getIfNewer

public boolean getIfNewer(String resourceName,
                          File destination,
                          long timestamp)
                   throws org.apache.maven.wagon.TransferFailedException,
                          org.apache.maven.wagon.ResourceDoesNotExistException,
                          org.apache.maven.wagon.authorization.AuthorizationException
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.authorization.AuthorizationException
See Also:
Wagon.getIfNewer(java.lang.String,java.io.File, long)

get

public void get(String resourceName,
                File destination)
         throws org.apache.maven.wagon.TransferFailedException,
                org.apache.maven.wagon.ResourceDoesNotExistException,
                org.apache.maven.wagon.authorization.AuthorizationException
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.authorization.AuthorizationException
See Also:
Wagon.get(java.lang.String, java.io.File)

getFileList

public List<String> getFileList(String resourcePath)
                         throws org.apache.maven.wagon.TransferFailedException,
                                org.apache.maven.wagon.ResourceDoesNotExistException,
                                org.apache.maven.wagon.authorization.AuthorizationException
Get the file list for the resource.

Specified by:
getFileList in interface org.apache.maven.wagon.Wagon
Overrides:
getFileList in class org.apache.maven.wagon.AbstractWagon
Parameters:
resourcePath - the resource path.
Returns:
a List<String> with filenames/directories at the resourcepath.
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.ResourceDoesNotExistException
org.apache.maven.wagon.authorization.AuthorizationException
See Also:
AbstractWagon.getFileList(java.lang.String)

resourceExists

public boolean resourceExists(String resourceName)
                       throws org.apache.maven.wagon.TransferFailedException,
                              org.apache.maven.wagon.authorization.AuthorizationException
Specified by:
resourceExists in interface org.apache.maven.wagon.Wagon
Overrides:
resourceExists in class org.apache.maven.wagon.AbstractWagon
Throws:
org.apache.maven.wagon.TransferFailedException
org.apache.maven.wagon.authorization.AuthorizationException
See Also:
AbstractWagon.resourceExists(java.lang.String)

executeCommand

protected org.apache.maven.scm.ScmResult executeCommand(org.apache.maven.scm.provider.git.gitexe.GitExeScmProvider scmProvider,
                                                        org.apache.maven.scm.provider.git.command.GitCommand command,
                                                        org.apache.maven.scm.provider.ScmProviderRepository repository,
                                                        org.apache.maven.scm.ScmFileSet fileSet,
                                                        org.apache.maven.scm.CommandParameters parameters)
                                                 throws org.apache.maven.scm.ScmException
Wrapper around gitCommand.execute to handle setting the logger.

Parameters:
scmProvider - the SCM provider.
command - the command.
repository - the SCM repository.
fileSet - the file set.
parameters - any parameters to the command.
Returns:
the SCM result.
Throws:
org.apache.maven.scm.ScmException


Copyright © 2010-2011 kathrynhuxtable.org. All Rights Reserved.