summaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2014-06-09 22:37:56 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2014-06-09 22:37:56 +0200
commit9fc136fdb409a7e8e3a5669bffc424229d663cad (patch)
tree85c9eae39ce1e98791b0ba2c76040ec29a5fef1c /sonar-server
parent71adc6f55bf33b2d345e264301d7a68010a3737a (diff)
downloadsonarqube-9fc136fdb409a7e8e3a5669bffc424229d663cad.tar.gz
sonarqube-9fc136fdb409a7e8e3a5669bffc424229d663cad.zip
SONAR-5007 refactor restore of built-in profiles
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java4
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileReset.java4
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java2
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileRestoreBuiltInAction.java (renamed from sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInAction.java)15
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java8
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb14
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_recreate_built_in_form.html.erb18
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_restore_built_in_form.html.erb18
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb4
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRestoreBuiltInActionTest.java (renamed from sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInActionTest.java)9
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java3
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java6
12 files changed, 53 insertions, 52 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java b/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java
index b01688f698c..935eabdebc5 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java
@@ -195,7 +195,7 @@ import org.sonar.server.qualityprofile.index.ActiveRuleIndex;
import org.sonar.server.qualityprofile.index.ActiveRuleNormalizer;
import org.sonar.server.qualityprofile.ws.BulkRuleActivationActions;
import org.sonar.server.qualityprofile.ws.ProfilesWs;
-import org.sonar.server.qualityprofile.ws.QProfileRecreateBuiltInAction;
+import org.sonar.server.qualityprofile.ws.QProfileRestoreBuiltInAction;
import org.sonar.server.qualityprofile.ws.QProfilesWs;
import org.sonar.server.qualityprofile.ws.RuleActivationActions;
import org.sonar.server.rule.DeprecatedRulesDefinition;
@@ -429,7 +429,7 @@ class ServerComponents {
pico.addSingleton(QProfileProjectLookup.class);
pico.addSingleton(QProfileRepositoryExporter.class);
pico.addSingleton(BuiltInProfiles.class);
- pico.addSingleton(QProfileRecreateBuiltInAction.class);
+ pico.addSingleton(QProfileRestoreBuiltInAction.class);
pico.addSingleton(QProfilesWs.class);
pico.addSingleton(ProfilesWs.class);
pico.addSingleton(RuleActivationActions.class);
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileReset.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileReset.java
index c609da55f2e..b7302c30311 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileReset.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileReset.java
@@ -68,6 +68,10 @@ public class QProfileReset implements ServerComponent {
return builtInProfiles.byLanguage(language);
}
+ /**
+ * Reset built-in profiles for the given language. Missing profiles are created and
+ * existing ones are updated
+ */
void resetLanguage(String language) {
ListMultimap<String, RulesProfile> profilesByName = loadDefinitionsGroupedByName(language);
for (Map.Entry<String, Collection<RulesProfile>> entry : profilesByName.asMap().entrySet()) {
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java
index 41b98160a97..c118eb7332b 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java
@@ -145,7 +145,7 @@ public class QProfileService implements ServerComponent {
restore(new StringReader(backup));
}
- public void resetBuiltInProfilesForLanguage(String lang) {
+ public void restoreBuiltInProfilesForLanguage(String lang) {
verifyAdminPermission();
reset.resetLanguage(lang);
}
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInAction.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileRestoreBuiltInAction.java
index dc62cac0392..b3e849494d2 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInAction.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileRestoreBuiltInAction.java
@@ -28,30 +28,31 @@ import org.sonar.api.utils.text.JsonWriter;
import org.sonar.server.qualityprofile.QProfileResult;
import org.sonar.server.qualityprofile.QProfileService;
-public class QProfileRecreateBuiltInAction implements RequestHandler {
+public class QProfileRestoreBuiltInAction implements RequestHandler {
private final QProfileService service;
- public QProfileRecreateBuiltInAction(QProfileService service) {
+ public QProfileRestoreBuiltInAction(QProfileService service) {
this.service = service;
}
void define(WebService.NewController controller) {
- WebService.NewAction restoreDefault = controller.createAction("recreate_built_in")
- .setDescription("Recreate Built-in Profiles")
+ WebService.NewAction restoreDefault = controller.createAction("restore_built_in")
+ .setDescription("Restore built-in profiles from the definitions declared by plugins. " +
+ "Missing profiles are created, existing ones are updated.")
.setSince("4.4")
.setPost(true)
.setHandler(this);
restoreDefault.createParam("language")
- .setDescription("Recreate built-in profiles for this language")
+ .setDescription("Restore the built-in profiles defined for this language")
.setExampleValue("java")
.setRequired(true);
}
@Override
public void handle(Request request, Response response) {
- final String language = request.mandatoryParam("language");
- service.resetBuiltInProfilesForLanguage(language);
+ String language = request.mandatoryParam("language");
+ service.restoreBuiltInProfilesForLanguage(language);
// TODO
QProfileResult result = new QProfileResult();
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java
index e450b6525e5..132f84c9144 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfilesWs.java
@@ -25,14 +25,14 @@ public class QProfilesWs implements WebService {
public static final String API_ENDPOINT = "api/qualityprofiles";
- private final QProfileRecreateBuiltInAction recreateBuiltInAction;
+ private final QProfileRestoreBuiltInAction resetAction;
private final RuleActivationActions ruleActivationActions;
private final BulkRuleActivationActions bulkRuleActivationActions;
- public QProfilesWs(QProfileRecreateBuiltInAction recreateBuiltInAction,
+ public QProfilesWs(QProfileRestoreBuiltInAction resetAction,
RuleActivationActions ruleActivationActions,
BulkRuleActivationActions bulkRuleActivationActions) {
- this.recreateBuiltInAction = recreateBuiltInAction;
+ this.resetAction = resetAction;
this.ruleActivationActions = ruleActivationActions;
this.bulkRuleActivationActions = bulkRuleActivationActions;
}
@@ -43,7 +43,7 @@ public class QProfilesWs implements WebService {
.setDescription("Quality Profiles")
.setSince("4.4");
- recreateBuiltInAction.define(controller);
+ resetAction.define(controller);
ruleActivationActions.define(controller);
bulkRuleActivationActions.define(controller);
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb
index 58d2e10e31a..f7bbec8d0ca 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb
@@ -59,24 +59,24 @@ class ProfilesController < ApplicationController
redirect_to :action => 'index'
end
- # Modal window to recreate built-in profiles
- # GET /profiles/recreate_built_in_form/<profile id>
- def recreate_built_in_form
+ # Modal window to restore built-in profiles
+ # GET /profiles/restore_built_in_form/<profile id>
+ def restore_built_in_form
verify_ajax_request
require_parameters 'language'
@language = java_facade.getLanguages().find { |l| l.getKey()==params[:language].to_s }
call_backend do
@builtin_profile_names = Internal.component(Java::OrgSonarServerQualityprofile::QProfileService.java_class).builtInProfileNamesForLanguage(params[:language].to_s)
end
- render :partial => 'profiles/recreate_built_in_form'
+ render :partial => 'profiles/restore_built_in_form'
end
- # POST /profiles/recreate_built_in_form?language=<language>
- def recreate_built_in
+ # POST /profiles/restore_built_in?language=<language>
+ def restore_built_in
verify_post_request
require_parameters 'language'
call_backend do
- Internal.component(Java::OrgSonarServerQualityprofile::QProfileService.java_class).resetBuiltInProfilesForLanguage(params[:language].to_s)
+ Internal.component(Java::OrgSonarServerQualityprofile::QProfileService.java_class).restoreBuiltInProfilesForLanguage(params[:language].to_s)
#flash_result(@result)
end
redirect_to :action => 'index'
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_recreate_built_in_form.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_recreate_built_in_form.html.erb
deleted file mode 100644
index d35429a6e84..00000000000
--- a/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_recreate_built_in_form.html.erb
+++ /dev/null
@@ -1,18 +0,0 @@
-<form id="recreate-built-in-profiles-form" action="profiles/recreate_built_in" method="POST">
- <fieldset>
- <input type="hidden" name="language" value="<%= @language.getKey() -%>"/>
-
- <div class="modal-head">
- <h2><%= h message('quality_profiles.recreate_built_in_profiles') -%></h2>
- </div>
-
- <div class="modal-body">
- <%= h message('quality_profiles.recreate_built_in_profiles_confirmation', :params => [@builtin_profile_names.join('\', \''), @language.getName()]) -%>
- </div>
-
- <div class="modal-foot">
- <input type="submit" value="<%= h message('restore') -%>" id="recreate-built-in-profiles-submit"/>
- <a href="#" onclick="return closeModalWindow()" id="recreate-built-in-profiles-cancel"><%= h message('cancel') -%></a>
- </div>
- </fieldset>
-</form>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_restore_built_in_form.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_restore_built_in_form.html.erb
new file mode 100644
index 00000000000..53fe42c13a7
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/_restore_built_in_form.html.erb
@@ -0,0 +1,18 @@
+<form id="restore-built-in-profiles-form" action="profiles/restore_built_in" method="POST">
+ <fieldset>
+ <input type="hidden" name="language" value="<%= @language.getKey() -%>"/>
+
+ <div class="modal-head">
+ <h2><%= h message('quality_profiles.restore_built_in_profiles') -%></h2>
+ </div>
+
+ <div class="modal-body">
+ <%= h message('quality_profiles.restore_built_in_profiles_confirmation', :params => [@builtin_profile_names.join('\', \''), @language.getName()]) -%>
+ </div>
+
+ <div class="modal-foot">
+ <input type="submit" value="<%= h message('restore') -%>" id="restore-built-in-profiles-submit"/>
+ <a href="#" onclick="return closeModalWindow()" id="restore-built-in-profiles-cancel"><%= h message('cancel') -%></a>
+ </div>
+ </fieldset>
+</form>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb
index 89657c272c7..962e3cb3af5 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb
@@ -29,8 +29,8 @@
</ul>
<ul style="float: right" class="horizontal">
<li class="marginleft10">
- <a id="create-link-<%= language.getKey() -%>" href="<%= ApplicationController.root_context -%>/profiles/recreate_built_in_form?language=<%= u language.getKey() -%>"
- class="open-modal link-action"><%= message('quality_profiles.recreate_built_in_profiles') -%></a>
+ <a id="create-link-<%= language.getKey() -%>" href="<%= ApplicationController.root_context -%>/profiles/restore_built_in_form?language=<%= u language.getKey() -%>"
+ class="open-modal link-action"><%= message('quality_profiles.restore_built_in_profiles') -%></a>
</li>
</ul>
<% end %>
diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInActionTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRestoreBuiltInActionTest.java
index ec899c39c65..b6756eddd4a 100644
--- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRecreateBuiltInActionTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileRestoreBuiltInActionTest.java
@@ -25,17 +25,14 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
-import org.sonar.server.qualityprofile.QProfileResult;
import org.sonar.server.qualityprofile.QProfileService;
import org.sonar.server.rule.RuleService;
import org.sonar.server.ws.WsTester;
-import static com.google.common.collect.Lists.newArrayList;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public class QProfileRecreateBuiltInActionTest {
+public class QProfileRestoreBuiltInActionTest {
@Mock
QProfileService profileService;
@@ -47,7 +44,7 @@ public class QProfileRecreateBuiltInActionTest {
QProfileService profileService = mock(QProfileService.class);
RuleService ruleService = mock(RuleService.class);
tester = new WsTester(new QProfilesWs(
- new QProfileRecreateBuiltInAction(this.profileService),
+ new QProfileRestoreBuiltInAction(this.profileService),
new RuleActivationActions(profileService),
new BulkRuleActivationActions(profileService, ruleService)));
}
@@ -56,7 +53,7 @@ public class QProfileRecreateBuiltInActionTest {
public void return_empty_result_when_no_infos_or_warnings() throws Exception {
//when(profileService.resetBuiltInProfilesForLanguage("java")).thenReturn(new QProfileResult());
- WsTester.TestRequest request = tester.newPostRequest("api/qualityprofiles", "recreate_built_in").setParam("language", "java");
+ WsTester.TestRequest request = tester.newPostRequest("api/qualityprofiles", "restore_built_in").setParam("language", "java");
request.execute().assertNoContent();
}
diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java
index dc3b6c5d26b..057f2081bba 100644
--- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java
@@ -52,11 +52,10 @@ import static org.fest.assertions.Fail.fail;
public class QProfilesWsMediumTest {
-
@ClassRule
public static ServerTester tester = new ServerTester();
- private static final String API_BUILT_IN_METHOD = "recreate_built_in";
+ private static final String API_BUILT_IN_METHOD = "restore_built_in";
QProfilesWs ws;
DbClient db;
diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java
index 4412d463803..a26a4f92cd8 100644
--- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java
@@ -38,7 +38,7 @@ public class QProfilesWsTest {
public void setUp() {
QProfileService profileService = mock(QProfileService.class);
RuleService ruleService = mock(RuleService.class);
- controller = new WsTester(new QProfilesWs(new QProfileRecreateBuiltInAction(
+ controller = new WsTester(new QProfilesWs(new QProfileRestoreBuiltInAction(
mock(QProfileService.class)),
new RuleActivationActions(profileService),
new BulkRuleActivationActions(profileService, ruleService)
@@ -54,8 +54,8 @@ public class QProfilesWsTest {
}
@Test
- public void define_recreate_built_action() throws Exception {
- WebService.Action restoreProfiles = controller.action("recreate_built_in");
+ public void define_restore_built_action() throws Exception {
+ WebService.Action restoreProfiles = controller.action("restore_built_in");
assertThat(restoreProfiles).isNotNull();
assertThat(restoreProfiles.isPost()).isTrue();
assertThat(restoreProfiles.params()).hasSize(1);