]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5007 remove api/rules/set_tags and set_note
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Wed, 28 May 2014 13:59:09 +0000 (15:59 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Wed, 28 May 2014 13:59:41 +0000 (15:59 +0200)
sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java
sonar-server/src/main/java/org/sonar/server/rule/ws/RulesWebService.java
sonar-server/src/main/java/org/sonar/server/rule/ws/SetNoteAction.java [deleted file]
sonar-server/src/main/java/org/sonar/server/rule/ws/SetTagsAction.java [deleted file]
sonar-server/src/test/java/org/sonar/server/rule/ws/AppActionTest.java
sonar-server/src/test/java/org/sonar/server/rule/ws/RulesWebServiceTest.java

index 99fed3068f401b8318b612833378dbfc8a9b3be1..5da0f2a2a643adba74623278d11b5f1fc24815a7 100644 (file)
@@ -52,7 +52,13 @@ import org.sonar.core.measure.db.MeasureFilterDao;
 import org.sonar.core.metric.DefaultMetricFinder;
 import org.sonar.core.notification.DefaultNotificationManager;
 import org.sonar.core.permission.PermissionFacade;
-import org.sonar.core.persistence.*;
+import org.sonar.core.persistence.DaoUtils;
+import org.sonar.core.persistence.DatabaseVersion;
+import org.sonar.core.persistence.DefaultDatabase;
+import org.sonar.core.persistence.MyBatis;
+import org.sonar.core.persistence.PreviewDatabaseFactory;
+import org.sonar.core.persistence.SemaphoreUpdater;
+import org.sonar.core.persistence.SemaphoresImpl;
 import org.sonar.core.preview.PreviewCache;
 import org.sonar.core.profiling.Profiling;
 import org.sonar.core.purge.PurgeProfiler;
@@ -86,11 +92,33 @@ import org.sonar.server.db.DbClient;
 import org.sonar.server.db.EmbeddedDatabaseFactory;
 import org.sonar.server.db.migrations.DatabaseMigrations;
 import org.sonar.server.db.migrations.DatabaseMigrator;
-import org.sonar.server.debt.*;
+import org.sonar.server.debt.DebtCharacteristicsXMLImporter;
+import org.sonar.server.debt.DebtModelBackup;
+import org.sonar.server.debt.DebtModelLookup;
+import org.sonar.server.debt.DebtModelOperations;
+import org.sonar.server.debt.DebtModelPluginRepository;
+import org.sonar.server.debt.DebtModelService;
+import org.sonar.server.debt.DebtModelXMLExporter;
+import org.sonar.server.debt.DebtRulesXMLImporter;
 import org.sonar.server.duplication.ws.DuplicationsParser;
 import org.sonar.server.duplication.ws.DuplicationsWriter;
 import org.sonar.server.duplication.ws.DuplicationsWs;
-import org.sonar.server.issue.*;
+import org.sonar.server.issue.ActionService;
+import org.sonar.server.issue.AssignAction;
+import org.sonar.server.issue.CommentAction;
+import org.sonar.server.issue.DefaultIssueFinder;
+import org.sonar.server.issue.InternalRubyIssueService;
+import org.sonar.server.issue.IssueBulkChangeService;
+import org.sonar.server.issue.IssueChangelogFormatter;
+import org.sonar.server.issue.IssueChangelogService;
+import org.sonar.server.issue.IssueCommentService;
+import org.sonar.server.issue.IssueService;
+import org.sonar.server.issue.IssueStatsFinder;
+import org.sonar.server.issue.PlanAction;
+import org.sonar.server.issue.PublicRubyIssueService;
+import org.sonar.server.issue.ServerIssueStorage;
+import org.sonar.server.issue.SetSeverityAction;
+import org.sonar.server.issue.TransitionAction;
 import org.sonar.server.issue.actionplan.ActionPlanService;
 import org.sonar.server.issue.actionplan.ActionPlanWs;
 import org.sonar.server.issue.filter.IssueFilterService;
@@ -115,22 +143,79 @@ import org.sonar.server.platform.ws.L10nWs;
 import org.sonar.server.platform.ws.RestartHandler;
 import org.sonar.server.platform.ws.ServerWs;
 import org.sonar.server.platform.ws.SystemWs;
-import org.sonar.server.plugins.*;
+import org.sonar.server.plugins.BatchWs;
+import org.sonar.server.plugins.InstalledPluginReferentialFactory;
+import org.sonar.server.plugins.PluginDownloader;
+import org.sonar.server.plugins.ServerExtensionInstaller;
+import org.sonar.server.plugins.ServerPluginJarInstaller;
+import org.sonar.server.plugins.ServerPluginJarsInstaller;
+import org.sonar.server.plugins.ServerPluginRepository;
+import org.sonar.server.plugins.UpdateCenterClient;
+import org.sonar.server.plugins.UpdateCenterMatrixFactory;
 import org.sonar.server.qualitygate.QgateProjectFinder;
 import org.sonar.server.qualitygate.QualityGates;
 import org.sonar.server.qualitygate.RegisterQualityGates;
-import org.sonar.server.qualitygate.ws.*;
-import org.sonar.server.qualityprofile.*;
+import org.sonar.server.qualitygate.ws.QGatesAppAction;
+import org.sonar.server.qualitygate.ws.QGatesCopyAction;
+import org.sonar.server.qualitygate.ws.QGatesCreateAction;
+import org.sonar.server.qualitygate.ws.QGatesCreateConditionAction;
+import org.sonar.server.qualitygate.ws.QGatesDeleteConditionAction;
+import org.sonar.server.qualitygate.ws.QGatesDeselectAction;
+import org.sonar.server.qualitygate.ws.QGatesDestroyAction;
+import org.sonar.server.qualitygate.ws.QGatesListAction;
+import org.sonar.server.qualitygate.ws.QGatesRenameAction;
+import org.sonar.server.qualitygate.ws.QGatesSearchAction;
+import org.sonar.server.qualitygate.ws.QGatesSelectAction;
+import org.sonar.server.qualitygate.ws.QGatesSetAsDefaultAction;
+import org.sonar.server.qualitygate.ws.QGatesShowAction;
+import org.sonar.server.qualitygate.ws.QGatesUnsetDefaultAction;
+import org.sonar.server.qualitygate.ws.QGatesUpdateConditionAction;
+import org.sonar.server.qualitygate.ws.QGatesWs;
+import org.sonar.server.qualityprofile.ActiveRuleService;
+import org.sonar.server.qualityprofile.DefaultProfilesCache;
+import org.sonar.server.qualityprofile.ProfilesManager;
+import org.sonar.server.qualityprofile.QProfileActiveRuleOperations;
+import org.sonar.server.qualityprofile.QProfileBackup;
+import org.sonar.server.qualityprofile.QProfileLookup;
+import org.sonar.server.qualityprofile.QProfileOperations;
+import org.sonar.server.qualityprofile.QProfileProjectLookup;
+import org.sonar.server.qualityprofile.QProfileProjectOperations;
+import org.sonar.server.qualityprofile.QProfileRepositoryExporter;
+import org.sonar.server.qualityprofile.QProfiles;
+import org.sonar.server.qualityprofile.QualityProfileService;
+import org.sonar.server.qualityprofile.RegisterQualityProfiles;
+import org.sonar.server.qualityprofile.RuleActivationContextFactory;
 import org.sonar.server.qualityprofile.index.ActiveRuleIndex;
 import org.sonar.server.qualityprofile.index.ActiveRuleNormalizer;
 import org.sonar.server.qualityprofile.persistence.ActiveRuleDao;
-import org.sonar.server.qualityprofile.ws.*;
-import org.sonar.server.rule.*;
+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.QProfilesWs;
+import org.sonar.server.qualityprofile.ws.RuleActivationActions;
+import org.sonar.server.rule.DeprecatedRulesDefinition;
+import org.sonar.server.rule.RegisterRules;
+import org.sonar.server.rule.RubyRuleService;
+import org.sonar.server.rule.RuleDefinitionsLoader;
+import org.sonar.server.rule.RuleOperations;
+import org.sonar.server.rule.RuleRepositories;
+import org.sonar.server.rule.RuleService;
+import org.sonar.server.rule.RuleUpdater;
 import org.sonar.server.rule.db.RuleDao;
 import org.sonar.server.rule.index.RuleIndex;
 import org.sonar.server.rule.index.RuleNormalizer;
-import org.sonar.server.rule.ws.*;
-import org.sonar.server.search.*;
+import org.sonar.server.rule.ws.ActiveRuleCompleter;
+import org.sonar.server.rule.ws.AppAction;
+import org.sonar.server.rule.ws.RuleMapping;
+import org.sonar.server.rule.ws.RulesWebService;
+import org.sonar.server.rule.ws.SearchAction;
+import org.sonar.server.rule.ws.TagsAction;
+import org.sonar.server.rule.ws.UpdateAction;
+import org.sonar.server.search.ESNode;
+import org.sonar.server.search.IndexClient;
+import org.sonar.server.search.IndexQueue;
+import org.sonar.server.search.IndexQueueWorker;
+import org.sonar.server.search.IndexSynchronizer;
 import org.sonar.server.source.CodeColorizers;
 import org.sonar.server.source.DeprecatedSourceDecorator;
 import org.sonar.server.source.HtmlSourceDecorator;
@@ -139,9 +224,27 @@ import org.sonar.server.source.ws.ScmAction;
 import org.sonar.server.source.ws.ScmWriter;
 import org.sonar.server.source.ws.ShowAction;
 import org.sonar.server.source.ws.SourcesWs;
-import org.sonar.server.startup.*;
+import org.sonar.server.startup.CleanPreviewAnalysisCache;
+import org.sonar.server.startup.CopyRequirementsFromCharacteristicsToRules;
+import org.sonar.server.startup.GeneratePluginIndex;
+import org.sonar.server.startup.GwtPublisher;
+import org.sonar.server.startup.JdbcDriverDeployer;
+import org.sonar.server.startup.LogServerId;
+import org.sonar.server.startup.RegisterDashboards;
+import org.sonar.server.startup.RegisterDebtModel;
+import org.sonar.server.startup.RegisterMetrics;
+import org.sonar.server.startup.RegisterNewMeasureFilters;
+import org.sonar.server.startup.RegisterPermissionTemplates;
+import org.sonar.server.startup.RegisterServletFilters;
+import org.sonar.server.startup.RenameDeprecatedPropertyKeys;
+import org.sonar.server.startup.ServerMetadataPersister;
 import org.sonar.server.test.CoverageService;
-import org.sonar.server.test.ws.*;
+import org.sonar.server.test.ws.CoverageShowAction;
+import org.sonar.server.test.ws.CoverageWs;
+import org.sonar.server.test.ws.TestsPlanAction;
+import org.sonar.server.test.ws.TestsShowAction;
+import org.sonar.server.test.ws.TestsTestableAction;
+import org.sonar.server.test.ws.TestsWs;
 import org.sonar.server.text.MacroInterpreter;
 import org.sonar.server.text.RubyTextService;
 import org.sonar.server.ui.JRubyI18n;
@@ -149,9 +252,20 @@ import org.sonar.server.ui.JRubyProfiling;
 import org.sonar.server.ui.PageDecorations;
 import org.sonar.server.ui.Views;
 import org.sonar.server.updatecenter.ws.UpdateCenterWs;
-import org.sonar.server.user.*;
+import org.sonar.server.user.DefaultUserService;
+import org.sonar.server.user.DoPrivileged;
+import org.sonar.server.user.GroupMembershipFinder;
+import org.sonar.server.user.GroupMembershipService;
+import org.sonar.server.user.NewUserNotifier;
+import org.sonar.server.user.SecurityRealmFactory;
 import org.sonar.server.user.ws.UsersWs;
-import org.sonar.server.util.*;
+import org.sonar.server.util.BooleanTypeValidation;
+import org.sonar.server.util.FloatTypeValidation;
+import org.sonar.server.util.IntegerTypeValidation;
+import org.sonar.server.util.StringListTypeValidation;
+import org.sonar.server.util.StringTypeValidation;
+import org.sonar.server.util.TextTypeValidation;
+import org.sonar.server.util.TypeValidations;
 import org.sonar.server.ws.ListingWs;
 import org.sonar.server.ws.WebServiceEngine;
 
@@ -329,8 +443,6 @@ class ServerComponents {
     pico.addSingleton(SearchAction.class);
     pico.addSingleton(org.sonar.server.rule.ws.ShowAction.class);
     pico.addSingleton(TagsAction.class);
-    pico.addSingleton(SetTagsAction.class);
-    pico.addSingleton(SetNoteAction.class);
     pico.addSingleton(RuleMapping.class);
     pico.addSingleton(ActiveRuleCompleter.class);
     pico.addSingleton(AppAction.class);
index e6f43746117c61bc3c9554e31cbedda38ea0efe0..be8469f3c50b34f54a3e51ed62ceb5afbfbf1832 100644 (file)
@@ -26,19 +26,14 @@ public class RulesWebService implements WebService {
   private final SearchAction search;
   private final ShowAction show;
   private final TagsAction tags;
-  private final SetTagsAction setTags;
-  private final SetNoteAction setNote;
   private final AppAction app;
   private final UpdateAction update;
 
   public RulesWebService(SearchAction search, ShowAction show, TagsAction tags,
-                         SetTagsAction setTags, SetNoteAction setNote, AppAction app,
-                         UpdateAction update) {
+                         AppAction app, UpdateAction update) {
     this.search = search;
     this.show = show;
     this.tags = tags;
-    this.setTags = setTags;
-    this.setNote = setNote;
     this.app = app;
     this.update = update;
   }
@@ -52,8 +47,6 @@ public class RulesWebService implements WebService {
     search.define(controller);
     show.define(controller);
     tags.define(controller);
-    setTags.define(controller);
-    setNote.define(controller);
     app.define(controller);
     update.define(controller);
 
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/ws/SetNoteAction.java b/sonar-server/src/main/java/org/sonar/server/rule/ws/SetNoteAction.java
deleted file mode 100644 (file)
index d13df5f..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2014 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * SonarQube is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.server.rule.ws;
-
-import org.sonar.api.rule.RuleKey;
-import org.sonar.api.server.ws.Request;
-import org.sonar.api.server.ws.RequestHandler;
-import org.sonar.api.server.ws.Response;
-import org.sonar.api.server.ws.WebService;
-import org.sonar.server.rule.RuleService;
-
-public class SetNoteAction implements RequestHandler {
-
-  private static final String PARAM_KEY = "key";
-  private static final String PARAM_TEXT = "markdown_text";
-
-  private final RuleService service;
-
-  public SetNoteAction(RuleService service) {
-    this.service = service;
-  }
-
-  void define(WebService.NewController controller) {
-    WebService.NewAction setTags = controller
-      .createAction("set_note")
-      .setDescription("Extend the description of a coding rule")
-      .setSince("4.4")
-      .setPost(true)
-      .setHandler(this);
-    setTags
-      .createParam(PARAM_KEY)
-      .setRequired(true)
-      .setDescription("Rule key")
-      .setExampleValue("javascript:EmptyBlock");
-    setTags
-      .createParam(PARAM_TEXT)
-      .setDescription("Markdown text. Set to blank to remove the note.")
-      .setRequired(true)
-      .setExampleValue("java8,security");
-  }
-
-  @Override
-  public void handle(Request request, Response response) {
-    RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY));
-    service.setNote(key, request.mandatoryParam(PARAM_TEXT));
-  }
-}
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/ws/SetTagsAction.java b/sonar-server/src/main/java/org/sonar/server/rule/ws/SetTagsAction.java
deleted file mode 100644 (file)
index e65d25e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2014 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * SonarQube is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.server.rule.ws;
-
-import com.google.common.collect.Sets;
-import org.sonar.api.rule.RuleKey;
-import org.sonar.api.server.ws.Request;
-import org.sonar.api.server.ws.RequestHandler;
-import org.sonar.api.server.ws.Response;
-import org.sonar.api.server.ws.WebService;
-import org.sonar.server.rule.RuleService;
-
-import java.util.Set;
-
-public class SetTagsAction implements RequestHandler {
-
-  private final RuleService service;
-
-  public SetTagsAction(RuleService service) {
-    this.service = service;
-  }
-
-  void define(WebService.NewController controller) {
-    WebService.NewAction setTags = controller
-      .createAction("set_tags")
-      .setDescription("Set the tags of a coding rule")
-      .setSince("4.4")
-      .setPost(true)
-      .setHandler(this);
-    setTags
-      .createParam("key")
-      .setRequired(true)
-      .setDescription("Rule key")
-      .setExampleValue("javascript:EmptyBlock");
-    setTags
-      .createParam("tags")
-      .setDescription("Comma-separated list of tags. Blank value is used to remove all tags.")
-      .setRequired(true)
-      .setExampleValue("java8,security");
-  }
-
-  @Override
-  public void handle(Request request, Response response) {
-    RuleKey key = RuleKey.parse(request.mandatoryParam("key"));
-    Set<String> tags = Sets.newHashSet(request.mandatoryParamAsStrings("tags"));
-    service.setTags(key, tags);
-  }
-}
index b05cf939a84a46ca3e944e64d7b9087584865c2b..33d9457b3bd31bd25dfd4b91a3d3a6d93ae51b1a 100644 (file)
@@ -68,8 +68,8 @@ public class AppActionTest {
   public void should_generate_app_init_info() throws Exception {
     AppAction app = new AppAction(languages, ruleRepositories, i18n, debtModel, qualityProfileService);
     WsTester tester = new WsTester(new RulesWebService(
-      mock(SearchAction.class), mock(ShowAction.class), mock(TagsAction.class), mock(SetTagsAction.class),
-      mock(SetNoteAction.class), app, mock(UpdateAction.class)));
+      mock(SearchAction.class), mock(ShowAction.class), mock(TagsAction.class),
+      app, mock(UpdateAction.class)));
 
     MockUserSession.set().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
 
index 59bfd7dec487f09b891b9f70473439fe2c03546e..6062dcade74dc2772c71ad35040625f82df4f647 100644 (file)
 package org.sonar.server.rule.ws;
 
 import com.google.common.collect.ImmutableSet;
-import org.junit.*;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Ignore;
+import org.junit.Test;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rule.RuleStatus;
 import org.sonar.api.rule.Severity;
@@ -28,13 +32,13 @@ import org.sonar.api.server.debt.DebtRemediationFunction;
 import org.sonar.api.server.ws.WebService;
 import org.sonar.check.Cardinality;
 import org.sonar.core.persistence.DbSession;
-import org.sonar.core.persistence.MyBatis;
 import org.sonar.core.qualityprofile.db.ActiveRuleDto;
 import org.sonar.core.qualityprofile.db.ActiveRuleParamDto;
 import org.sonar.core.qualityprofile.db.QualityProfileDao;
 import org.sonar.core.qualityprofile.db.QualityProfileDto;
 import org.sonar.core.rule.RuleDto;
 import org.sonar.core.rule.RuleParamDto;
+import org.sonar.server.db.DbClient;
 import org.sonar.server.qualityprofile.persistence.ActiveRuleDao;
 import org.sonar.server.rule.db.RuleDao;
 import org.sonar.server.rule.index.RuleNormalizer;
@@ -55,20 +59,16 @@ public class RulesWebServiceTest {
   private static final String API_SHOW_METHOD = "show";
   private static final String API_TAGS_METHOD = "tags";
 
-  private RulesWebService ws;
-  private RuleDao ruleDao;
-  private DbSession session;
-
-  WsTester wsTester;
-
+  RulesWebService ws;
+  RuleDao ruleDao;
+  DbSession session;
 
   @Before
   public void setUp() throws Exception {
     tester.clearDbAndEs();
     ruleDao = tester.get(RuleDao.class);
     ws = tester.get(RulesWebService.class);
-    wsTester = new WsTester(ws);
-    session = tester.get(MyBatis.class).openSession(false);
+    session = tester.get(DbClient.class).openSession(false);
   }
 
   @After
@@ -78,19 +78,17 @@ public class RulesWebServiceTest {
 
   @Test
   public void define() throws Exception {
-
     WebService.Context context = new WebService.Context();
     ws.define(context);
 
     WebService.Controller controller = context.controller(API_ENDPOINT);
 
     assertThat(controller).isNotNull();
-    assertThat(controller.actions()).hasSize(7);
+    assertThat(controller.actions()).hasSize(5);
     assertThat(controller.action(API_SEARCH_METHOD)).isNotNull();
     assertThat(controller.action(API_SHOW_METHOD)).isNotNull();
     assertThat(controller.action(API_TAGS_METHOD)).isNotNull();
-    assertThat(controller.action("set_tags")).isNotNull();
-    assertThat(controller.action("set_note")).isNotNull();
+    assertThat(controller.action("update")).isNotNull();
     assertThat(controller.action("app")).isNotNull();
   }
 
@@ -111,14 +109,14 @@ public class RulesWebServiceTest {
     MockUserSession.set();
 
     // 1. With Activation
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SHOW_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SHOW_METHOD);
     request.setParam(ShowAction.PARAM_KEY, rule.getKey().toString());
     request.setParam(ShowAction.PARAM_ACTIVES, "true");
     WsTester.Result result = request.execute();
     result.assertJson(this.getClass(), "show_rule_active.json", false);
 
     // 1. Default Activation (defaults to false)
-    request = wsTester.newGetRequest(API_ENDPOINT, API_SHOW_METHOD);
+    request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SHOW_METHOD);
     request.setParam(ShowAction.PARAM_KEY, rule.getKey().toString());
     result = request.execute();
     result.assertJson(this.getClass(), "show_rule_no_active.json", false);
@@ -129,7 +127,7 @@ public class RulesWebServiceTest {
   public void search_no_rules() throws Exception {
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
 
     WsTester.Result result = request.execute();
 
@@ -143,7 +141,7 @@ public class RulesWebServiceTest {
     session.commit();
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     WsTester.Result result = request.execute();
 
     result.assertJson(getClass(), "search_2_rules.json", false);
@@ -161,7 +159,7 @@ public class RulesWebServiceTest {
 
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchOptions.PARAM_FIELDS, "debtRemFn,debtChar");
     WsTester.Result result = request.execute();
     result.assertJson(this.getClass(), "search_debt_rule.json");
@@ -183,7 +181,7 @@ public class RulesWebServiceTest {
 
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchOptions.PARAM_TEXT_QUERY, "S001");
     request.setParam(SearchAction.PARAM_ACTIVATION, "true");
     request.setParam(SearchOptions.PARAM_FIELDS, "");
@@ -215,7 +213,7 @@ public class RulesWebServiceTest {
 
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchOptions.PARAM_TEXT_QUERY, "S001");
     request.setParam(SearchAction.PARAM_ACTIVATION, "true");
     request.setParam(SearchAction.PARAM_QPROFILE, profile2.getKey().toString());
@@ -262,7 +260,7 @@ public class RulesWebServiceTest {
 
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchOptions.PARAM_TEXT_QUERY, "S001");
     request.setParam(SearchAction.PARAM_ACTIVATION, "true");
     request.setParam(SearchOptions.PARAM_FIELDS, "params");
@@ -289,7 +287,7 @@ public class RulesWebServiceTest {
     session.commit();
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_TAGS_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_TAGS_METHOD);
     WsTester.Result result = request.execute();
 
     result.assertJson(this.getClass(), "get_tags.json", false);
@@ -308,7 +306,7 @@ public class RulesWebServiceTest {
 
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchOptions.PARAM_FIELDS, "htmlNote, mdNote");
     WsTester.Result result = request.execute();
     result.assertJson(this.getClass(), "get_note_as_markdown_and_html.json");
@@ -325,7 +323,7 @@ public class RulesWebServiceTest {
 
 
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchAction.PARAM_TAGS, "tag1");
     request.setParam(SearchOptions.PARAM_FIELDS, "sysTags, tags");
     WsTester.Result result = request.execute();
@@ -343,7 +341,7 @@ public class RulesWebServiceTest {
 
     // 1. Sort Name Desc
     MockUserSession.set();
-    WsTester.TestRequest request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchOptions.PARAM_FIELDS, "");
     request.setParam(SearchOptions.PARAM_SORT, RuleNormalizer.RuleField.NAME.field());
     request.setParam(SearchOptions.PARAM_ASCENDING, Boolean.TRUE.toString());
@@ -352,7 +350,7 @@ public class RulesWebServiceTest {
     result.assertJson("{\"total\":3,\"p\":1,\"ps\":10,\"rules\":[{\"key\":\"java:S001\"},{\"key\":\"java:S002\"},{\"key\":\"java:S003\"}]}");
 
     // 2. Sort Name ASC
-    request = wsTester.newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
+    request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
     request.setParam(SearchOptions.PARAM_FIELDS, "");
     request.setParam(SearchOptions.PARAM_SORT, RuleNormalizer.RuleField.NAME.field());
     request.setParam(SearchOptions.PARAM_ASCENDING, Boolean.FALSE.toString());