com.heroku
Class AppClone

java.lang.Object
  extended by hudson.tasks.BuildStepCompatibilityLayer
      extended by hudson.tasks.Builder
          extended by com.heroku.AppClone
All Implemented Interfaces:
hudson.ExtensionPoint, hudson.model.Describable<hudson.tasks.Builder>, hudson.tasks.BuildStep

public class AppClone
extends hudson.tasks.Builder

Author:
Ryan Brainard

Nested Class Summary
static class AbstractHerokuBuildStep.AbstractHerokuBuildStepDescriptor
           
static class AppClone.AppCloneDescriptor
           
 
Nested classes/interfaces inherited from interface hudson.tasks.BuildStep
hudson.tasks.BuildStep.PublisherList
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
 
Fields inherited from interface hudson.tasks.BuildStep
BUILDERS, PUBLISHERS
 
Constructor Summary
AppClone(String apiKey, String appName, String templateAppName)
           
 
Method Summary
 String getApiKey()
          Not for use by tasks needing the API key.
 String getAppName()
           
 AppClone.AppCloneDescriptor getDescriptor()
           
protected  String getEffectiveApiKey()
          If an API key is not explicitly defined for this specific build step, the default key from HerokuPlugin is used.
protected  com.heroku.api.App getOrCreateApp(hudson.model.BuildListener listener, com.heroku.api.HerokuAPI api)
           
 String getTemplateAppName()
           
 boolean perform(hudson.model.AbstractBuild build, hudson.Launcher launcher, hudson.model.BuildListener listener)
           
protected  boolean perform(hudson.model.AbstractBuild build, hudson.Launcher launcher, hudson.model.BuildListener listener, com.heroku.api.HerokuAPI api, com.heroku.api.App targetApp)
          Subclasses should override this to get access to the Heroku API with the context of an app
 
Methods inherited from class hudson.tasks.Builder
all, getRequiredMonitorService, prebuild
 
Methods inherited from class hudson.tasks.BuildStepCompatibilityLayer
getProjectAction, getProjectAction, getProjectActions, perform, prebuild
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface hudson.tasks.BuildStep
getProjectAction, getProjectActions, prebuild
 

Constructor Detail

AppClone

@DataBoundConstructor
public AppClone(String apiKey,
                                     String appName,
                                     String templateAppName)
Method Detail

getAppName

public String getAppName()

getApiKey

public String getApiKey()
Not for use by tasks needing the API key. You probably want to use getEffectiveApiKey() instead.

Returns:
API key explicitly set for this build step

getTemplateAppName

public String getTemplateAppName()

getOrCreateApp

protected com.heroku.api.App getOrCreateApp(hudson.model.BuildListener listener,
                                            com.heroku.api.HerokuAPI api)

perform

protected boolean perform(hudson.model.AbstractBuild build,
                          hudson.Launcher launcher,
                          hudson.model.BuildListener listener,
                          com.heroku.api.HerokuAPI api,
                          com.heroku.api.App targetApp)
                   throws IOException,
                          InterruptedException
Subclasses should override this to get access to the Heroku API with the context of an app

Throws:
IOException
InterruptedException

getDescriptor

public AppClone.AppCloneDescriptor getDescriptor()
Specified by:
getDescriptor in interface hudson.model.Describable<hudson.tasks.Builder>

getEffectiveApiKey

protected String getEffectiveApiKey()
If an API key is not explicitly defined for this specific build step, the default key from HerokuPlugin is used.

Returns:
API key tasks should use

perform

public boolean perform(hudson.model.AbstractBuild build,
                       hudson.Launcher launcher,
                       hudson.model.BuildListener listener)
                throws IOException,
                       InterruptedException
Specified by:
perform in interface hudson.tasks.BuildStep
Overrides:
perform in class hudson.tasks.BuildStepCompatibilityLayer
Throws:
IOException
InterruptedException


Copyright © 2004-2012. All Rights Reserved.