package org.sonar.plugins.profiler; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.sonar.api.batch.Phase; import org.sonar.api.batch.Sensor; import org.sonar.api.batch.SensorContext; import org.sonar.api.resources.Project; import org.sonar.api.resources.ProjectFileSystem; import org.sonar.api.utils.SonarException; import java.io.File; import java.io.IOException; /** * @author Evgeny Mandrikov */ @Phase(name = Phase.Name.PRE) @Deprecated public class ProfilerConfigGenerator implements Sensor { public void analyse(Project project, SensorContext context) { ProjectFileSystem fileSystem = project.getFileSystem(); File template = new File(fileSystem.getBasedir(), "/profiler-template.xml"); File config = new File(fileSystem.getBuildDir(), "/profiler/config.xml"); String license = getLicense(project); try { generateConfig(template, license, config); } catch (Exception e) { throw new SonarException(e); } } public boolean shouldExecuteOnProject(Project project) { // TODO template should exist return isLicenseDefined(project); } public void generateConfig(File template, String license, File config) throws IOException { FileUtils.writeStringToFile(config, insertLicense(FileUtils.readFileToString(template), license)); } protected String insertLicense(String config, String license) { return StringUtils.replace(config, "@LICENSE@", license); } @Override public String toString() { return getClass().getSimpleName(); } protected static String getLicense(Project project) { return project.getConfiguration().getString(ProfilerPlugin.LICENSE_PROPERTY); } protected static boolean isLicenseDefined(Project project) { return !StringUtils.isBlank(getLicense(project)); } }