org.dbmaintain.script.repository.impl
Class FileSystemScriptLocation

java.lang.Object
  extended by org.dbmaintain.script.repository.ScriptLocation
      extended by org.dbmaintain.script.repository.impl.FileSystemScriptLocation

public class FileSystemScriptLocation
extends ScriptLocation

Script container that looks for scripts in a file system directory and its subdirectories. The scripts directory can optionally contain config file ScriptLocation.LOCATION_PROPERTIES_FILENAME, that defines all properties that are applicable to the script organization.

Author:
Filip Neven, Tim Ducheyne

Field Summary
 
Fields inherited from class org.dbmaintain.script.repository.ScriptLocation
baseLineRevision, ignoreCarriageReturnsWhenCalculatingCheckSum, LOCATION_PROPERTIES_FILENAME, patchQualifiers, postProcessingScriptDirName, qualifierRegexp, registeredQualifiers, scriptEncoding, scriptFactory, scriptFileExtensions, scriptIndexRegexp, scriptLocationName, scripts, targetDatabaseRegexp
 
Constructor Summary
FileSystemScriptLocation(File scriptLocation, String defaultScriptEncoding, String defaultPostProcessingScriptDirName, Set<Qualifier> defaultRegisteredQualifiers, Set<Qualifier> defaultPatchQualifiers, String defaultScriptIndexRegexp, String defaultQualifierRegexp, String defaultTargetDatabaseRegexp, Set<String> defaultScriptFileExtensions, ScriptIndexes baseLineRevision, boolean ignoreCarriageReturnsWhenCalculatingCheckSum)
          Constructor for FileSystemScriptLocation.
 
Method Summary
protected  void assertValidScriptLocation(File scriptLocation)
          Asserts that the script root directory exists
protected  Script createScript(File scriptFile, String relativeScriptFileName)
          Creates a script object for the given script file
protected  Properties getCustomProperties(File scriptLocation)
           
protected  void getScriptsAt(SortedSet<Script> scripts, String scriptRoot, String relativeLocation)
          Adds all scripts available in the given directory or one of its subdirectories to the given set of files.
protected  SortedSet<Script> loadScripts(File scriptLocation)
           
 
Methods inherited from class org.dbmaintain.script.repository.ScriptLocation
assertValidScriptExtensions, createQualifiers, createScript, createScriptFactory, getLocationName, getPatchQualifiers, getPostProcessingScriptDirName, getQualifierRegexp, getRegisteredQualifiers, getScriptEncoding, getScriptFileExtensions, getScripts, getTargetDatabaseRegexp, isScriptFileName, overrideValuesWithCustomConfiguration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileSystemScriptLocation

public FileSystemScriptLocation(File scriptLocation,
                                String defaultScriptEncoding,
                                String defaultPostProcessingScriptDirName,
                                Set<Qualifier> defaultRegisteredQualifiers,
                                Set<Qualifier> defaultPatchQualifiers,
                                String defaultScriptIndexRegexp,
                                String defaultQualifierRegexp,
                                String defaultTargetDatabaseRegexp,
                                Set<String> defaultScriptFileExtensions,
                                ScriptIndexes baseLineRevision,
                                boolean ignoreCarriageReturnsWhenCalculatingCheckSum)
Constructor for FileSystemScriptLocation.

Parameters:
scriptLocation - The file system directory that is the root of this script location
defaultScriptEncoding - The default script encoding. Only used if not overridden in ScriptLocation.LOCATION_PROPERTIES_FILENAME.
defaultPostProcessingScriptDirName - The default postprocessing script dir name. Only used if not overridden in ScriptLocation.LOCATION_PROPERTIES_FILENAME.
defaultRegisteredQualifiers - The default registered qualifiers
defaultPatchQualifiers - The default qualfiers that indicate a patch file. Only used if not overridden in ScriptLocation.LOCATION_PROPERTIES_FILENAME.
defaultScriptIndexRegexp - The default script index regexp. Only used if not overridden in ScriptLocation.LOCATION_PROPERTIES_FILENAME.
defaultQualifierRegexp - The default qualifier regexp. Only used if not overridden in ScriptLocation.LOCATION_PROPERTIES_FILENAME.
defaultTargetDatabaseRegexp - The default target database regexp. Only used if not overridden in ScriptLocation.LOCATION_PROPERTIES_FILENAME.
defaultScriptFileExtensions - The default script extensions. Only used if not overridden in ScriptLocation.LOCATION_PROPERTIES_FILENAME.
baseLineRevision - The baseline revision. If set, all scripts with a lower revision will be ignored
ignoreCarriageReturnsWhenCalculatingCheckSum - If true, carriage return chars will be ignored when calculating check sums
Method Detail

assertValidScriptLocation

protected void assertValidScriptLocation(File scriptLocation)
Asserts that the script root directory exists

Specified by:
assertValidScriptLocation in class ScriptLocation
Parameters:
scriptLocation - The location to validate, not null

getCustomProperties

protected Properties getCustomProperties(File scriptLocation)
Overrides:
getCustomProperties in class ScriptLocation
Returns:
if a location properties file ScriptLocation.LOCATION_PROPERTIES_FILENAME is available, a Properties file with the properties from this file. Returns null if such a file is not available.
Throws:
DbMaintainException - if the properties file is invalid

loadScripts

protected SortedSet<Script> loadScripts(File scriptLocation)
Specified by:
loadScripts in class ScriptLocation
Returns:
all available scripts, loaded from the file system

getScriptsAt

protected void getScriptsAt(SortedSet<Script> scripts,
                            String scriptRoot,
                            String relativeLocation)
Adds all scripts available in the given directory or one of its subdirectories to the given set of files. Recursively invokes itself to handle subdirectories.

Parameters:
scripts - aggregates the scripts found up until now during recursion.
scriptRoot - the root script directory
relativeLocation - the subdirectory in which we are now looking for scripts

createScript

protected Script createScript(File scriptFile,
                              String relativeScriptFileName)
Creates a script object for the given script file

Parameters:
scriptFile - the script file, not null
relativeScriptFileName - the name of the script file relative to the root scripts dir, not null
Returns:
The script, not null


Copyright © 2011. All Rights Reserved.