class BuildPropertiesParserImpl implements BuildPropertiesParser, Disposable {

    protected void interpolate(Properties properties, File baseDir) {
        if (properties.isEmpty()) {
            return;
        }
        MavenSession mavenSession = legacySupport.getSession();
        if (mavenSession == null) {
            logger.warn("No maven session available, values in the build.properties will not be interpolated!");
            return;
        }
        // find the maven project for the currently used basedir, so that the correct maven project is used by the interpolator.
        // if no project could be found, it does not make sense to interpolate the properties
        MavenProject mavenProject = MavenSessionUtils.getMavenProject(mavenSession, baseDir);
        if (mavenProject == null) {
            logger.warn("No maven project found for baseDir '" + baseDir.getAbsolutePath()
                    + "', values in the build.properties will not be interpolated!");
            return;
        }
        TychoInterpolator interpolator = new TychoInterpolator(mavenSession, mavenProject);

        for (Entry<Object, Object> entry : properties.entrySet()) {
            entry.setValue(interpolator.interpolate((String) entry.getValue()));
        }
    }

    public  BuildPropertiesParserImpl();
    protected  BuildPropertiesParserImpl(LegacySupport legacySupport, Logger logger);

}