Skip to content

Commit

Permalink
chore(): index by aop
Browse files Browse the repository at this point in the history
  • Loading branch information
KarimGl committed Oct 25, 2024
1 parent 0b96068 commit 28267fd
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 4 deletions.
4 changes: 4 additions & 0 deletions chutney/server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,13 @@
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.core.task.TaskExecutor;
import org.springframework.core.task.support.ExecutorServiceAdapter;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

@SpringBootApplication(exclude = {LiquibaseAutoConfiguration.class, ActiveMQAutoConfiguration.class, MongoAutoConfiguration.class})
@EnableAspectJAutoProxy
public class ServerConfiguration {

private static final Logger LOGGER = LoggerFactory.getLogger(ServerConfiguration.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* SPDX-FileCopyrightText: 2017-2024 Enedis
*
* SPDX-License-Identifier: Apache-2.0
*
*/

package com.chutneytesting.execution.infra.aop;

import com.chutneytesting.execution.infra.storage.jpa.ScenarioExecutionReportEntity;
import com.chutneytesting.index.infra.ScenarioExecutionReportIndexRepository;
import java.util.List;
import java.util.Set;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class IndexingAspect {
private final ScenarioExecutionReportIndexRepository indexRepository;

public IndexingAspect(ScenarioExecutionReportIndexRepository indexRepository) {
this.indexRepository = indexRepository;
}

@After("execution(* com.chutneytesting.execution.infra.storage.ScenarioExecutionReportJpaRepository.save(..)) && args(reportEntity)")
public void index(ScenarioExecutionReportEntity reportEntity) {
indexRepository.save(reportEntity);
}

@After("execution(* com.chutneytesting.execution.infra.storage.ScenarioExecutionReportJpaRepository.saveAll(..)) && args(reportEntities)")
public void indexAll(List<ScenarioExecutionReportEntity> reportEntities) {
indexRepository.saveAll(reportEntities);
}

@After("execution(* com.chutneytesting.execution.infra.storage.ScenarioExecutionReportJpaRepository.delete(..)) && args(reportEntity)")
public void delete(ScenarioExecutionReportEntity reportEntity) {
indexRepository.delete(reportEntity.scenarioExecutionId());
}

@After("execution(* com.chutneytesting.execution.infra.storage.ScenarioExecutionReportJpaRepository.deleteAllById(..)) && args(scenarioExecutionIds)")
public void deleteAllById(Set<Long> scenarioExecutionIds) {
indexRepository.deleteAllById(scenarioExecutionIds);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,6 @@ public Execution store(String scenarioId, DetachedExecution detachedExecution) t
scenarioExecution = scenarioExecutionsJpaRepository.save(scenarioExecution);
ScenarioExecutionReportEntity reportEntity = new ScenarioExecutionReportEntity(scenarioExecution, detachedExecution.report());
scenarioExecutionReportJpaRepository.save(reportEntity);
scenarioExecutionReportIndexRepository.save(reportEntity);
Execution execution = detachedExecution.attach(scenarioExecution.id(), scenarioId);
return ImmutableExecutionHistory.Execution.builder().from(execution).build();
}
Expand Down Expand Up @@ -186,7 +185,6 @@ private void updateReport(Execution execution) throws ReportNotFoundException {
);
scenarioExecutionReport.updateReport(execution);
scenarioExecutionReportJpaRepository.save(scenarioExecutionReport);
scenarioExecutionReportIndexRepository.save(scenarioExecutionReport);
}

@Override
Expand All @@ -213,7 +211,6 @@ public void deleteExecutions(Set<Long> executionsIds) {

campaignExecutionJpaRepository.deleteAllByIdInBatch(campaignExecutionsIds);
scenarioExecutionReportJpaRepository.deleteAllById(executionsIds);
scenarioExecutionReportIndexRepository.deleteAllById(executionsIds);
scenarioExecutionsJpaRepository.deleteAllByIdInBatch(executionsIds);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ public void removeById(String scenarioId) {
allExecutions.forEach(e -> {
e.forCampaignExecution(null);
scenarioExecutionsJpaRepository.save(e);
scenarioExecutionReportIndexRepository.delete(e.id());
});

List<CampaignScenarioEntity> allCampaignScenarioEntities = campaignScenarioJpaRepository.findAllByScenarioId(scenarioId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import static util.infra.AbstractLocalDatabaseTest.DB_CHANGELOG_DB_CHANGELOG_MASTER_XML;

import com.chutneytesting.ServerConfiguration;
import com.chutneytesting.execution.infra.aop.IndexingAspect;
import com.chutneytesting.index.infra.IndexConfig;
import com.chutneytesting.index.infra.IndexRepository;
import com.chutneytesting.index.infra.OnDiskIndexConfig;
Expand Down Expand Up @@ -44,6 +45,7 @@
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Profile;
import org.springframework.jdbc.core.JdbcTemplate;
Expand All @@ -61,6 +63,7 @@
@Configuration
@EnableTransactionManagement(proxyTargetClass = true)
@EnableJpa
@EnableAspectJAutoProxy
@Profile("test-infra")
class TestInfraConfiguration {

Expand Down Expand Up @@ -203,6 +206,11 @@ public ScenarioExecutionReportIndexRepository scenarioExecutionReportIndexReposi
return new ScenarioExecutionReportIndexRepository(indexRepository);
}

@Bean
public IndexingAspect indexingAspect(ScenarioExecutionReportIndexRepository indexRepository) {
return new IndexingAspect(indexRepository);
}


@Primary
@Bean
Expand Down

0 comments on commit 28267fd

Please sign in to comment.