}
final Interpolator interpolator = new RegexBasedInterpolator();
interpolator.addValueSource( new MapBasedValueSource( filterProperties ) );
interpolator.addValueSource( new EnvarBasedValueSource() );
interpolator.addValueSource( new ObjectBasedValueSource( project )
{
/** {@inheritDoc} */
public Object getValue( final String expression )
{
try
{
return ReflectionValueExtractor.evaluate( expression, project );
}
catch ( Exception e )
{
addFeedback( "Failed to extract \'" + expression + "\' from: " + project, e );
}
return null;
}
} );
final DateBean bean = new DateBean();
interpolator.addValueSource( new ObjectBasedValueSource( bean ) );
reader = ReaderFactory.newXmlReader( docDescriptor );
final String interpolatedDoc = interpolator.interpolate( IOUtil.toString( reader ) );