com.atlassian.bamboo.persister
Class CachedBuildPersisterDecorator

java.lang.Object
  extended by com.atlassian.bamboo.persister.CachedBuildPersisterDecorator
All Implemented Interfaces:
Startable, BuildPersisterDecorator

public class CachedBuildPersisterDecorator
extends java.lang.Object
implements BuildPersisterDecorator

Caches the builds so speed up performance and handle transient Build fields.


Constructor Summary
CachedBuildPersisterDecorator(BuildPersisterDecorator parent)
           
 
Method Summary
 void deleteBuild(Build build)
          Remove the build from the internal cache and pass it along to the parent to do the actual deleting
 void deleteBuildResults(Build build, long buildNumber)
          Remove a specific build build
 java.util.Iterator getBuildNames()
          Obtain an iterator that visits the names of the builds currently held in the cache.
 long getNumberOfCachedBuilds()
           
 boolean isActive()
          Indicates whether this is currently active.
 BuildResults loadBuildResults(java.lang.String planKey, java.lang.Integer buildNumber)
          Cache the build results so that the least used results get purged
 java.util.Collection loadBuilds()
          Obtain the list of build's currently in the cache
 Build loadBuilds(java.lang.String buildName)
          Tries to load the requested build from the cache.
 void saveBuild(Build build)
          Save the build in the internal cache and pass it along to the parent to do the actual saving
 void saveBuildResults(Build build, BuildResults buildResults)
          Simply pass this request onto the parent
 void start()
          Loads the cache from the parent decorator on startup;
 void stop()
          Stop the component and clean up any resources
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CachedBuildPersisterDecorator

public CachedBuildPersisterDecorator(BuildPersisterDecorator parent)
Method Detail

start

public void start()
           throws java.lang.Exception
Loads the cache from the parent decorator on startup;

Specified by:
start in interface Startable
Throws:
java.lang.Exception - a generic failure

stop

public void stop()
          throws java.lang.Exception
Description copied from interface: Startable
Stop the component and clean up any resources

Specified by:
stop in interface Startable
Throws:
java.lang.Exception - A generic failure

isActive

public boolean isActive()
Description copied from interface: Startable

Indicates whether this is currently active.

Specified by:
isActive in interface Startable
Returns:
true if this is active, false otherwise.

saveBuild

public void saveBuild(Build build)
               throws PersisterException
Save the build in the internal cache and pass it along to the parent to do the actual saving

Specified by:
saveBuild in interface BuildPersisterDecorator
Parameters:
build - The build to same
Throws:
PersisterException - A generic failure

deleteBuild

public void deleteBuild(Build build)
                 throws PersisterException
Remove the build from the internal cache and pass it along to the parent to do the actual deleting

Specified by:
deleteBuild in interface BuildPersisterDecorator
Parameters:
build - The build to delete
Throws:
PersisterException - A generic failure

deleteBuildResults

public void deleteBuildResults(Build build,
                               long buildNumber)
                        throws PersisterException
Remove a specific build build

Specified by:
deleteBuildResults in interface BuildPersisterDecorator
Parameters:
build - The build the build belongs to
buildNumber - The build number
Throws:
PersisterException

loadBuilds

public Build loadBuilds(java.lang.String buildName)
                 throws PersisterException
Tries to load the requested build from the cache. If it is not in the cache, it's loaded from the parent.

Specified by:
loadBuilds in interface BuildPersisterDecorator
Parameters:
buildName - The name of the build we are after
Returns:
The build, null a build with the given name does not exist
Throws:
PersisterException - A generic failure

saveBuildResults

public void saveBuildResults(Build build,
                             BuildResults buildResults)
                      throws PersisterException
Simply pass this request onto the parent

Specified by:
saveBuildResults in interface BuildPersisterDecorator
Parameters:
build - The buildResults' build
buildResults - The build results to persist
Throws:
PersisterException - Failed to persist the build results

loadBuildResults

public BuildResults loadBuildResults(java.lang.String planKey,
                                     java.lang.Integer buildNumber)
                              throws PersisterException
Cache the build results so that the least used results get purged

Specified by:
loadBuildResults in interface BuildPersisterDecorator
buildNumber - The number of the build results we are interested in
Returns:
The buildResults
Throws:
PersisterException - Failed to load the build results

loadBuilds

public java.util.Collection loadBuilds()
                                throws PersisterException
Obtain the list of build's currently in the cache

Specified by:
loadBuilds in interface BuildPersisterDecorator
Returns:
The collections of Build objects.
Throws:
PersisterException - A generic failure

getBuildNames

public java.util.Iterator getBuildNames()
Obtain an iterator that visits the names of the builds currently held in the cache.

Specified by:
getBuildNames in interface BuildPersisterDecorator
Returns:
The iterator.

getNumberOfCachedBuilds

public long getNumberOfCachedBuilds()


Copyright © 2009 Atlassian Pty Ltd. All Rights Reserved.