liquibase.change.core
Class ExecuteShellCommandChange

java.lang.Object
  extended by liquibase.change.AbstractChange
      extended by liquibase.change.core.ExecuteShellCommandChange
All Implemented Interfaces:
Change, LiquibaseSerializable

public class ExecuteShellCommandChange
extends AbstractChange

Executes a given shell executable.


Nested Class Summary
 
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
LiquibaseSerializable.SerializationType
 
Field Summary
protected  List<String> finalCommandArray
           
 
Fields inherited from interface liquibase.serializer.LiquibaseSerializable
GENERIC_CHANGELOG_EXTENSION_NAMESPACE, GENERIC_SNAPSHOT_EXTENSION_NAMESPACE, STANDARD_CHANGELOG_NAMESPACE, STANDARD_SNAPSHOT_NAMESPACE
 
Constructor Summary
ExecuteShellCommandChange()
           
 
Method Summary
 void addArg(String arg)
           
protected  List<String> createFinalCommandArray(Database database)
           
protected  ProcessBuilder createProcessBuilder(Database database)
           
protected  void customLoadLogic(ParsedNode parsedNode, ResourceAccessor resourceAccessor)
           
protected  void executeCommand(Database database)
           
 boolean generateRollbackStatementsVolatile(Database database)
          Implementation delegates logic to the SqlGenerator.generateRollbackStatementsIsVolatile(Database) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database) If no or null SqlStatements are returned by generateRollbackStatements then this method returns false.
 SqlStatement[] generateStatements(Database database)
          Generates the SqlStatement objects required to run the change for the given database.
 boolean generateStatementsVolatile(Database database)
          Implementation delegates logic to the SqlGenerator.generateStatementsIsVolatile(Database) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database).
 List<String> getArgs()
           
protected  String getCommandString()
           
 String getConfirmationMessage()
          Confirmation message to be displayed after the change is executed.
 String getExecutable()
           
 List<String> getOs()
           
 String getSerializedObjectNamespace()
           
protected  void nonExecutedCleanup()
           
 void setExecutable(String executable)
           
 void setOs(String os)
           
 String toString()
           
 ValidationErrors validate(Database database)
          Implementation checks the ChangeParameterMetaData for declared required fields and also delegates logic to the SqlGenerator.validate(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database).
 Warnings warn(Database database)
          Implementation delegates logic to the SqlGenerator.warn(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database).
 
Methods inherited from class liquibase.change.AbstractChange
checkStatus, createChangeMetaData, createChangeParameterMetadata, createDescriptionMetaData, createEmptyColumnConfig, createExampleValueMetaData, createInverses, createMustEqualExistingMetaData, createRequiredDatabasesMetaData, createSerializationTypeMetaData, createSinceMetaData, createSupportedDatabasesMetaData, finishInitialization, generateCheckSum, generateRollbackStatements, getAffectedDatabaseObjects, getChangeSet, getDescription, getResourceAccessor, getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, isInvalidProperty, load, serialize, serializeValue, setChangeSet, setResourceAccessor, supports, supportsRollback
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

finalCommandArray

protected List<String> finalCommandArray
Constructor Detail

ExecuteShellCommandChange

public ExecuteShellCommandChange()
Method Detail

generateStatementsVolatile

public boolean generateStatementsVolatile(Database database)
Description copied from class: AbstractChange
Implementation delegates logic to the SqlGenerator.generateStatementsIsVolatile(Database) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database). If zero or null SqlStatements are returned by generateStatements then this method returns false.

Specified by:
generateStatementsVolatile in interface Change
Overrides:
generateStatementsVolatile in class AbstractChange

generateRollbackStatementsVolatile

public boolean generateRollbackStatementsVolatile(Database database)
Description copied from class: AbstractChange
Implementation delegates logic to the SqlGenerator.generateRollbackStatementsIsVolatile(Database) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database) If no or null SqlStatements are returned by generateRollbackStatements then this method returns false.

Specified by:
generateRollbackStatementsVolatile in interface Change
Overrides:
generateRollbackStatementsVolatile in class AbstractChange

getExecutable

public String getExecutable()

setExecutable

public void setExecutable(String executable)

addArg

public void addArg(String arg)

getArgs

public List<String> getArgs()

setOs

public void setOs(String os)

getOs

public List<String> getOs()

validate

public ValidationErrors validate(Database database)
Description copied from class: AbstractChange
Implementation checks the ChangeParameterMetaData for declared required fields and also delegates logic to the SqlGenerator.validate(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database). If no or null SqlStatements are returned by generateStatements then this method returns no errors. If there are no parameters than this method returns no errors

Specified by:
validate in interface Change
Overrides:
validate in class AbstractChange

warn

public Warnings warn(Database database)
Description copied from class: AbstractChange
Implementation delegates logic to the SqlGenerator.warn(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database). If a generated statement is not supported for the given database, no warning will be added since that is a validation error. If no or null SqlStatements are returned by generateStatements then this method returns no warnings.

Specified by:
warn in interface Change
Overrides:
warn in class AbstractChange

generateStatements

public SqlStatement[] generateStatements(Database database)
Description copied from interface: Change
Generates the SqlStatement objects required to run the change for the given database.

NOTE: This method may be called multiple times throughout the changelog execution process and may be called in documentation generation and other integration points as well.

If this method reads from the current database state or uses any other logic that will be affected by whether previous changeSets have ran or not, you must return true from Change.generateStatementsVolatile(liquibase.database.Database).


nonExecutedCleanup

protected void nonExecutedCleanup()

createFinalCommandArray

protected List<String> createFinalCommandArray(Database database)

executeCommand

protected void executeCommand(Database database)
                       throws Exception
Throws:
Exception

createProcessBuilder

protected ProcessBuilder createProcessBuilder(Database database)

getConfirmationMessage

public String getConfirmationMessage()
Description copied from interface: Change
Confirmation message to be displayed after the change is executed. Should include relevant configuration settings to make it as helpful as possible. This method may be called outside the changelog execution process, such as in documentation generation.


getCommandString

protected String getCommandString()

getSerializedObjectNamespace

public String getSerializedObjectNamespace()
Specified by:
getSerializedObjectNamespace in interface LiquibaseSerializable
Overrides:
getSerializedObjectNamespace in class AbstractChange

customLoadLogic

protected void customLoadLogic(ParsedNode parsedNode,
                               ResourceAccessor resourceAccessor)
                        throws ParsedNodeException
Overrides:
customLoadLogic in class AbstractChange
Throws:
ParsedNodeException

toString

public String toString()
Overrides:
toString in class AbstractChange


Copyright © 2016 Liquibase.org. All rights reserved.