PropertiesExpressionSource propsSource = new PropertiesExpressionSource();
propsSource.setProperties( props );
evaluator.addExpressionSource( propsSource );
evaluator.addExpressionSource( new SystemPropertyExpressionSource() );
ArchivaProjectModel ret = ArchivaModelCloner.clone( model );
try
{
ret.setVersion( evaluator.expand( ret.getVersion() ) );
ret.setGroupId( evaluator.expand( ret.getGroupId() ) );
if ( CollectionUtils.isNotEmpty( ret.getDependencies() ) )
{
evaluateExpressionsInDependencyList( evaluator, ret.getDependencies() );
}
evaluateExpressionsInDependencyList( evaluator, ret.getDependencyManagement() );
}
catch ( EvaluatorException e )
{
throw new ProjectModelException( "Unable to evaluate expression in model: " + e.getMessage(), e );
}