Class AbstractStringBasedModelInterpolator
java.lang.Object
org.codehaus.plexus.logging.AbstractLogEnabled
org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator
- All Implemented Interfaces:
ModelInterpolator
,org.codehaus.plexus.logging.LogEnabled
,org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
- Direct Known Subclasses:
RegexBasedModelInterpolator
,StringSearchModelInterpolator
public abstract class AbstractStringBasedModelInterpolator
extends org.codehaus.plexus.logging.AbstractLogEnabled
implements ModelInterpolator, org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
Use a regular expression search to find and resolve expressions within the POM.
- Version:
- $Id: AbstractStringBasedModelInterpolator.java 767323 2009-04-21 22:53:31Z jdcasey $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.codehaus.plexus.interpolation.Interpolator
private PathTranslator
private org.codehaus.plexus.interpolation.RecursionInterceptor
Fields inherited from interface org.apache.maven.project.interpolation.ModelInterpolator
BUILD_TIMESTAMP_FORMAT_PROPERTY, DEFAULT_BUILD_TIMESTAMP_FORMAT, ROLE
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
protected
AbstractStringBasedModelInterpolator
(PathTranslator pathTranslator) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract org.codehaus.plexus.interpolation.Interpolator
protected List<org.codehaus.plexus.interpolation.InterpolationPostProcessor>
createPostProcessors
(Model model, File projectDir, ProjectBuilderConfiguration config) protected List<org.codehaus.plexus.interpolation.ValueSource>
createValueSources
(Model model, File projectDir, ProjectBuilderConfiguration config) protected final org.codehaus.plexus.interpolation.Interpolator
protected org.codehaus.plexus.interpolation.RecursionInterceptor
void
interpolate
(String src, Model model, File projectDir, ProjectBuilderConfiguration config, boolean debug) Interpolates all expressions in the src parameter.interpolate
(Model model, File projectDir, ProjectBuilderConfiguration config, boolean debugEnabled) interpolate
(Model model, Map<String, ?> context) interpolate
(Model model, Map<String, ?> context, boolean strict) Deprecated.protected String
interpolateInternal
(String src, List<org.codehaus.plexus.interpolation.ValueSource> valueSources, List<org.codehaus.plexus.interpolation.InterpolationPostProcessor> postProcessors, boolean debug) protected void
setRecursionInterceptor
(org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor) Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
Field Details
-
PROJECT_PREFIXES
-
TRANSLATED_PATH_EXPRESSIONS
-
pathTranslator
-
interpolator
private org.codehaus.plexus.interpolation.Interpolator interpolator -
recursionInterceptor
private org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor
-
-
Constructor Details
-
AbstractStringBasedModelInterpolator
-
AbstractStringBasedModelInterpolator
protected AbstractStringBasedModelInterpolator()- Throws:
IOException
- This exception is not thrown any more, and needs to be removed.
-
-
Method Details
-
interpolate
- Specified by:
interpolate
in interfaceModelInterpolator
- Throws:
ModelInterpolationException
-
interpolate
public Model interpolate(Model model, Map<String, ?> context, boolean strict) throws ModelInterpolationExceptionDeprecated.Serialize the inbound Model instance to a StringWriter, perform the regex replacement to resolve POM expressions, then re-parse into the resolved Model instance.
NOTE: This will result in a different instance of Model being returned!!!- Specified by:
interpolate
in interfaceModelInterpolator
- Parameters:
model
- The inbound Model instance, to serialize and reference for expression resolutioncontext
- The other context map to be used during resolution- Returns:
- The resolved instance of the inbound Model. This is a different instance!
- Throws:
ModelInterpolationException
-
interpolate
public Model interpolate(Model model, File projectDir, ProjectBuilderConfiguration config, boolean debugEnabled) throws ModelInterpolationException - Specified by:
interpolate
in interfaceModelInterpolator
- Throws:
ModelInterpolationException
-
interpolate
public String interpolate(String src, Model model, File projectDir, ProjectBuilderConfiguration config, boolean debug) throws ModelInterpolationException Interpolates all expressions in the src parameter.The algorithm used for each expression is:
- If it starts with either "pom." or "project.", the expression is evaluated against the model.
- If the value is null, get the value from the context.
- If the value is null, but the context contains the expression, don't replace the expression string with the value, and continue to find other expressions.
- If the value is null, get it from the model properties.
- Specified by:
interpolate
in interfaceModelInterpolator
- Parameters:
overrideContext
-outputDebugMessages
-- Throws:
ModelInterpolationException
-
createValueSources
protected List<org.codehaus.plexus.interpolation.ValueSource> createValueSources(Model model, File projectDir, ProjectBuilderConfiguration config) -
createPostProcessors
protected List<org.codehaus.plexus.interpolation.InterpolationPostProcessor> createPostProcessors(Model model, File projectDir, ProjectBuilderConfiguration config) -
interpolateInternal
protected String interpolateInternal(String src, List<org.codehaus.plexus.interpolation.ValueSource> valueSources, List<org.codehaus.plexus.interpolation.InterpolationPostProcessor> postProcessors, boolean debug) throws ModelInterpolationException - Throws:
ModelInterpolationException
-
getRecursionInterceptor
protected org.codehaus.plexus.interpolation.RecursionInterceptor getRecursionInterceptor() -
setRecursionInterceptor
protected void setRecursionInterceptor(org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor) -
createInterpolator
protected abstract org.codehaus.plexus.interpolation.Interpolator createInterpolator() -
initialize
public void initialize() throws org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException- Specified by:
initialize
in interfaceorg.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
- Throws:
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
-
getInterpolator
protected final org.codehaus.plexus.interpolation.Interpolator getInterpolator()
-
ModelInterpolator.interpolate(Model, File, ProjectBuilderConfiguration, boolean)
instead.