From eaf2d48216a07e48e3fa498e3a4161561346f3db Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Mon, 16 Jun 2014 16:42:47 +0200 Subject: [PATCH] SONAR-5329 -Removed Key and ExecutionTime fields from Activity --- .../org/sonar/core/activity/Activity.java | 2 -- .../org/sonar/core/activity/ActivityLog.java | 2 -- .../sonar/core/activity/db/ActivityDto.java | 10 +----- .../core/persistence/DatabaseVersion.java | 2 +- .../org/sonar/core/persistence/MyBatis.java | 2 +- .../sonar/core/activity/db/ActivityMapper.xml | 18 +++++------ .../org/sonar/core/persistence/rows-h2.sql | 1 + .../org/sonar/core/persistence/schema-h2.ddl | 3 +- .../server/activity/index/ActivityDoc.java | 5 --- .../activity/index/ActivityNormalizer.java | 4 --- .../server/activity/ws/ActivityMapping.java | 2 -- .../qualityprofile/ActiveRuleChange.java | 5 --- .../db/migrate/548_rename_activities_table.rb | 31 +++++++++++++++++++ .../activity/ActivityBackendMediumTest.java | 5 --- .../server/activity/db/ActivityDaoTest.java | 6 ---- 15 files changed, 44 insertions(+), 54 deletions(-) create mode 100644 sonar-server/src/main/webapp/WEB-INF/db/migrate/548_rename_activities_table.rb diff --git a/sonar-core/src/main/java/org/sonar/core/activity/Activity.java b/sonar-core/src/main/java/org/sonar/core/activity/Activity.java index b80fdd15722..fac77c44e0d 100644 --- a/sonar-core/src/main/java/org/sonar/core/activity/Activity.java +++ b/sonar-core/src/main/java/org/sonar/core/activity/Activity.java @@ -35,8 +35,6 @@ public interface Activity { String author(); - Integer executionTime(); - Map details(); String message(); diff --git a/sonar-core/src/main/java/org/sonar/core/activity/ActivityLog.java b/sonar-core/src/main/java/org/sonar/core/activity/ActivityLog.java index f55aee14f43..eae04476a95 100644 --- a/sonar-core/src/main/java/org/sonar/core/activity/ActivityLog.java +++ b/sonar-core/src/main/java/org/sonar/core/activity/ActivityLog.java @@ -28,6 +28,4 @@ public interface ActivityLog { Map getDetails(); - int getExecutionTime(); - } diff --git a/sonar-core/src/main/java/org/sonar/core/activity/db/ActivityDto.java b/sonar-core/src/main/java/org/sonar/core/activity/db/ActivityDto.java index 3d7d1cedaaf..4427c45e8e2 100644 --- a/sonar-core/src/main/java/org/sonar/core/activity/db/ActivityDto.java +++ b/sonar-core/src/main/java/org/sonar/core/activity/db/ActivityDto.java @@ -35,8 +35,6 @@ public final class ActivityDto extends Dto { private Activity.Type type; private String author; - private Integer executionTime; - private String data; protected ActivityDto() { @@ -70,12 +68,7 @@ public final class ActivityDto extends Dto { return this; } - public Integer getExecutionTime() { - return executionTime; - } - public ActivityDto setExecutionTime(Integer executionTime) { - this.executionTime = executionTime; return this; } @@ -104,7 +97,6 @@ public final class ActivityDto extends Dto { public static ActivityDto createFor(ActivityLog activityLog) { return new ActivityDto() - .setData(KeyValueFormat.format(activityLog.getDetails())) - .setExecutionTime(activityLog.getExecutionTime()); + .setData(KeyValueFormat.format(activityLog.getDetails())); } } diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java index 1b5b35b8749..3fd3a78ab52 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java @@ -33,7 +33,7 @@ import java.util.List; */ public class DatabaseVersion implements BatchComponent, ServerComponent { - public static final int LAST_VERSION = 547; + public static final int LAST_VERSION = 548; public static enum Status { UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java b/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java index 154fbac7bd8..e438cf7ca03 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java @@ -203,7 +203,7 @@ public class MyBatis implements BatchComponent, ServerComponent { loadAlias(conf, "ActiveRule", ActiveRuleDto.class); loadAlias(conf, "ActiveRuleParam", ActiveRuleParamDto.class); loadAlias(conf, "RequirementMigration", RequirementMigrationDto.class); - loadAlias(conf, "Log", ActivityDto.class); + loadAlias(conf, "Activity", ActivityDto.class); // AuthorizationMapper has to be loaded before IssueMapper because this last one used it loadMapper(conf, "org.sonar.core.user.AuthorizationMapper"); diff --git a/sonar-core/src/main/resources/org/sonar/core/activity/db/ActivityMapper.xml b/sonar-core/src/main/resources/org/sonar/core/activity/db/ActivityMapper.xml index 4595d9288c9..b532f946bce 100644 --- a/sonar-core/src/main/resources/org/sonar/core/activity/db/ActivityMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/activity/db/ActivityMapper.xml @@ -3,35 +3,33 @@ - - insert into logs - (created_at, log_type,execution_time_field,user_login,data_field, log_message) - values (#{createdAt}, #{type}, #{executionTime}, #{author}, #{data}, #{message}) + + insert into activities + (created_at, log_type,user_login,data_field, log_message) + values (#{createdAt}, #{type}, #{author}, #{data}, #{message}) - SELECT l.created_at as "createdAt", l.log_type as "type", - l.execution_time_field as "executionTime", l.user_login as "author", l.data_field as "data", l.log_message as "message" - FROM logs l + FROM activities l WHERE l.created_at=#{key.createdAt} AND l.user_login=#{key.author} AND l.log_type=#{key.type} - SELECT l.created_at as "createdAt", l.log_type as "type", - l.execution_time_field as "executionTime", l.user_login as "author", l.data_field as "data", l.log_message as "message" - FROM logs l + FROM activities l diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql index 994144ca8f1..dc37a6e684a 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql @@ -242,6 +242,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('544'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('545'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('546'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('547'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('548'); INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null); ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2; diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl index a609cd530b5..9d2566dfb29 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl @@ -552,9 +552,8 @@ CREATE TABLE "PERM_TEMPLATES_GROUPS" ( ); -CREATE TABLE "LOGS" ( +CREATE TABLE "ACTIVITIES" ( "CREATED_AT" TIMESTAMP, - "EXECUTION_TIME_FIELD" LONG, "USER_LOGIN" VARCHAR(30), "LOG_TYPE" VARCHAR(250), "LOG_MESSAGE" VARCHAR(250), diff --git a/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java b/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java index e224864ce60..0ba3834b58a 100644 --- a/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java +++ b/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java @@ -45,11 +45,6 @@ public class ActivityDoc extends BaseDoc implements Activity { return this.getField(ActivityNormalizer.LogFields.AUTHOR.field()); } - @Override - public Integer executionTime() { - return this.getField(ActivityNormalizer.LogFields.EXECUTION.field()); - } - @Override public Map details() { return this.getField(ActivityNormalizer.LogFields.DETAILS.field()); diff --git a/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityNormalizer.java b/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityNormalizer.java index ebfb71007f2..c750f0c251a 100644 --- a/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityNormalizer.java +++ b/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityNormalizer.java @@ -49,10 +49,8 @@ public class ActivityNormalizer extends BaseNormalizer public static final class LogFields extends Indexable { - public final static IndexField KEY = addSortableAndSearchable(IndexField.Type.STRING, "key"); public final static IndexField TYPE = addSortable(IndexField.Type.STRING, "type"); public final static IndexField DATE = addSortable(IndexField.Type.DATE, "date"); - public final static IndexField EXECUTION = add(IndexField.Type.NUMERIC, "executionTime"); public final static IndexField AUTHOR = addSearchable(IndexField.Type.STRING, "author"); public final static IndexField DETAILS = addSearchable(IndexField.Type.OBJECT, "details"); public final static IndexField MESSAGE = addSearchable(IndexField.Type.STRING, "message"); @@ -94,11 +92,9 @@ public class ActivityNormalizer extends BaseNormalizer public List normalize(ActivityDto dto) { Map logDoc = new HashMap(); - logDoc.put(LogFields.KEY.field(), dto.getKey()); logDoc.put(LogFields.TYPE.field(), dto.getType()); logDoc.put(LogFields.AUTHOR.field(), dto.getAuthor()); logDoc.put(LogFields.MESSAGE.field(), dto.getMessage()); - logDoc.put(LogFields.EXECUTION.field(), dto.getExecutionTime()); logDoc.put(LogFields.DATE.field(), dto.getCreatedAt()); logDoc.put(LogFields.DETAILS.field(), KeyValueFormat.parse(dto.getData())); diff --git a/sonar-server/src/main/java/org/sonar/server/activity/ws/ActivityMapping.java b/sonar-server/src/main/java/org/sonar/server/activity/ws/ActivityMapping.java index f4160282775..9e2cb2fd243 100644 --- a/sonar-server/src/main/java/org/sonar/server/activity/ws/ActivityMapping.java +++ b/sonar-server/src/main/java/org/sonar/server/activity/ws/ActivityMapping.java @@ -36,12 +36,10 @@ public class ActivityMapping extends BaseMapping { public ActivityMapping(Languages languages, MacroInterpreter macroInterpreter) { super(); - addIndexStringField("key", ActivityNormalizer.LogFields.KEY.field()); addIndexStringField("type", ActivityNormalizer.LogFields.TYPE.field()); addIndexDatetimeField("createdAt", ActivityNormalizer.LogFields.DATE.field()); addIndexStringField("userLogin", ActivityNormalizer.LogFields.AUTHOR.field()); addIndexStringField("message", ActivityNormalizer.LogFields.MESSAGE.field()); - addIndexStringField("executionTime", ActivityNormalizer.LogFields.EXECUTION.field()); addField("details", new DetailField()); } diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRuleChange.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRuleChange.java index 249295c0a01..59650b8ecdd 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRuleChange.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRuleChange.java @@ -120,11 +120,6 @@ public class ActiveRuleChange implements ActivityLog { return details; } - @Override - public int getExecutionTime() { - return (int) (System.currentTimeMillis() - start); - } - public static ActiveRuleChange createFor(Type type, ActiveRuleKey key) { return new ActiveRuleChange(type, key); } diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/548_rename_activities_table.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/548_rename_activities_table.rb new file mode 100644 index 00000000000..0fae77da962 --- /dev/null +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/548_rename_activities_table.rb @@ -0,0 +1,31 @@ +# +# 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. +# + +# +# Sonar 2.14 +# +class RenameActivitiesTable < ActiveRecord::Migration + + def self.up + remove_column(:logs, 'execution_time_field') + rename_table(:logs, 'activities') + end + +end diff --git a/sonar-server/src/test/java/org/sonar/server/activity/ActivityBackendMediumTest.java b/sonar-server/src/test/java/org/sonar/server/activity/ActivityBackendMediumTest.java index aeb7e9ff1a1..69c6cd55b0c 100644 --- a/sonar-server/src/test/java/org/sonar/server/activity/ActivityBackendMediumTest.java +++ b/sonar-server/src/test/java/org/sonar/server/activity/ActivityBackendMediumTest.java @@ -87,10 +87,6 @@ public class ActivityBackendMediumTest { return ImmutableMap.of(testKey, testValue); } - @Override - public int getExecutionTime() { - return 12; - } }); dbSession.commit(); @@ -99,7 +95,6 @@ public class ActivityBackendMediumTest { Activity activity = Iterables.getFirst(index.findAll().getHits(), null); assertThat(activity).isNotNull(); assertThat(activity.details().get(testKey)).isEqualTo(testValue); - assertThat(activity.executionTime()).isEqualTo(12); } @Test diff --git a/sonar-server/src/test/java/org/sonar/server/activity/db/ActivityDaoTest.java b/sonar-server/src/test/java/org/sonar/server/activity/db/ActivityDaoTest.java index 9e4b67f98af..21afaf413a3 100644 --- a/sonar-server/src/test/java/org/sonar/server/activity/db/ActivityDaoTest.java +++ b/sonar-server/src/test/java/org/sonar/server/activity/db/ActivityDaoTest.java @@ -103,11 +103,6 @@ public class ActivityDaoTest extends AbstractDaoTestCase { public Map getDetails() { return ImmutableMap.of(testKey, testValue); } - - @Override - public int getExecutionTime() { - return 12; - } }) .setAuthor("jUnit") .setType(Activity.Type.ACTIVE_RULE); @@ -117,7 +112,6 @@ public class ActivityDaoTest extends AbstractDaoTestCase { assertThat(dao.findAll(session)).hasSize(1); ActivityDto newDto = dao.getByKey(session, log.getKey()); assertThat(newDto.getAuthor()).isEqualTo(log.getAuthor()); - assertThat(newDto.getExecutionTime()).isEqualTo(12); assertThat(newDto.getData()).isNotNull(); Map details = KeyValueFormat.parse(newDto.getData()); assertThat(details.get(testKey)).isEqualTo(testValue); -- 2.39.5