Skip to content

Commit ef810c1

Browse files
committed
Move @configuration classes to their respective modules
Create module-specific configuration classes following the pattern established in ftgo-kitchen-service: - OrderDomainConfiguration in order-service-domain - OrderSagasConfiguration in order-service-sagas - KitchenServiceProxyConfiguration in order-service-proxies-kitchen-service - ConsumerServiceProxyConfiguration in order-service-proxies-consumer-service - AccountingServiceProxyConfiguration in order-service-proxies-accounting-service OrderServiceConfiguration in order-service-main now imports these configurations and only defines application-level beans. Co-authored by Claude Code
1 parent 8e95b94 commit ef810c1

File tree

6 files changed

+122
-64
lines changed

6 files changed

+122
-64
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package net.chrisrichardson.ftgo.orderservice.domain;
2+
3+
import io.eventuate.tram.events.publisher.DomainEventPublisher;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
7+
@Configuration
8+
public class OrderDomainConfiguration {
9+
10+
@Bean
11+
public OrderService orderService(RestaurantRepository restaurantRepository,
12+
OrderRepository orderRepository,
13+
OrderDomainEventPublisher orderAggregateEventPublisher,
14+
OrderServiceInstrumentation instrumentation) {
15+
return new OrderService(orderRepository, restaurantRepository,
16+
orderAggregateEventPublisher, instrumentation);
17+
}
18+
19+
@Bean
20+
public OrderDomainEventPublisher orderAggregateEventPublisher(DomainEventPublisher eventPublisher) {
21+
return new OrderDomainEventPublisher(eventPublisher);
22+
}
23+
}

ftgo-order-service/order-service-main/src/main/java/net/chrisrichardson/ftgo/orderservice/domain/OrderServiceConfiguration.java

Lines changed: 15 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
package net.chrisrichardson.ftgo.orderservice.domain;
22

3-
import io.eventuate.tram.events.publisher.DomainEventPublisher;
43
import io.eventuate.tram.spring.events.publisher.TramEventsPublisherConfiguration;
54
import io.eventuate.tram.spring.flyway.EventuateTramFlywayMigrationConfiguration;
6-
import io.eventuate.tram.sagas.orchestration.SagaInstanceFactory;
75
import io.eventuate.tram.sagas.spring.orchestration.SagaOrchestratorConfiguration;
86
import io.micrometer.core.instrument.MeterRegistry;
97
import net.chrisrichardson.ftgo.common.CommonConfiguration;
10-
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.AccountingServiceProxy;
11-
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.ConsumerServiceProxy;
12-
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.KitchenServiceProxy;
13-
import net.chrisrichardson.ftgo.orderservice.sagas.cancelorder.CancelOrderSaga;
14-
import net.chrisrichardson.ftgo.orderservice.sagas.createorder.CreateOrderSaga;
15-
import net.chrisrichardson.ftgo.orderservice.sagas.createorder.OrderSagaService;
16-
import net.chrisrichardson.ftgo.orderservice.sagas.reviseorder.ReviseOrderSaga;
8+
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.AccountingServiceProxyConfiguration;
9+
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.ConsumerServiceProxyConfiguration;
10+
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.KitchenServiceProxyConfiguration;
11+
import net.chrisrichardson.ftgo.orderservice.sagas.OrderSagasConfiguration;
1712
import org.springframework.beans.factory.annotation.Value;
1813
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
1914
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -23,18 +18,19 @@
2318
import org.springframework.context.annotation.Import;
2419

2520
@Configuration
26-
@Import({TramEventsPublisherConfiguration.class, SagaOrchestratorConfiguration.class, CommonConfiguration.class, EventuateTramFlywayMigrationConfiguration.class})
21+
@Import({
22+
TramEventsPublisherConfiguration.class,
23+
SagaOrchestratorConfiguration.class,
24+
CommonConfiguration.class,
25+
EventuateTramFlywayMigrationConfiguration.class,
26+
OrderDomainConfiguration.class,
27+
OrderSagasConfiguration.class,
28+
KitchenServiceProxyConfiguration.class,
29+
ConsumerServiceProxyConfiguration.class,
30+
AccountingServiceProxyConfiguration.class
31+
})
2732
public class OrderServiceConfiguration {
2833

29-
@Bean
30-
public OrderService orderService(RestaurantRepository restaurantRepository,
31-
OrderRepository orderRepository,
32-
OrderDomainEventPublisher orderAggregateEventPublisher,
33-
OrderServiceInstrumentation instrumentation) {
34-
return new OrderService(orderRepository, restaurantRepository,
35-
orderAggregateEventPublisher, instrumentation);
36-
}
37-
3834
@Bean
3935
@ConditionalOnBean(MeterRegistry.class)
4036
public OrderServiceInstrumentation micrometerOrderServiceInstrumentation(MeterRegistry meterRegistry) {
@@ -47,51 +43,6 @@ public OrderServiceInstrumentation noOpOrderServiceInstrumentation() {
4743
return new NoOpOrderServiceInstrumentation();
4844
}
4945

50-
@Bean
51-
public OrderSagaService orderSagaService(OrderRepository orderRepository,
52-
SagaInstanceFactory sagaInstanceFactory,
53-
CreateOrderSaga createOrderSaga,
54-
CancelOrderSaga cancelOrderSaga,
55-
ReviseOrderSaga reviseOrderSaga) {
56-
return new OrderSagaService(orderRepository, sagaInstanceFactory, createOrderSaga, cancelOrderSaga, reviseOrderSaga);
57-
}
58-
59-
@Bean
60-
public CreateOrderSaga createOrderSaga(OrderService orderService, ConsumerServiceProxy consumerService, KitchenServiceProxy kitchenServiceProxy, AccountingServiceProxy accountingService) {
61-
return new CreateOrderSaga(orderService, consumerService, kitchenServiceProxy, accountingService);
62-
}
63-
64-
@Bean
65-
public CancelOrderSaga cancelOrderSaga() {
66-
return new CancelOrderSaga();
67-
}
68-
69-
@Bean
70-
public ReviseOrderSaga reviseOrderSaga() {
71-
return new ReviseOrderSaga();
72-
}
73-
74-
75-
@Bean
76-
public KitchenServiceProxy kitchenServiceProxy() {
77-
return new KitchenServiceProxy();
78-
}
79-
80-
@Bean
81-
public ConsumerServiceProxy consumerServiceProxy() {
82-
return new ConsumerServiceProxy();
83-
}
84-
85-
@Bean
86-
public AccountingServiceProxy accountingServiceProxy() {
87-
return new AccountingServiceProxy();
88-
}
89-
90-
@Bean
91-
public OrderDomainEventPublisher orderAggregateEventPublisher(DomainEventPublisher eventPublisher) {
92-
return new OrderDomainEventPublisher(eventPublisher);
93-
}
94-
9546
@Bean
9647
public MeterRegistryCustomizer meterRegistryCustomizer(@Value("${spring.application.name}") String serviceName) {
9748
return registry -> registry.config().commonTags("service", serviceName);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package net.chrisrichardson.ftgo.orderservice.sagaparticipants;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
public class AccountingServiceProxyConfiguration {
8+
9+
@Bean
10+
public AccountingServiceProxy accountingServiceProxy() {
11+
return new AccountingServiceProxy();
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package net.chrisrichardson.ftgo.orderservice.sagaparticipants;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
public class ConsumerServiceProxyConfiguration {
8+
9+
@Bean
10+
public ConsumerServiceProxy consumerServiceProxy() {
11+
return new ConsumerServiceProxy();
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package net.chrisrichardson.ftgo.orderservice.sagaparticipants;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
public class KitchenServiceProxyConfiguration {
8+
9+
@Bean
10+
public KitchenServiceProxy kitchenServiceProxy() {
11+
return new KitchenServiceProxy();
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package net.chrisrichardson.ftgo.orderservice.sagas;
2+
3+
import io.eventuate.tram.sagas.orchestration.SagaInstanceFactory;
4+
import net.chrisrichardson.ftgo.orderservice.domain.OrderRepository;
5+
import net.chrisrichardson.ftgo.orderservice.domain.OrderService;
6+
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.AccountingServiceProxy;
7+
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.ConsumerServiceProxy;
8+
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.KitchenServiceProxy;
9+
import net.chrisrichardson.ftgo.orderservice.sagas.cancelorder.CancelOrderSaga;
10+
import net.chrisrichardson.ftgo.orderservice.sagas.createorder.CreateOrderSaga;
11+
import net.chrisrichardson.ftgo.orderservice.sagas.createorder.OrderSagaService;
12+
import net.chrisrichardson.ftgo.orderservice.sagas.reviseorder.ReviseOrderSaga;
13+
import org.springframework.context.annotation.Bean;
14+
import org.springframework.context.annotation.Configuration;
15+
16+
@Configuration
17+
public class OrderSagasConfiguration {
18+
19+
@Bean
20+
public OrderSagaService orderSagaService(OrderRepository orderRepository,
21+
SagaInstanceFactory sagaInstanceFactory,
22+
CreateOrderSaga createOrderSaga,
23+
CancelOrderSaga cancelOrderSaga,
24+
ReviseOrderSaga reviseOrderSaga) {
25+
return new OrderSagaService(orderRepository, sagaInstanceFactory, createOrderSaga, cancelOrderSaga, reviseOrderSaga);
26+
}
27+
28+
@Bean
29+
public CreateOrderSaga createOrderSaga(OrderService orderService,
30+
ConsumerServiceProxy consumerService,
31+
KitchenServiceProxy kitchenServiceProxy,
32+
AccountingServiceProxy accountingService) {
33+
return new CreateOrderSaga(orderService, consumerService, kitchenServiceProxy, accountingService);
34+
}
35+
36+
@Bean
37+
public CancelOrderSaga cancelOrderSaga() {
38+
return new CancelOrderSaga();
39+
}
40+
41+
@Bean
42+
public ReviseOrderSaga reviseOrderSaga() {
43+
return new ReviseOrderSaga();
44+
}
45+
}

0 commit comments

Comments
 (0)