Skip to content

Commit

Permalink
[3021] Allow SemanticDataInitializer to trigger other listeners
Browse files Browse the repository at this point in the history
Bug: #3021
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
  • Loading branch information
pcdavid authored and sbegaudeau committed Mar 5, 2024
1 parent e9e5031 commit 033f8f5
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
Expand Up @@ -18,6 +18,7 @@
import org.eclipse.sirius.web.domain.boundedcontexts.semanticdata.services.api.ISemanticDataCreationService;
import org.springframework.data.jdbc.core.mapping.AggregateReference;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.event.TransactionalEventListener;

Expand All @@ -35,7 +36,7 @@ public SemanticDataInitializer(ISemanticDataCreationService semanticDataCreation
this.semanticDataCreationService = Objects.requireNonNull(semanticDataCreationService);
}

@Transactional
@Transactional(propagation = Propagation.REQUIRES_NEW)
@TransactionalEventListener
public void onProjectCreatedEvent(ProjectCreatedEvent event) {
this.semanticDataCreationService.initialize(AggregateReference.to(event.project().getId()));
Expand Down
Expand Up @@ -226,7 +226,7 @@ public void givenValidProjectToCreateWhenMutationIsPerformedThenProjectIsCreated
assertThat(optionalProject).isPresent();
optionalProject.ifPresent(project -> assertThat(project.getName()).isEqualTo(input.name()));

assertThat(this.domainEventCollector.getDomainEvents()).hasSize(1);
assertThat(this.domainEventCollector.getDomainEvents()).hasSize(2);
var event = this.domainEventCollector.getDomainEvents().get(0);
assertThat(event).isInstanceOf(ProjectCreatedEvent.class);
}
Expand All @@ -241,7 +241,7 @@ public void givenValidProjectToCreateWhenMutationIsPerformedThenTheSemanticDataA
TestTransaction.flagForCommit();
TestTransaction.end();

assertThat(this.domainEventCollector.getDomainEvents()).hasSize(1);
assertThat(this.domainEventCollector.getDomainEvents()).hasSize(2);
var event = this.domainEventCollector.getDomainEvents().get(0);
assertThat(event).isInstanceOf(ProjectCreatedEvent.class);

Expand Down

0 comments on commit 033f8f5

Please sign in to comment.