public class DataContextUtils
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static interface |
DataContextUtils.EnvironmentConfigurable
Can be configured with environment variables
|
static class |
DataContextUtils.UnresolvedDataReferenceException
Indicates that the value of a property reference could not be resolved.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ENV_VAR_PREFIX
Prefix string used for all environment variable names
|
static java.lang.String |
PROPERTY_REF_REGEX |
static Converter<java.lang.String,java.lang.String> |
replaceMissingOptionsWithBlank
A converter which replaces '${option.*}' with blank when replacing data references
|
static org.apache.commons.collections.Predicate |
stringContainsPropertyReferencePredicate
evaluates to true if a string contains a property reference
|
Constructor and Description |
---|
DataContextUtils() |
Modifier and Type | Method and Description |
---|---|
static java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> |
addContext(java.lang.String key,
java.util.Map<java.lang.String,java.lang.String> data,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context)
Return a new context with appended data set
|
static void |
addEnvVars(DataContextUtils.EnvironmentConfigurable sshexecTask,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
add Env elements to pass environment variables to the ExtSSHExec
|
static void |
addEnvVarsFromContextForExec(org.apache.tools.ant.taskdefs.ExecTask execTask,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
Add embedded env elements for any included context data for the script
|
static java.lang.String |
escapeShell(java.lang.String s)
Escape characters meaningful to bash shell unless the string is already surrounded in single quotes
|
static java.lang.String |
escapeWindowsShell(java.lang.String s)
Escape characters meaningful to windows unless the string is already surrounded in single quotes
|
static java.util.Map<java.lang.String,java.lang.String> |
flattenDataContext(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext) |
static java.lang.String |
generateEnvVarName(java.lang.String key)
Generate environment variable name from option name
|
static java.util.Map<java.lang.String,java.lang.String> |
generateEnvVarsFromContext(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext) |
static java.util.Map<java.lang.String,java.lang.String> |
generateEnvVarsFromData(java.util.Map<java.lang.String,java.lang.String> options,
java.lang.String prefix)
Convert option keys into environment variable names.
|
static java.lang.String |
join(java.util.Collection<java.lang.String> list,
java.lang.String separator)
Join a list of strings into a single string with a separator
|
static java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> |
merge(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> targetContext,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> newContext)
Merge one context onto another by adding or replacing values.
|
static java.util.Map<java.lang.String,java.lang.String> |
nodeData(INodeEntry nodeentry)
Generate a dataset for a INodeEntry
|
static java.util.Map<java.lang.String,java.lang.Object> |
replaceDataReferences(java.util.Map<java.lang.String,java.lang.Object> input,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
Recursively replace data references in the values in a map which contains either string, collection or Map
values.
|
static java.lang.String[] |
replaceDataReferences(java.lang.String[] args,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
Replace the embedded properties of the form '${key.name}' in the input Strings with the value from the data
context
|
static java.lang.String[] |
replaceDataReferences(java.lang.String[] args,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data,
Converter<java.lang.String,java.lang.String> converter,
boolean failIfUnexpanded)
Replace the embedded properties of the form '${key.name}' in the input Strings with the value from the data
context
|
static java.lang.String[] |
replaceDataReferences(java.lang.String[] args,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data,
Converter<java.lang.String,java.lang.String> converter,
boolean failIfUnexpanded,
boolean blankIfUnexpanded)
Replace the embedded properties of the form '${key.name}' in the input Strings with the value from the data
context
|
static java.lang.String |
replaceDataReferences(java.lang.String input,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
Replace the embedded properties of the form '${key.name}' in the input Strings with the value from the data
context
|
static java.lang.String |
replaceDataReferences(java.lang.String input,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data,
Converter<java.lang.String,java.lang.String> converter,
boolean failOnUnexpanded)
Replace the embedded properties of the form '${key.name}' in the input Strings with the value from the data
context
|
static java.lang.String |
replaceDataReferences(java.lang.String input,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data,
Converter<java.lang.String,java.lang.String> converter,
boolean failOnUnexpanded,
boolean blankIfUnexpanded)
Replace the embedded properties of the form '${key.name}' in the input Strings with the value from the data
context
|
static Converter<java.lang.String,java.lang.String> |
replaceDataReferencesConverter(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
Return a converter that can expand the property references within a string
|
static Converter<java.lang.String,java.lang.String> |
replaceDataReferencesConverter(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data,
Converter<java.lang.String,java.lang.String> converter,
boolean failOnUnexpanded)
Return a converter that can expand the property references within a string
|
static java.io.File |
replaceTokensInFile(java.io.File sourceFile,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext,
Framework framework,
ScriptfileUtils.LineEndingStyle style)
Copies the source file to a temp file, replacing the @key.X@ tokens with the values from the
data context
|
static java.io.File |
replaceTokensInFile(java.io.File sourceFile,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext,
Framework framework,
ScriptfileUtils.LineEndingStyle style,
java.io.File destination)
Copies the source file to a destination file, replacing the @key.X@ tokens with the values
from the data context
|
static java.io.File |
replaceTokensInScript(java.lang.String script,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext,
Framework framework,
ScriptfileUtils.LineEndingStyle style)
Copies the source file to a temp file, replacing the @key.X@ tokens with the values from the
data context
|
static java.io.File |
replaceTokensInScript(java.lang.String script,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext,
Framework framework,
ScriptfileUtils.LineEndingStyle style,
java.io.File destination)
Copies the source file to a file, replacing the @key.X@ tokens with the values from the data
context
|
static java.io.File |
replaceTokensInStream(java.io.InputStream stream,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext,
Framework framework,
ScriptfileUtils.LineEndingStyle style)
Copies the source stream to a temp file, replacing the @key.X@ tokens with the values from the data context
|
static java.io.File |
replaceTokensInStream(java.io.InputStream stream,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext,
Framework framework,
ScriptfileUtils.LineEndingStyle style,
java.io.File destination)
Copies the source stream to a temp file or specific destination, replacing the @key.X@ tokens
with the values from the data context
|
static java.lang.String |
resolve(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data,
java.lang.String group,
java.lang.String key)
Return the resolved value from the context
|
static java.lang.String |
resolve(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data,
java.lang.String group,
java.lang.String key,
java.lang.String defaultValue)
Return the resolved value from the context
|
public static final java.lang.String ENV_VAR_PREFIX
public static final java.lang.String PROPERTY_REF_REGEX
public static final org.apache.commons.collections.Predicate stringContainsPropertyReferencePredicate
public static final Converter<java.lang.String,java.lang.String> replaceMissingOptionsWithBlank
public static Converter<java.lang.String,java.lang.String> replaceDataReferencesConverter(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
data
- property context datapublic static Converter<java.lang.String,java.lang.String> replaceDataReferencesConverter(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data, Converter<java.lang.String,java.lang.String> converter, boolean failOnUnexpanded)
data
- property context dataconverter
- secondary converter to apply to property values before replacing in a stringfailOnUnexpanded
- if true, fail if a property value cannot be expandedpublic static java.lang.String[] replaceDataReferences(java.lang.String[] args, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data, Converter<java.lang.String,java.lang.String> converter, boolean failIfUnexpanded)
args
- argument string arraydata
- data contextconverter
- converterfailIfUnexpanded
- true to fail if property is not foundpublic static java.lang.String[] replaceDataReferences(java.lang.String[] args, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data, Converter<java.lang.String,java.lang.String> converter, boolean failIfUnexpanded, boolean blankIfUnexpanded)
args
- argument string arraydata
- data contextconverter
- converterfailIfUnexpanded
- true to fail if property is not foundblankIfUnexpanded
- true to use blank if property is not foundpublic static java.lang.String[] replaceDataReferences(java.lang.String[] args, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
args
- argument string arraydata
- data contextpublic static java.util.Map<java.lang.String,java.lang.Object> replaceDataReferences(java.util.Map<java.lang.String,java.lang.Object> input, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
input
- input mapdata
- context datapublic static java.lang.String resolve(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data, java.lang.String group, java.lang.String key)
data
- data contextgroup
- group namekey
- key namepublic static java.lang.String resolve(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data, java.lang.String group, java.lang.String key, java.lang.String defaultValue)
data
- data contextgroup
- group namekey
- key namedefaultValue
- default if the value is not resolvablepublic static java.lang.String replaceDataReferences(java.lang.String input, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data)
input
- input stringdata
- data context mappublic static java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> merge(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> targetContext, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> newContext)
targetContext
- the target of the mergenewContext
- context to mergepublic static java.lang.String replaceDataReferences(java.lang.String input, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data, Converter<java.lang.String,java.lang.String> converter, boolean failOnUnexpanded)
input
- input stringdata
- data context mapconverter
- converter to encode/convert the expanded valuesfailOnUnexpanded
- true to fail if a reference is not foundpublic static java.lang.String replaceDataReferences(java.lang.String input, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> data, Converter<java.lang.String,java.lang.String> converter, boolean failOnUnexpanded, boolean blankIfUnexpanded)
input
- input stringdata
- data context mapconverter
- converter to encode/convert the expanded valuesfailOnUnexpanded
- true to fail if a reference is not foundblankIfUnexpanded
- true to use blank if a reference is not foundpublic static java.lang.String escapeShell(java.lang.String s)
s
- stringpublic static java.lang.String escapeWindowsShell(java.lang.String s)
s
- stringpublic static java.io.File replaceTokensInFile(java.io.File sourceFile, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext, Framework framework, ScriptfileUtils.LineEndingStyle style) throws java.io.IOException
sourceFile
- source filedataContext
- input data contextframework
- the frameworkstyle
- line ending stylejava.io.IOException
- on io errorpublic static java.io.File replaceTokensInFile(java.io.File sourceFile, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext, Framework framework, ScriptfileUtils.LineEndingStyle style, java.io.File destination) throws java.io.IOException
sourceFile
- source filedataContext
- input data contextframework
- the frameworkstyle
- line ending styledestination
- destination file, or null to create a new temp filejava.io.IOException
- on io errorpublic static java.io.File replaceTokensInScript(java.lang.String script, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext, Framework framework, ScriptfileUtils.LineEndingStyle style) throws java.io.IOException
script
- source file pathdataContext
- input data contextframework
- the frameworkstyle
- line ending stylejava.io.IOException
- on io errorpublic static java.io.File replaceTokensInScript(java.lang.String script, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext, Framework framework, ScriptfileUtils.LineEndingStyle style, java.io.File destination) throws java.io.IOException
script
- source file pathdataContext
- input data contextframework
- the frameworkstyle
- line ending styledestination
- destination file, or null to create a temp filejava.io.IOException
- on io errorpublic static java.io.File replaceTokensInStream(java.io.InputStream stream, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext, Framework framework, ScriptfileUtils.LineEndingStyle style) throws java.io.IOException
stream
- source streamdataContext
- input data contextframework
- the frameworkstyle
- script file line ending style to usejava.io.IOException
- on io errorpublic static java.io.File replaceTokensInStream(java.io.InputStream stream, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext, Framework framework, ScriptfileUtils.LineEndingStyle style, java.io.File destination) throws java.io.IOException
stream
- source streamdataContext
- input data contextframework
- the frameworkstyle
- script file line ending style to usedestination
- destination filejava.io.IOException
- on io errorpublic static java.util.Map<java.lang.String,java.lang.String> flattenDataContext(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
dataContext
- datapublic static java.util.Map<java.lang.String,java.lang.String> generateEnvVarsFromData(java.util.Map<java.lang.String,java.lang.String> options, java.lang.String prefix)
options
- the input optionsprefix
- prefixpublic static void addEnvVarsFromContextForExec(org.apache.tools.ant.taskdefs.ExecTask execTask, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
dataContext
- dataexecTask
- execTaskpublic static void addEnvVars(DataContextUtils.EnvironmentConfigurable sshexecTask, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
sshexecTask
- taskdataContext
- datapublic static java.util.Map<java.lang.String,java.lang.String> generateEnvVarsFromContext(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
dataContext
- datapublic static java.lang.String generateEnvVarName(java.lang.String key)
key
- keypublic static java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> addContext(java.lang.String key, java.util.Map<java.lang.String,java.lang.String> data, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context)
key
- data keydata
- data contentcontext
- original contextpublic static java.util.Map<java.lang.String,java.lang.String> nodeData(INodeEntry nodeentry)
nodeentry
- nodepublic static java.lang.String join(java.util.Collection<java.lang.String> list, java.lang.String separator)
list
- stringsseparator
- separator