public void insert(DbSession session, Collection<MeasureDto> items) { for (MeasureDto item : items) { insert(session, item); } }
private Optional<String> loadQualityGateDetails(DbSession dbSession, ProjectAndSnapshot projectAndSnapshot, boolean onAnalysis) { if (onAnalysis) { if (!projectAndSnapshot.snapshotDto.isPresent()) { return Optional.empty(); } // get the gate status as it was computed during the specified analysis String analysisUuid = projectAndSnapshot.snapshotDto.get().getUuid(); return dbClient.measureDao().selectMeasure(dbSession, analysisUuid, projectAndSnapshot.project.projectUuid(), CoreMetrics.QUALITY_GATE_DETAILS_KEY) .map(MeasureDto::getData); } // do not restrict to a specified analysis, use the live measure Optional<LiveMeasureDto> measure = dbClient.liveMeasureDao().selectMeasure(dbSession, projectAndSnapshot.project.projectUuid(), CoreMetrics.QUALITY_GATE_DETAILS_KEY); return measure.map(LiveMeasureDto::getDataAsString); }
@Override public Optional<Measure> getBaseMeasure(Component component, Metric metric) { // fail fast requireNonNull(component); requireNonNull(metric); try (DbSession dbSession = dbClient.openSession(false)) { Optional<MeasureDto> measureDto = dbClient.measureDao().selectLastMeasure(dbSession, component.getUuid(), metric.getKey()); if (measureDto.isPresent()) { return measureTransformer.toMeasure(measureDto.get(), metric); } return Optional.empty(); } }
@Test public void test_selectMeasure() { MetricDto metric = db.measures().insertMetric(); ComponentDto project = db.components().insertPrivateProject(); ComponentDto file = db.components().insertComponent(newFileDto(project)); SnapshotDto lastAnalysis = insertAnalysis(project.uuid(), true); SnapshotDto pastAnalysis = insertAnalysis(project.uuid(), false); MeasureDto pastMeasure = MeasureTesting.newMeasureDto(metric, file, pastAnalysis); MeasureDto lastMeasure = MeasureTesting.newMeasureDto(metric, file, lastAnalysis); underTest.insert(db.getSession(), pastMeasure); underTest.insert(db.getSession(), lastMeasure); assertThat(underTest.selectMeasure(db.getSession(), lastAnalysis.getUuid(), file.uuid(), metric.getKey()).get()) .isEqualToComparingFieldByField(lastMeasure); assertThat(underTest.selectMeasure(db.getSession(), pastAnalysis.getUuid(), file.uuid(), metric.getKey()).get()) .isEqualToComparingFieldByField(pastMeasure); assertThat(underTest.selectMeasure(db.getSession(), "_missing_", file.uuid(), metric.getKey())).isEmpty(); assertThat(underTest.selectMeasure(db.getSession(), pastAnalysis.getUuid(), "_missing_", metric.getKey())).isEmpty(); assertThat(underTest.selectMeasure(db.getSession(), pastAnalysis.getUuid(), file.uuid(), "_missing_")).isEmpty(); }
@Test public void test_selectLastMeasure() { MetricDto metric = db.measures().insertMetric(); ComponentDto project = db.components().insertPrivateProject(); ComponentDto file = db.components().insertComponent(newFileDto(project)); SnapshotDto lastAnalysis = insertAnalysis(project.uuid(), true); SnapshotDto pastAnalysis = insertAnalysis(project.uuid(), false); MeasureDto pastMeasure = MeasureTesting.newMeasureDto(metric, file, pastAnalysis); MeasureDto lastMeasure = MeasureTesting.newMeasureDto(metric, file, lastAnalysis); underTest.insert(db.getSession(), pastMeasure); underTest.insert(db.getSession(), lastMeasure); MeasureDto selected = underTest.selectLastMeasure(db.getSession(), file.uuid(), metric.getKey()).get(); assertThat(selected).isEqualToComparingFieldByField(lastMeasure); assertThat(underTest.selectLastMeasure(dbSession, "_missing_", metric.getKey())).isEmpty(); assertThat(underTest.selectLastMeasure(dbSession, file.uuid(), "_missing_")).isEmpty(); assertThat(underTest.selectLastMeasure(dbSession, "_missing_", "_missing_")).isEmpty(); }
/** * Select measures of: * - one component * - for a list of metrics * - with analysis from a date (inclusive) - optional * - with analysis to a date (exclusive) - optional * * If no constraints on dates, all the history is returned */ public List<MeasureDto> selectPastMeasures(DbSession dbSession, PastMeasureQuery query) { return mapper(dbSession).selectPastMeasuresOnSeveralAnalyses(query); }
private void verifyZeroMeasures(MeasureQuery.Builder query) { assertThat(underTest.selectByQuery(db.getSession(), query.build())).isEmpty(); }
public Optional<MeasureDto> selectMeasure(DbSession dbSession, String analysisUuid, String componentUuid, String metricKey) { return Optional.ofNullable(mapper(dbSession).selectMeasure(analysisUuid, componentUuid, metricKey)); }
private void verifyMeasures(MeasureQuery.Builder query, String... expectedIds) { List<MeasureDto> measures = underTest.selectByQuery(db.getSession(), query.build()); assertThat(measures).extracting(MeasureDto::getData).containsOnly(expectedIds); }
public void insert(DbSession session, MeasureDto item, MeasureDto... others) { insert(session, Lists.asList(item, others)); }
public void insert(DbSession session, MeasureDto measureDto) { mapper(session).insert(measureDto); }
private Optional<MeasureDto> selectMeasure(String componentUuid, Metric metric) { return dbClient.measureDao().selectMeasure(db.getSession(), ANALYSIS_UUID, componentUuid, metric.getKey()); }
@Override public Optional<Measure> getBaseMeasure(Component component, Metric metric) { // fail fast requireNonNull(component); requireNonNull(metric); try (DbSession dbSession = dbClient.openSession(false)) { java.util.Optional<MeasureDto> measureDto = dbClient.measureDao().selectLastMeasure(dbSession, component.getUuid(), metric.getKey()); if (measureDto.isPresent()) { return measureTransformer.toMeasure(measureDto.get(), metric); } return Optional.absent(); } }
public Optional<MeasureDto> selectSingle(DbSession dbSession, MeasureQuery query) { List<MeasureDto> measures = selectByQuery(dbSession, query); return Optional.ofNullable(Iterables.getOnlyElement(measures, null)); }
private void persistMeasures(Component component) { Multimap<String, Measure> measures = measureRepository.getRawMeasures(component); for (Map.Entry<String, Collection<Measure>> measuresByMetricKey : measures.asMap().entrySet()) { String metricKey = measuresByMetricKey.getKey(); Metric metric = metricRepository.getByKey(metricKey); MeasureDao measureDao = dbClient.measureDao(); measuresByMetricKey.getValue().stream().filter(NonEmptyMeasure.INSTANCE).forEach(measure -> { MeasureDto measureDto = measureToMeasureDto.toMeasureDto(measure, metric, component); measureDao.insert(session, measureDto); inserts++; }); } }
public Optional<MeasureDto> selectLastMeasure(DbSession dbSession, String componentUuid, String metricKey) { return Optional.ofNullable(mapper(dbSession).selectLastMeasure(componentUuid, metricKey)); }
private Optional<String> loadQualityGateDetails(DbSession dbSession, ProjectAndSnapshot projectAndSnapshot, boolean onAnalysis) { if (onAnalysis) { if (!projectAndSnapshot.snapshotDto.isPresent()) { return Optional.empty(); } // get the gate status as it was computed during the specified analysis String analysisUuid = projectAndSnapshot.snapshotDto.get().getUuid(); return dbClient.measureDao().selectMeasure(dbSession, analysisUuid, projectAndSnapshot.project.projectUuid(), CoreMetrics.QUALITY_GATE_DETAILS_KEY) .map(MeasureDto::getData); } // do not restrict to a specified analysis, use the live measure Optional<LiveMeasureDto> measure = dbClient.liveMeasureDao().selectMeasure(dbSession, projectAndSnapshot.project.projectUuid(), CoreMetrics.QUALITY_GATE_DETAILS_KEY); return measure.map(LiveMeasureDto::getDataAsString); }
@SafeVarargs public final MeasureDto insertMeasure(ComponentDto component, SnapshotDto analysis, MetricDto metricDto, Consumer<MeasureDto>... consumers) { MeasureDto measureDto = newMeasureDto(metricDto, component, analysis); Arrays.stream(consumers).forEach(c -> c.accept(measureDto)); dbClient.measureDao().insert(dbSession, measureDto); dbSession.commit(); return measureDto; }
public List<PastMeasureDto> selectPastMeasures(DbSession dbSession, String componentUuid, String analysisUuid, Collection<Integer> metricIds) { if (metricIds.isEmpty()) { return emptyList(); } return executeLargeInputs( metricIds, ids -> mapper(dbSession).selectPastMeasuresOnSingleAnalysis(componentUuid, analysisUuid, ids)); }
private void insertMeasureFor(ComponentDto... components) { Arrays.stream(components).forEach(componentDto -> db.getDbClient().measureDao().insert(dbSession, new MeasureDto() .setMetricId(new Random().nextInt()) .setComponentUuid(componentDto.uuid()) .setAnalysisUuid(randomAlphabetic(3)))); dbSession.commit(); }