SpringDomainEventPublisher.java
package com.dmasone.identity.ecommerceapp.events;
import com.dmasone.identity.sharedkernel.domain.DomainEvent;
import com.dmasone.identity.sharedkernel.domain.EventPublisher;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
/**
* Adapter from the shared event publishing port to Spring's in-process event
* bus. This keeps domain modules free from a hard dependency on Spring events.
*/
@Component
public class SpringDomainEventPublisher implements EventPublisher {
private final ApplicationEventPublisher applicationEventPublisher;
public SpringDomainEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
this.applicationEventPublisher = applicationEventPublisher;
}
@Override
public void publish(DomainEvent event) {
applicationEventPublisher.publishEvent(event);
}
}