import com.google.common.base.Objects;
import com.google.common.base.Strings;
-import com.google.common.collect.HashMultiset;
-import com.google.common.collect.Multiset;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.ServerComponent;
import org.sonar.api.issue.ActionPlan;
import org.sonar.core.issue.workflow.IssueWorkflow;
import org.sonar.core.issue.workflow.Transition;
import org.sonar.core.persistence.DbSession;
-import org.sonar.core.rule.RuleDto;
import org.sonar.server.db.DbClient;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.es.SearchResult;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
-
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
public class IssueService implements ServerComponent {
}
}
- // TODO result should be replaced by an aggregation object in IssueIndex
- public RulesAggregation findRulesByComponent(String componentKey, @Nullable Date periodDate, DbSession session) {
- RulesAggregation rulesAggregation = new RulesAggregation();
- for (RuleDto ruleDto : deprecatedIssueDao.findRulesByComponent(componentKey, periodDate, session)) {
- rulesAggregation.add(ruleDto);
- }
- return rulesAggregation;
- }
-
- // TODO result should be replaced by an aggregation object in IssueIndex
- public Multiset<String> findSeveritiesByComponent(String componentKey, @Nullable Date periodDate, DbSession session) {
- Multiset<String> aggregation = HashMultiset.create();
- for (String severity : deprecatedIssueDao.findSeveritiesByComponent(componentKey, periodDate, session)) {
- aggregation.add(severity);
- }
- return aggregation;
- }
-
public Issue getByKey(String key) {
return issueIndex.getByKey(key);
}
.setPeriodParam(3, "32")
.setPeriodParam(4, "33")
.setPeriodParam(5, "34")
- .setPeriodDate(1, DateUtils.parseDate("2011-09-24").getTime())
- .setPeriodDate(2, DateUtils.parseDate("2011-09-25").getTime())
- .setPeriodDate(3, DateUtils.parseDate("2011-09-26").getTime())
- .setPeriodDate(4, DateUtils.parseDate("2011-09-27").getTime())
- .setPeriodDate(5, DateUtils.parseDate("2011-09-28").getTime())
- .setBuildDate(DateUtils.parseDate("2011-09-29").getTime());
+ .setPeriodDate(1, 1_500_000_000_001L)
+ .setPeriodDate(2, 1_500_000_000_002L)
+ .setPeriodDate(3, 1_500_000_000_003L)
+ .setPeriodDate(4, 1_500_000_000_004L)
+ .setPeriodDate(5, 1_500_000_000_005L)
+ .setBuildDate(1_500_000_000_006L);
}
}
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import static org.sonar.api.utils.DateUtils.parseDate;
import static org.sonar.core.computation.db.AnalysisReportDto.Status.PENDING;
import static org.sonar.core.computation.db.AnalysisReportDto.Status.WORKING;
this.system2 = mock(System2.class);
this.sut = new AnalysisReportDao(system2);
- when(system2.now()).thenReturn(parseDate("2014-09-26").getTime());
- when(system2.newDate()).thenReturn(parseDate("2014-09-26"));
+ when(system2.now()).thenReturn(1_500_000_000_000L);
}
@After
AnalysisReportDto report = sut.selectById(session, 1L);
assertThat(report.getProjectKey()).isEqualTo(DEFAULT_PROJECT_KEY);
- assertThat(report.getCreatedAt()).isEqualTo(parseDate("2014-09-24").getTime());
- assertThat(report.getUpdatedAt()).isEqualTo(parseDate("2014-09-25").getTime());
- assertThat(report.getStartedAt()).isEqualTo(parseDate("2014-09-26").getTime());
- assertThat(report.getFinishedAt()).isEqualTo(parseDate("2014-09-27").getTime());
+ assertThat(report.getCreatedAt()).isEqualTo(1_500_000_000_001L);
+ assertThat(report.getUpdatedAt()).isEqualTo(1_500_000_000_002L);
+ assertThat(report.getStartedAt()).isEqualTo(1_500_000_000_003L);
+ assertThat(report.getFinishedAt()).isEqualTo(1_500_000_000_004L);
assertThat(report.getStatus()).isEqualTo(WORKING);
}
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterators;
-import com.google.common.collect.Multiset;
import com.google.common.collect.Sets;
import org.junit.After;
import org.junit.Before;
service.createManualIssue(file.key(), rule.getKey(), 10, "Fix it", null, 2d);
}
- @Test
- public void find_rules_by_component() throws Exception {
- RuleDto rule = newRule();
- ComponentDto project = newProject();
- ComponentDto file = newFile(project);
-
- // 2 issues on the same rule
- saveIssue(IssueTesting.newDto(rule, file, project));
- saveIssue(IssueTesting.newDto(rule, file, project));
-
- RulesAggregation result = service.findRulesByComponent(file.key(), null, session);
- assertThat(result.rules()).hasSize(1);
- }
-
- @Test
- public void find_rules_by_severity() throws Exception {
- RuleDto rule = newRule();
- ComponentDto project = newProject();
- ComponentDto file = newFile(project);
-
- saveIssue(IssueTesting.newDto(rule, file, project).setSeverity(Severity.MAJOR));
- saveIssue(IssueTesting.newDto(rule, file, project).setSeverity(Severity.MAJOR));
- saveIssue(IssueTesting.newDto(rule, file, project).setSeverity(Severity.INFO));
-
- Multiset<String> result = service.findSeveritiesByComponent(file.key(), null, session);
- assertThat(result.count("MAJOR")).isEqualTo(2);
- assertThat(result.count("INFO")).isEqualTo(1);
- assertThat(result.count("UNKNOWN")).isEqualTo(0);
- }
-
@Test
public void search_issues() {
RuleDto rule = newRule();
// override generated key
comment.setKey("FGHIJ");
- Date date = DateUtils.parseDate("2013-05-18");
+ Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
DefaultIssue issue = new DefaultIssue()
.setKey("ABCDE")
.setNew(true)
// override generated key
comment.setKey("FGHIJ");
- Date date = DateUtils.parseDate("2013-05-18");
+ Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
DefaultIssue issue = new DefaultIssue()
.setKey("ABCDE")
.setNew(false)
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.rule.RuleKey;
-import org.sonar.api.utils.DateUtils;
import org.sonar.core.component.ComponentDto;
import org.sonar.core.issue.db.IssueDto;
import org.sonar.core.persistence.AbstractDaoTestCase;
dto.setChecksum("123456789");
dto.setMessage("the message");
- dto.setIssueCreationDate(DateUtils.parseDate("2013-05-18"));
- dto.setIssueUpdateDate(DateUtils.parseDate("2013-05-19"));
- dto.setIssueCloseDate(DateUtils.parseDate("2013-05-20"));
- dto.setCreatedAt(1400000000000L);
- dto.setUpdatedAt(1450000000000L);
+ dto.setIssueCreationTime(1_500_000_000_000L);
+ dto.setIssueUpdateTime(1_500_000_000_001L);
+ dto.setIssueCloseTime(1_500_000_000_002L);
+ dto.setCreatedAt(1_400_000_000_000L);
+ dto.setUpdatedAt(1_450_000_000_000L);
sut.insert(session, dto);
session.commit();
<snapshots id="1" project_id="3" parent_snapshot_id="2" root_project_id="1" root_snapshot_id="1"
status="P" islast="[true]" purge_status="1"
- period1_mode="days1" period1_param="30" period1_date="1316815200000"
- period2_mode="days2" period2_param="31" period2_date="1316901600000"
- period3_mode="days3" period3_param="32" period3_date="1316988000000"
- period4_mode="days4" period4_param="33" period4_date="1317074400000"
- period5_mode="days5" period5_param="34" period5_date="1317160800000"
- depth="1" scope="DIR" qualifier="PAC" created_at="1403042400000" build_date="1317247200000"
+ period1_mode="days1" period1_param="30" period1_date="1500000000001"
+ period2_mode="days2" period2_param="31" period2_date="1500000000002"
+ period3_mode="days3" period3_param="32" period3_date="1500000000003"
+ period4_mode="days4" period4_param="33" period4_date="1500000000004"
+ period5_mode="days5" period5_param="34" period5_date="1500000000005"
+ depth="1" scope="DIR" qualifier="PAC" created_at="1403042400000" build_date="1500000000006"
version="2.1-SNAPSHOT" path="1.2."/>
</dataset>
report_status="PENDING"
started_at="[null]"
finished_at="[null]"
- created_at="1411682400000"
- updated_at="1411682400000"
+ created_at="1500000000000"
+ updated_at="1500000000000"
/>
<analysis_reports
id="2"
report_status="PENDING"
started_at="[null]"
finished_at="[null]"
- created_at="1411682400000"
- updated_at="1411682400000"
+ created_at="1500000000000"
+ updated_at="1500000000000"
/>
</dataset>
project_key="123456789-987654321"
uuid="REPORT_1"
report_status="WORKING"
- created_at="1411509600000"
- updated_at="1411596000000"
- started_at="1411682400000"
- finished_at="1411768800000"
+ created_at="1500000000001"
+ updated_at="1500000000002"
+ started_at="1500000000003"
+ finished_at="1500000000004"
/>
</dataset>
uuid="UUID_1"
report_status="PENDING"
created_at="1411509600000"
- updated_at="1411682400000"
+ updated_at="1500000000000"
started_at="[null]"
finished_at="[null]"
/>
uuid="UUID_2"
report_status="PENDING"
created_at="1411596000000"
- updated_at="1411682400000"
+ updated_at="1500000000000"
started_at="[null]"
finished_at="[null]"
/>
uuid="UUID_3"
report_status="PENDING"
created_at="1411682400000"
- updated_at="1411682400000"
+ updated_at="1500000000000"
started_at="[null]"
finished_at="[null]"
/>
issue_attributes="foo=bar"
tags="[null]"
action_plan_key="[null]"
- issue_creation_date="1368828000000"
- issue_update_date="1368828000000"
- issue_close_date="1368828000000"
+ issue_creation_date="1368878400000"
+ issue_update_date="1368878400000"
+ issue_close_date="1368878400000"
/>
<issue_changes id="1" kee="FGHIJ" issue_key="ABCDE" change_type="comment" user_login="emmerik"
issue_attributes="foo=bar"
tags="[null]"
action_plan_key="[null]"
- issue_creation_date="1368828000000"
- issue_update_date="1368828000000"
- issue_close_date="1368828000000"
+ issue_creation_date="1368878400000"
+ issue_update_date="1368878400000"
+ issue_close_date="1368878400000"
/>
<issue_changes id="1" kee="FGHIJ" issue_key="ABCDE" change_type="comment" user_login="emmerik"
assignee="karadoc"
issue_attributes="JIRA=FOO-1234"
tags="[null]"
- issue_creation_date="1368828000000"
- issue_update_date="1368914400000"
- issue_close_date="1369000800000"
+ issue_creation_date="1500000000000"
+ issue_update_date="1500000000001"
+ issue_close_date="1500000000002"
created_at="1400000000000"
updated_at="1450000000000"
action_plan_key="current_sprint"
import org.sonar.api.ServerComponent;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.core.rule.RuleDto;
import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-import java.util.Date;
-import java.util.List;
-
-import static org.sonar.api.utils.DateUtils.dateToLong;
/**
* @since 3.6
}
}
- // TODO replace by aggregation in IssueIndex
- public List<RuleDto> findRulesByComponent(String componentKey, @Nullable Date createdAtOrAfter, DbSession session) {
- return mapper(session).findRulesByComponent(componentKey, dateToLong(createdAtOrAfter));
- }
-
- // TODO replace by aggregation in IssueIndex
- public List<String> findSeveritiesByComponent(String componentKey, @Nullable Date createdAtOrAfter, DbSession session) {
- return mapper(session).findSeveritiesByComponent(componentKey, dateToLong(createdAtOrAfter));
- }
-
protected IssueMapper mapper(DbSession session) {
return session.getMapper(IssueMapper.class);
}
*/
package org.sonar.core.issue.db;
-import org.apache.ibatis.annotations.Param;
-import org.sonar.core.rule.RuleDto;
-
-import javax.annotation.Nullable;
-
import java.util.List;
public interface IssueMapper {
List<IssueDto> selectByActionPlan(String actionPlan);
- List<RuleDto> findRulesByComponent(@Param("componentKey") String componentKey, @Nullable @Param("createdAt") Long createdAtOrAfter);
-
- List<String> findSeveritiesByComponent(@Param("componentKey") String componentKey, @Nullable @Param("createdAt") Long createdAtOrAfter);
-
void insert(IssueDto issue);
int update(IssueDto issue);
</where>
</select>
- <select id="findRulesByComponent" parameterType="String" resultType="Rule">
- SELECT
- <include refid="org.sonar.core.rule.RuleMapper.selectColumns"/>
- FROM issues i
- INNER JOIN projects p on p.uuid=i.component_uuid
- INNER JOIN rules r on r.id=i.rule_id
- WHERE
- p.kee=#{componentKey}
- AND i.resolution IS NULL
- <if test="createdAt != null">
- AND i.issue_creation_date >= #{createdAt}
- </if>
- </select>
-
- <select id="findSeveritiesByComponent" parameterType="String" resultType="String">
- SELECT i.severity
- FROM issues i
- INNER JOIN projects on projects.uuid=i.component_uuid
- INNER JOIN rules on rules.id=i.rule_id
- WHERE
- projects.kee=#{componentKey}
- AND i.resolution IS NULL
- <if test="createdAt != null">
- AND i.issue_creation_date >= #{createdAt}
- </if>
- </select>
-
</mapper>
.setChangeData("Some text")
.setChangeType("comment")
.setIssueKey("ABCDE")
- .setCreatedAt(DateUtils.parseDate("2014-09-09").getTime())
- .setUpdatedAt(DateUtils.parseDate("2014-09-10").getTime())
- .setIssueChangeCreationDate(DateUtils.parseDate("2014-09-11").getTime());
+ .setCreatedAt(1_500_000_000_000L)
+ .setUpdatedAt(1_501_000_000_000L)
+ .setIssueChangeCreationDate(1_502_000_000_000L);
dao.insert(session, changeDto);
session.commit();
// Only the following fields can be updated:
change.setChangeData("new comment");
- change.setUpdatedAt(DateUtils.parseDate("2013-06-30").getTime());
+ change.setUpdatedAt(1_500_000_000_000L);
assertThat(dao.update(change)).isTrue();
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.sonar.api.utils.DateUtils;
import org.sonar.core.persistence.AbstractDaoTestCase;
import org.sonar.core.persistence.MyBatis;
dto.setIssueKey("ABCDE");
dto.setChangeType(IssueChangeDto.TYPE_FIELD_CHANGE);
dto.setChangeData("severity=INFO|BLOCKER");
- long d = DateUtils.parseDate("2013-05-18").getTime();
- dto.setCreatedAt(d);
- dto.setUpdatedAt(d);
- dto.setIssueChangeCreationDate(d);
+ dto.setCreatedAt(1_500_000_000_000L);
+ dto.setUpdatedAt(1_500_000_000_000L);
+ dto.setIssueChangeCreationDate(1_500_000_000_000L);
mapper.insert(dto);
session.commit();
dto.setIssueKey("ABCDE");
dto.setChangeType(IssueChangeDto.TYPE_COMMENT);
dto.setChangeData("the comment");
- long d = DateUtils.parseDate("2013-05-18").getTime();
- dto.setCreatedAt(d);
- dto.setUpdatedAt(d);
+ dto.setCreatedAt(1_500_000_000_000L);
+ dto.setUpdatedAt(1_500_000_000_000L);
mapper.insert(dto);
session.commit();
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.sonar.api.rule.Severity;
-import org.sonar.api.utils.DateUtils;
import org.sonar.core.persistence.AbstractDaoTestCase;
import org.sonar.core.persistence.DbSession;
assertThat(issue.getComponentKey()).isNotNull();
assertThat(issue.getProjectKey()).isNull();
}
-
- @Test
- public void find_rules_by_component() {
- setupData("shared", "find_rules_by_component");
-
- assertThat(dao.findRulesByComponent("Action.java", null, session)).hasSize(3);
- assertThat(dao.findRulesByComponent("Action.java", DateUtils.parseDate("2013-04-17"), session)).hasSize(2);
- }
-
- @Test
- public void find_severities_by_component() {
- setupData("shared", "find_severities_by_component");
-
- assertThat(dao.findSeveritiesByComponent("Action.java", null, session)).containsExactly(Severity.BLOCKER, Severity.MAJOR, Severity.BLOCKER);
- assertThat(dao.findSeveritiesByComponent("Action.java", DateUtils.parseDate("2013-04-17"), session)).containsExactly(Severity.MAJOR);
- }
-
}
dto.setChecksum("123456789");
dto.setMessage("the message");
- dto.setIssueCreationDate(DateUtils.parseDate("2013-05-18"));
- dto.setIssueUpdateDate(DateUtils.parseDate("2013-05-19"));
- dto.setIssueCloseDate(DateUtils.parseDate("2013-05-20"));
- dto.setCreatedAt(1400000000000L);
- dto.setUpdatedAt(1500000000000L);
+ dto.setIssueCreationTime(1_401_000_000_000L);
+ dto.setIssueUpdateTime(1_402_000_000_000L);
+ dto.setIssueCloseTime(1_403_000_000_000L);
+ dto.setCreatedAt(1_400_000_000_000L);
+ dto.setUpdatedAt(1_500_000_000_000L);
mapper.insert(dto);
session.commit();
dto.setChecksum("123456789");
dto.setMessage("the message");
- dto.setIssueCreationDate(DateUtils.parseDate("2013-05-18"));
- dto.setIssueUpdateDate(DateUtils.parseDate("2013-05-19"));
- dto.setIssueCloseDate(DateUtils.parseDate("2013-05-20"));
- dto.setCreatedAt(1400000000000L);
- dto.setUpdatedAt(1500000000000L);
+ dto.setIssueCreationTime(1_401_000_000_000L);
+ dto.setIssueUpdateTime(1_402_000_000_000L);
+ dto.setIssueCloseTime(1_403_000_000_000L);
+ dto.setCreatedAt(1_400_000_000_000L);
+ dto.setUpdatedAt(1_500_000_000_000L);
mapper.update(dto);
session.commit();
dto.setIssueAttributes("JIRA=FOO-1234");
dto.setChecksum("123456789");
dto.setMessage("the message");
- dto.setIssueCreationDate(DateUtils.parseDate("2013-05-18"));
- dto.setIssueUpdateDate(DateUtils.parseDate("2013-05-19"));
- dto.setIssueCloseDate(DateUtils.parseDate("2013-05-20"));
- dto.setCreatedAt(1400000000000L);
- dto.setUpdatedAt(1500000000000L);
+ dto.setIssueCreationTime(1_401_000_000_000L);
+ dto.setIssueUpdateTime(1_402_000_000_000L);
+ dto.setIssueCloseTime(1_403_000_000_000L);
+ dto.setCreatedAt(1_400_000_000_000L);
+ dto.setUpdatedAt(1_500_000_000_000L);
// selected after last update -> ok
dto.setSelectedAt(1500000000000L);
// override generated key
comment.setKey("FGHIJ");
- Date date = DateUtils.parseDate("2013-05-18");
+ Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
DefaultIssue issue = new DefaultIssue()
.setKey("ABCDE")
.setNew(true)
// override generated key
comment.setKey("FGHIJ");
- Date date = DateUtils.parseDate("2013-05-18");
+ Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
DefaultIssue issue = new DefaultIssue()
.setKey("ABCDE")
.setNew(true)
// override generated key
comment.setKey("FGHIJ");
- Date date = DateUtils.parseDate("2013-05-18");
+ Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
DefaultIssue issue = new DefaultIssue()
.setKey("ABCDE")
.setNew(true)
// override generated key
comment.setKey("FGHIJ");
- Date date = DateUtils.parseDate("2013-05-18");
+ Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
DefaultIssue issue = new DefaultIssue()
.setKey("ABCDE")
.setNew(false)
// override generated key
comment.setKey("FGHIJ");
- Date date = DateUtils.parseDate("2013-05-18");
+ Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
DefaultIssue issue = new DefaultIssue()
.setKey("ABCDE")
.setNew(false)
import org.sonar.api.component.Component;
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.resources.Scopes;
-import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
import org.sonar.core.component.ComponentDto;
import org.sonar.core.component.SnapshotDto;
import org.sonar.core.persistence.DbSession;
import javax.annotation.Nullable;
-
import java.util.Collections;
import java.util.List;
public void createDao() {
session = getMyBatis().openSession(false);
system2 = mock(System2.class);
- when(system2.now()).thenReturn(DateUtils.parseDate("2014-09-03").getTime());
+ when(system2.now()).thenReturn(1_500_000_000_000L);
dao = new ResourceDao(getMyBatis(), system2);
}
assertThat(file1.getId()).isNotNull();
assertThat(file2.getId()).isNotNull();
- checkTables("insert", new String[] {"authorization_updated_at"}, "projects");
+ checkTables("insert", new String[] {"authorization_updated_at", "created_at"}, "projects");
// SONAR-3636 : created_at must be fed when inserting a new entry in the 'projects' table
ResourceDto fileLoadedFromDB = dao.getResource(file1.getId());
assertThat(snapshotDto.getPeriodMode(2)).isEqualTo("days");
assertThat(snapshotDto.getPeriodModeParameter(2)).isEqualTo("30");
- assertThat(snapshotDto.getPeriodDate(2)).isEqualTo(DateUtils.parseDate("2011-09-24").getTime());
+ assertThat(snapshotDto.getPeriodDate(2)).isEqualTo(1_316_815_200_000L);
assertThat(snapshotDto.getPeriodMode(3)).isEqualTo("days");
assertThat(snapshotDto.getPeriodModeParameter(3)).isEqualTo("90");
- assertThat(snapshotDto.getPeriodDate(3)).isEqualTo(DateUtils.parseDate("2011-07-26").getTime());
+ assertThat(snapshotDto.getPeriodDate(3)).isEqualTo(1_311_631_200_000L);
assertThat(snapshotDto.getPeriodMode(4)).isEqualTo("previous_analysis");
assertThat(snapshotDto.getPeriodModeParameter(4)).isNull();
user_login="emmerik"
change_type="comment"
change_data="Some text"
- created_at="1410213600000"
- updated_at="1410300000000"
- issue_change_creation_date="1410386400000"
+ created_at="1500000000000"
+ updated_at="1501000000000"
+ issue_change_creation_date="1502000000000"
/>
</dataset>
change_type="comment"
change_data="new comment"
created_at="1367704800000"
- updated_at="1372543200000"
+ updated_at="1500000000000"
issue_change_creation_date="[null]"
/>
</dataset>
user_login="emmerik"
change_type="comment"
change_data="the comment"
- created_at="1368828000000"
- updated_at="1368828000000"
+ created_at="1500000000000"
+ updated_at="1500000000000"
issue_change_creation_date="[null]"
/>
</dataset>
user_login="emmerik"
change_type="diff"
change_data="severity=INFO|BLOCKER"
- created_at="1368828000000"
- updated_at="1368828000000"
- issue_change_creation_date="1368828000000"
+ created_at="1500000000000"
+ updated_at="1500000000000"
+ issue_change_creation_date="1500000000000"
/>
</dataset>
+++ /dev/null
-<dataset>
-
- <!-- rule 500 -->
- <issues
- id="100"
- kee="ABCDE-1"
- component_uuid="CDEF"
- project_uuid="ABCD"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- message="[null]"
- line="200"
- effort_to_fix="4.2"
- status="OPEN"
- resolution="[null]"
- checksum="XXX"
- reporter="arthur"
- assignee="perceval"
- author_login="[null]"
- issue_attributes="JIRA=FOO-1234"
- issue_creation_date="1366063200000"
- issue_update_date="1366063200000"
- issue_close_date="1366063200000"
- created_at="1400000000000"
- updated_at="1400000000000"
- />
-
- <issues
- id="101"
- kee="ABCDE-2"
- component_uuid="CDEF"
- project_uuid="ABCD"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- message="[null]"
- line="200"
- effort_to_fix="4.2"
- status="OPEN"
- resolution="[null]"
- checksum="XXX"
- reporter="arthur"
- assignee="perceval"
- author_login="[null]"
- issue_attributes="JIRA=FOO-1234"
- issue_creation_date="1366149600000"
- issue_update_date="1366149600000"
- issue_close_date="1366149600000"
- created_at="1400000000000"
- updated_at="1400000000000"
- />
-
-
- <!-- rule 501 -->
- <issues
- id="102"
- kee="ABCDE-3"
- component_uuid="CDEF"
- project_uuid="ABCD"
- rule_id="501"
- severity="BLOCKER"
- manual_severity="[false]"
- message="[null]"
- line="200"
- effort_to_fix="4.2"
- status="OPEN"
- resolution="[null]"
- checksum="XXX"
- reporter="arthur"
- assignee="perceval"
- author_login="[null]"
- issue_attributes="JIRA=FOO-1234"
- issue_creation_date="1366236000000"
- issue_update_date="1366236000000"
- issue_close_date="1366236000000"
- created_at="1400000000000"
- updated_at="1400000000000"
- />
-</dataset>
assignee="karadoc"
issue_attributes="JIRA=FOO-1234"
tags="[null]"
- issue_creation_date="1368828000000"
- issue_update_date="1368914400000"
- issue_close_date="1369000800000"
+ issue_creation_date="1401000000000"
+ issue_update_date="1402000000000"
+ issue_close_date="1403000000000"
created_at="1400000000000"
updated_at="1500000000000"
action_plan_key="current_sprint"
assignee="karadoc"
issue_attributes="JIRA=FOO-1234"
tags="[null]"
- issue_creation_date="1368828000000"
- issue_update_date="1368914400000"
- issue_close_date="1369000800000"
+ issue_creation_date="1401000000000"
+ issue_update_date="1402000000000"
+ issue_close_date="1403000000000"
created_at="1400000000000"
updated_at="1500000000000"
action_plan_key="current_sprint"
reporter="[null]"
author_login="[null]"
assignee="[null]"
- issue_attributes="[null]"
- issue_creation_date="[null]"
- issue_update_date="[null]"
- issue_close_date="[null]"
+ issue_creation_date="1401000000000"
+ issue_update_date="1402000000000"
+ issue_close_date="1403000000000"
created_at="1400000000000"
- updated_at="1400000000000"
+ updated_at="1500000000000"
action_plan_key="[null]"
/>
</dataset>
issue_attributes="foo=bar"
tags="[null]"
action_plan_key="[null]"
- issue_creation_date="1368828000000"
- issue_update_date="1368828000000"
- issue_close_date="1368828000000"
+ issue_creation_date="1368878400000"
+ issue_update_date="1368878400000"
+ issue_close_date="1368878400000"
/>
<issue_changes id="1" kee="FGHIJ" issue_key="ABCDE" change_type="comment" user_login="emmerik"
created_at="2005-05-12"
updated_at="2013-05-18"
issue_creation_date="1115848800000"
- issue_update_date="1368828000000"
+ issue_update_date="1368878400000"
issue_close_date="[null]"
/>
</dataset>
issue_attributes="foo=bar"
tags="[null]"
action_plan_key="[null]"
- issue_creation_date="1368828000000"
- issue_update_date="1368828000000"
- issue_close_date="1368828000000"
+ issue_creation_date="1368878400000"
+ issue_update_date="1368878400000"
+ issue_close_date="1368878400000"
/>
<issue_changes id="1" kee="FGHIJ" issue_key="ABCDE" change_type="comment" user_login="emmerik"
<projects id="1" root_id="[null]" uuid="ABCD" project_uuid="EFGH" module_uuid="EFGH" module_uuid_path=".EFGH."
scope="FIL" qualifier="FIL" kee="org.struts:struts:/src/main/java/org/struts/Action.java" name="Action"
description="[null]" long_name="org.struts.Action"
- enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]" created_at="2014-09-03" path="/foo/bar" deprecated_kee="org.struts:struts:org.struts.Action"
+ enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]" created_at="[ignore]" path="/foo/bar" deprecated_kee="org.struts:struts:org.struts.Action"
authorization_updated_at="123456789"/>
<projects id="2" root_id="[null]" uuid="BCDE" project_uuid="FGHI" module_uuid="FGHI" module_uuid_path=".FGHI."
scope="FIL" qualifier="FIL" kee="org.struts:struts:/src/main/java/org/struts/Filter.java" name="Filter"
description="[null]" long_name="org.struts.Filter"
- enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]" created_at="2014-09-03" path="[null]" deprecated_kee="org.struts:struts:org.struts.Filter"
+ enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]" created_at="[ignore]" path="[null]" deprecated_kee="org.struts:struts:org.struts.Filter"
authorization_updated_at="123456789"/>
</dataset>