// Path: sonar-plugin-common/src/main/java/jetbrains/buildserver/sonarplugin/Constants.java
// public final class Constants {
//     /**
//      * Plugin name. Same as Runner type.
//      */
//     public static final String RUNNER_TYPE = "sonar-plugin";
//     /**
//      * Name of SonarQube Server link artifact file
//      */
//     public static final String SONAR_SERVER_URL_FILENAME = "sonar_server.txt";
//     /**
//      * Location of SonarQube Server link artifact file
//      */
//     public static final String SONAR_SERVER_URL_ARTIF_LOCATION = ".teamcity/sonar/";
//     /**
//      * Full location of SonarQube Server link artifact file
//      */
//     public static final String SONAR_SERVER_URL_ARTIF_LOCATION_FULL = SONAR_SERVER_URL_ARTIF_LOCATION + SONAR_SERVER_URL_FILENAME;
// 
//     public static final String SONAR_HOST_URL = "sonar.host.url";
//     public static final String SONAR_SERVER_JDBC_URL = "sonar.jdbc.url";
//     public static final String SONAR_SERVER_JDBC_USERNAME = "sonar.jdbc.username";
//     public static final String SONAR_SERVER_JDBC_PASSWORD = "sonar.jdbc.password";
//     public static final String SONAR_TOKEN = "sonarToken";
//     public static final String SONAR_LOGIN = "sonarLogin";
//     public static final String SONAR_PASSWORD = "sonarPassword";
//     public static final String SONAR_PROJECT_MODULES = "sonarProjectModules";
//     public static final String SONAR_PROJECT_SOURCES = "sonarProjectSources";
//     public static final String SONAR_PROJECT_TESTS = "sonarProjectTests";
//     public static final String SONAR_PROJECT_BINARIES = "sonarProjectBinaries";
//     public static final String SONAR_PROJECT_VERSION = "sonarProjectVersion";
//     public static final String SONAR_PROJECT_KEY = "sonarProjectKey";
//     public static final String SONAR_PROJECT_NAME = "sonarProjectName";
//     public static final String SONAR_ADDITIONAL_PARAMETERS = "additionalParameters";
//     public static final String SONAR_SERVER_ID = "sonarServer";
//     public static final String SQS_CHOOSER = "sonarServer";
//     public static final String SECURE_TEAMCITY_PASSWORD_PREFIX = "secure:teamcity.password.";
// 
//     public static final String DEFAULT_PROJECT_NAME = "%system.teamcity.projectName%";
//     public static final String DEFAULT_PROJECT_KEY = "%teamcity.project.id%";
//     public static final String DEFAULT_PROJECT_VERSION = "%build.number%";
//     public static final String DEFAULT_SOURCE_PATH = "src";
//     public static final String PROJECT_HOME = "sonarProjectHome";
// 
//     private Constants() {
//     }
// }
// 
// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/PropertiesProcessorProvider.java
// public interface PropertiesProcessorProvider {
//     public PropertiesProcessor getRunnerPropertiesProcessor();
// }
// 
// Path: sonar-plugin-common/src/main/java/jetbrains/buildserver/sonarplugin/sqrunner/tool/SonarQubeScannerConstants.java
// public final class SonarQubeScannerConstants {
//     // Used in editSQRRunParams.jsp
//     @NotNull public static final String SONAR_QUBE_SCANNER_TOOL_TYPE_ID = "sonar-qube-scanner";
//     @NotNull public static final String SONAR_QUBE_SCANNER_TOOL_TYPE_ID_ALT = "sonar-scanner-cli";
//     @NotNull public static final String SONAR_QUBE_SCANNER_VERSION_PARAMETER = "teamcity.tool.sonarquberunner";
// }


import jetbrains.buildServer.serverSide.PropertiesProcessor;
import jetbrains.buildServer.serverSide.RunType;
import jetbrains.buildServer.serverSide.RunTypeRegistry;
import jetbrains.buildServer.web.openapi.PluginDescriptor;
import jetbrains.buildserver.sonarplugin.Constants;
import jetbrains.buildserver.sonarplugin.PropertiesProcessorProvider;
import jetbrains.buildserver.sonarplugin.sqrunner.tool.SonarQubeScannerConstants;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.Map;
    }

    @NotNull
    @Override
    public String getDescription() {
        return RUNNER_DESCRIPTION;
    }

    @Nullable
    @Override
    public PropertiesProcessor getRunnerPropertiesProcessor() {
        return myPropertiesProcessorProvider.getRunnerPropertiesProcessor();
    }

    @Nullable
    @Override
    public String getEditRunnerParamsJspFilePath() {
        return EDIT_SQRRUN_PARAMS_JSP_PATH;
    }

    @Nullable
    @Override
    public String getViewRunnerParamsJspFilePath() {
        return VIEW_SQRRUN_PARAMS_JSP_PATH;
    }

    @Nullable
    @Override
    public Map<String, String> getDefaultRunnerProperties() {
        final Map<String, String> map = new HashMap<String, String>();
// Path: sonar-plugin-common/src/main/java/jetbrains/buildserver/sonarplugin/Constants.java
// public final class Constants {
//     /**
//      * Plugin name. Same as Runner type.
//      */
//     public static final String RUNNER_TYPE = "sonar-plugin";
//     /**
//      * Name of SonarQube Server link artifact file
//      */
//     public static final String SONAR_SERVER_URL_FILENAME = "sonar_server.txt";
//     /**
//      * Location of SonarQube Server link artifact file
//      */
//     public static final String SONAR_SERVER_URL_ARTIF_LOCATION = ".teamcity/sonar/";
//     /**
//      * Full location of SonarQube Server link artifact file
//      */
//     public static final String SONAR_SERVER_URL_ARTIF_LOCATION_FULL = SONAR_SERVER_URL_ARTIF_LOCATION + SONAR_SERVER_URL_FILENAME;
// 
//     public static final String SONAR_HOST_URL = "sonar.host.url";
//     public static final String SONAR_SERVER_JDBC_URL = "sonar.jdbc.url";
//     public static final String SONAR_SERVER_JDBC_USERNAME = "sonar.jdbc.username";
//     public static final String SONAR_SERVER_JDBC_PASSWORD = "sonar.jdbc.password";
//     public static final String SONAR_TOKEN = "sonarToken";
//     public static final String SONAR_LOGIN = "sonarLogin";
//     public static final String SONAR_PASSWORD = "sonarPassword";
//     public static final String SONAR_PROJECT_MODULES = "sonarProjectModules";
//     public static final String SONAR_PROJECT_SOURCES = "sonarProjectSources";
//     public static final String SONAR_PROJECT_TESTS = "sonarProjectTests";
//     public static final String SONAR_PROJECT_BINARIES = "sonarProjectBinaries";
//     public static final String SONAR_PROJECT_VERSION = "sonarProjectVersion";
//     public static final String SONAR_PROJECT_KEY = "sonarProjectKey";
//     public static final String SONAR_PROJECT_NAME = "sonarProjectName";
//     public static final String SONAR_ADDITIONAL_PARAMETERS = "additionalParameters";
//     public static final String SONAR_SERVER_ID = "sonarServer";
//     public static final String SQS_CHOOSER = "sonarServer";
//     public static final String SECURE_TEAMCITY_PASSWORD_PREFIX = "secure:teamcity.password.";
// 
//     public static final String DEFAULT_PROJECT_NAME = "%system.teamcity.projectName%";
//     public static final String DEFAULT_PROJECT_KEY = "%teamcity.project.id%";
//     public static final String DEFAULT_PROJECT_VERSION = "%build.number%";
//     public static final String DEFAULT_SOURCE_PATH = "src";
//     public static final String PROJECT_HOME = "sonarProjectHome";
// 
//     private Constants() {
//     }
// }
// 
// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/PropertiesProcessorProvider.java
// public interface PropertiesProcessorProvider {
//     public PropertiesProcessor getRunnerPropertiesProcessor();
// }
// 
// Path: sonar-plugin-common/src/main/java/jetbrains/buildserver/sonarplugin/sqrunner/tool/SonarQubeScannerConstants.java
// public final class SonarQubeScannerConstants {
//     // Used in editSQRRunParams.jsp
//     @NotNull public static final String SONAR_QUBE_SCANNER_TOOL_TYPE_ID = "sonar-qube-scanner";
//     @NotNull public static final String SONAR_QUBE_SCANNER_TOOL_TYPE_ID_ALT = "sonar-scanner-cli";
//     @NotNull public static final String SONAR_QUBE_SCANNER_VERSION_PARAMETER = "teamcity.tool.sonarquberunner";
// }


// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/sqrunner/SQRRunType.java
import jetbrains.buildServer.serverSide.PropertiesProcessor;
import jetbrains.buildServer.serverSide.RunType;
import jetbrains.buildServer.serverSide.RunTypeRegistry;
import jetbrains.buildServer.web.openapi.PluginDescriptor;
import jetbrains.buildserver.sonarplugin.Constants;
import jetbrains.buildserver.sonarplugin.PropertiesProcessorProvider;
import jetbrains.buildserver.sonarplugin.sqrunner.tool.SonarQubeScannerConstants;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.Map;

    }

    @NotNull
    @Override
    public String getDescription() {
        return RUNNER_DESCRIPTION;
    }

    @Nullable
    @Override
    public PropertiesProcessor getRunnerPropertiesProcessor() {
        return myPropertiesProcessorProvider.getRunnerPropertiesProcessor();
    }

    @Nullable
    @Override
    public String getEditRunnerParamsJspFilePath() {
        return EDIT_SQRRUN_PARAMS_JSP_PATH;
    }

    @Nullable
    @Override
    public String getViewRunnerParamsJspFilePath() {
        return VIEW_SQRRUN_PARAMS_JSP_PATH;
    }

    @Nullable
    @Override
    public Map<String, String> getDefaultRunnerProperties() {
        final Map<String, String> map = new HashMap<String, String>();
        map.put(Constants.SONAR_PROJECT_NAME, Constants.DEFAULT_PROJECT_NAME);