Class ResourceKeyspacePopulator
- All Implemented Interfaces:
KeyspacePopulator
- Call
addScript(org.springframework.core.io.Resource)
to add a single CQL script location. - Call
addScripts(org.springframework.core.io.Resource...)
to add multiple CQL script locations. - Consult the setter methods in this class for further configuration options.
- Call
populate(com.datastax.oss.driver.api.core.CqlSession)
orexecute(org.springframework.data.cassandra.SessionFactory)
to initialize or clean up the database using the configured scripts.
- Since:
- 3.0
- Author:
- Mark Paluch
- See Also:
-
Constructor Summary
ConstructorDescriptionConstruct a newResourceKeyspacePopulator
with default settings.ResourceKeyspacePopulator
(boolean continueOnError, boolean ignoreFailedDrops, String cqlScriptEncoding, Resource... scripts) Construct a newResourceKeyspacePopulator
with the supplied values.ResourceKeyspacePopulator
(Resource... scripts) Construct a newResourceKeyspacePopulator
with default settings for the supplied scripts. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a script to execute to initialize or clean up the database.void
addScripts
(Resource... scripts) Add multiple scripts to execute to initialize or clean up the database.void
execute
(SessionFactory sessionFactory) Execute thisResourceKeyspacePopulator
against the givenSessionFactory
.void
populate
(com.datastax.oss.driver.api.core.CqlSession session) Populate, initialize, or clean up the database using the provided CqlSession connection.void
setBlockCommentEndDelimiter
(String blockCommentEndDelimiter) Set the end delimiter that identifies block comments within the CQL scripts.void
setBlockCommentStartDelimiter
(String blockCommentStartDelimiter) Set the start delimiter that identifies block comments within the CQL scripts.void
setCommentPrefix
(String commentPrefix) Set the prefix that identifies single-line comments within the CQL scripts.void
setCommentPrefixes
(String... commentPrefixes) Set the prefixes that identify single-line comments within the CQL scripts.void
setContinueOnError
(boolean continueOnError) Flag to indicate that all failures in CQL should be logged but not cause a failure.void
setCqlScriptEncoding
(String cqlScriptEncoding) Specify the encoding for the configured CQL scripts, if different from the platform encoding.void
setIgnoreFailedDrops
(boolean ignoreFailedDrops) Flag to indicate that a failed CQLDROP
statement can be ignored.void
setScripts
(Resource... scripts) Set the scripts to execute to initialize or clean up the database, replacing any previously added scripts.void
setSeparator
(String separator) Specify the statement separator, if a custom one.
-
Constructor Details
-
ResourceKeyspacePopulator
public ResourceKeyspacePopulator()Construct a newResourceKeyspacePopulator
with default settings. -
ResourceKeyspacePopulator
Construct a newResourceKeyspacePopulator
with default settings for the supplied scripts.- Parameters:
scripts
- the scripts to execute to initialize or clean up the database (never null)
-
ResourceKeyspacePopulator
public ResourceKeyspacePopulator(boolean continueOnError, boolean ignoreFailedDrops, @Nullable String cqlScriptEncoding, Resource... scripts) Construct a newResourceKeyspacePopulator
with the supplied values.- Parameters:
continueOnError
- flag to indicate that all failures in CQL should be logged but not cause a failureignoreFailedDrops
- flag to indicate that a failed CQLDROP
statement can be ignoredcqlScriptEncoding
- the encoding for the supplied CQL scripts (may be null or empty to indicate platform encoding)scripts
- the scripts to execute to initialize or clean up the database (never null)
-
-
Method Details
-
addScript
Add a script to execute to initialize or clean up the database.- Parameters:
script
- the path to an CQL script (never null).
-
addScripts
Add multiple scripts to execute to initialize or clean up the database.- Parameters:
scripts
- the scripts to execute (never null).
-
setScripts
Set the scripts to execute to initialize or clean up the database, replacing any previously added scripts.- Parameters:
scripts
- the scripts to execute (never null).
-
setCqlScriptEncoding
Specify the encoding for the configured CQL scripts, if different from the platform encoding.- Parameters:
cqlScriptEncoding
- the encoding used in scripts (may be null or empty to indicate platform encoding).- See Also:
-
setSeparator
Specify the statement separator, if a custom one.Defaults to
";"
if not specified and falls back to"\n"
as a last resort; may be set toScriptUtils.EOF_STATEMENT_SEPARATOR
to signal that each script contains a single statement without a separator.- Parameters:
separator
- the script statement separator.
-
setCommentPrefix
Set the prefix that identifies single-line comments within the CQL scripts.Defaults to
"--"
.- Parameters:
commentPrefix
- the prefix for single-line comments.- See Also:
-
setCommentPrefixes
Set the prefixes that identify single-line comments within the CQL scripts.Defaults to
["--"]
.- Parameters:
commentPrefixes
- the prefixes for single-line comments.
-
setBlockCommentStartDelimiter
Set the start delimiter that identifies block comments within the CQL scripts.Defaults to
"/*"
.- Parameters:
blockCommentStartDelimiter
- the start delimiter for block comments (never null or empty).- See Also:
-
setBlockCommentEndDelimiter
Set the end delimiter that identifies block comments within the CQL scripts.Defaults to
"*/"
.- Parameters:
blockCommentEndDelimiter
- the end delimiter for block comments (never null or empty).- See Also:
-
setContinueOnError
public void setContinueOnError(boolean continueOnError) Flag to indicate that all failures in CQL should be logged but not cause a failure.Defaults to false.
- Parameters:
continueOnError
- true if script execution should continue on error
-
setIgnoreFailedDrops
public void setIgnoreFailedDrops(boolean ignoreFailedDrops) Flag to indicate that a failed CQLDROP
statement can be ignored.This is useful for a non-embedded database whose CQL dialect does not support an
IF EXISTS
clause in aDROP
statement.The default is false so that if the populator runs accidentally, it will fail fast if a script starts with a
DROP
statement.- Parameters:
ignoreFailedDrops
- true if failed drop statements should be ignored.
-
populate
Description copied from interface:KeyspacePopulator
Populate, initialize, or clean up the database using the provided CqlSession connection.Concrete implementations may throw a
RuntimeException
if an error is encountered but are strongly encouraged to throw a specificScriptException
instead. For example, Spring'sResourceKeyspacePopulator
wrap all exceptions inScriptExceptions
.- Specified by:
populate
in interfaceKeyspacePopulator
- Parameters:
session
- the CQLCqlSession
to use to populate the keyspace; already configured and ready to use; never null- Throws:
ScriptException
- in all other error cases
-
execute
Execute thisResourceKeyspacePopulator
against the givenSessionFactory
.- Parameters:
sessionFactory
- theSessionFactory
to execute against (never null)- Throws:
ScriptException
- if an error occurs- See Also:
-