Skip to content

Commit 6cf5107

Browse files
committed
Upgraded various Spring Cloud dependencies
1 parent 1336a78 commit 6cf5107

File tree

17 files changed

+143
-71
lines changed

17 files changed

+143
-71
lines changed

build-and-restart-service.sh

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#! /bin/bash -e
22

3-
SNX=${1}
4-
SN=${SNX?}
3+
for SN in $* ; do
54

5+
./gradlew :${SN?}:assemble
6+
docker-compose build ${SN?}
7+
docker-compose up -d ${SN?}
8+
done
9+
10+
docker-compose logs -f $*
611

7-
./gradlew :${SNX?}:assemble
8-
docker-compose build ${SN?}
9-
docker-compose up -d ${SN?}
10-
docker-compose logs -f ${SN?}

build-and-run.sh

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#! /bin/bash -e
2+
3+
. ./set-env.sh
4+
5+
./gradlew assemble
6+
7+
docker-compose build
8+
9+
. ./set-env.sh
10+
11+
initializeDynamoDB() {
12+
echo preparing dynamodblocal table data
13+
cd dynamodblocal-init
14+
./create-dynamodb-tables.sh
15+
cd ..
16+
echo data is prepared
17+
}
18+
19+
20+
docker-compose down -v
21+
docker-compose up -d --build dynamodblocal mysql
22+
23+
./wait-for-mysql.sh
24+
25+
initializeDynamoDB
26+
27+
docker-compose up -d
28+
29+
./show-swagger-ui-urls.sh

ftgo-api-gateway/build.gradle

+6-6
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ apply plugin: 'org.springframework.boot'
1919

2020
dependencyManagement {
2121
imports {
22-
mavenBom 'org.springframework.cloud:spring-cloud-gateway:2.0.0.M8'
22+
mavenBom "org.springframework.cloud:spring-cloud-gateway:$springCloudGatewayVersion"
2323
mavenBom "org.springframework.cloud:spring-cloud-contract-dependencies:$springCloudContractDependenciesVersion"
24-
mavenBom 'org.springframework.cloud:spring-cloud-sleuth:2.0.0.M8'
24+
mavenBom "org.springframework.cloud:spring-cloud-sleuth:$springCloudSleuthVersion"
2525
}
2626
}
2727

@@ -53,16 +53,16 @@ dependencies {
5353
compile 'org.springframework.cloud:spring-cloud-starter-zipkin'
5454
compile 'io.zipkin.brave:brave-bom:4.17.1'
5555

56-
compile 'io.micrometer:micrometer-registry-prometheus:1.0.1'
57-
compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
56+
compile "io.micrometer:micrometer-registry-prometheus:$micrometerVersion"
57+
compile "org.springframework.boot:spring-boot-starter-actuator"
5858

59-
testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVersion2"
59+
testCompile "org.springframework.boot:spring-boot-starter-test"
6060
testCompile "junit:junit:4.12"
6161
testCompile "net.chrisrichardson.ftgo:ftgo-order-service-contracts:unspecified:stubs"
6262
testCompile "org.springframework.cloud:spring-cloud-contract-wiremock"
6363
testCompile "org.springframework.cloud:spring-cloud-starter-contract-stub-runner"
6464

6565
// FIXME: gradle was downgrading: 5.0.3.RELEASE -> 5.0.0.M6
66-
testCompile "org.springframework.integration:spring-integration-core:5.0.3.RELEASE"
66+
// testCompile "org.springframework.integration:spring-integration-core:5.0.3.RELEASE"
6767

6868
}

ftgo-api-gateway/src/main/resources/application.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ logging.level.com.github.tomakehurst.wiremock=TRACE
66

77
management.endpoints.web.exposure.include=health,prometheus
88

9-
spring.sleuth.sampler.percentage=1.0
9+
spring.sleuth.sampler.probability=1.0
1010
spring.sleuth.web.skipPattern=(^health.*)
1111

1212
# routes

ftgo-order-service/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ apply plugin: ComponentTestsPlugin
2525
dependencyManagement {
2626
imports {
2727
mavenBom "org.springframework.cloud:spring-cloud-contract-dependencies:$springCloudContractDependenciesVersion"
28-
mavenBom 'org.springframework.cloud:spring-cloud-sleuth:2.0.0.M8'
28+
mavenBom "org.springframework.cloud:spring-cloud-sleuth:$springCloudSleuthVersion"
2929
}
3030
}
3131

@@ -99,7 +99,7 @@ dependencies {
9999

100100
compile "org.springframework.boot:spring-boot-starter-data-jpa:$springBootVersion"
101101
compile "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
102-
compile 'io.micrometer:micrometer-registry-prometheus:1.0.1'
102+
compile "io.micrometer:micrometer-registry-prometheus:$micrometerVersion"
103103
compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
104104
compile 'javax.el:javax.el-api:2.2.5'
105105

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
spring.application.name=ftgo-order-service
2+
3+
logging.level.org.hibernate.SQL=DEBUG
4+
logging.level.org.springframework.cloud.contract=DEBUG
5+
logging.level.io.eventuate=DEBUG
6+
spring.jpa.generate-ddl=true
7+
stubrunner.stream.enabled=false
8+
stubrunner.integration.enabled=false

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

+31-29
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,36 @@
2727
@Transactional
2828
public class OrderService {
2929

30+
private Logger logger = LoggerFactory.getLogger(getClass());
31+
32+
private OrderRepository orderRepository;
33+
34+
private RestaurantRepository restaurantRepository;
35+
36+
private SagaManager<CreateOrderSagaState> createOrderSagaManager;
37+
38+
private SagaManager<CancelOrderSagaData> cancelOrderSagaManager;
39+
40+
private SagaManager<ReviseOrderSagaData> reviseOrderSagaManager;
41+
42+
private OrderDomainEventPublisher orderAggregateEventPublisher;
43+
44+
private Optional<MeterRegistry> meterRegistry;
45+
46+
public OrderService(OrderRepository orderRepository, DomainEventPublisher eventPublisher, RestaurantRepository restaurantRepository, SagaManager<CreateOrderSagaState> createOrderSagaManager, SagaManager<CancelOrderSagaData> cancelOrderSagaManager, SagaManager<ReviseOrderSagaData> reviseOrderSagaManager, OrderDomainEventPublisher orderAggregateEventPublisher, Optional<MeterRegistry> meterRegistry) {
47+
this.orderRepository = orderRepository;
48+
this.restaurantRepository = restaurantRepository;
49+
this.createOrderSagaManager = createOrderSagaManager;
50+
this.cancelOrderSagaManager = cancelOrderSagaManager;
51+
this.reviseOrderSagaManager = reviseOrderSagaManager;
52+
this.orderAggregateEventPublisher = orderAggregateEventPublisher;
53+
this.meterRegistry = meterRegistry;
54+
}
55+
3056
public Order createOrder(long consumerId, long restaurantId,
3157
List<MenuItemIdAndQuantity> lineItems) {
32-
Restaurant restaurant = restaurantRepository.findById(restaurantId).get();
58+
Restaurant restaurant = restaurantRepository.findById(restaurantId)
59+
.orElseThrow(() -> new RestaurantNotFoundException(restaurantId));
3360

3461
List<OrderLineItem> orderLineItems = makeOrderLineItems(lineItems, restaurant);
3562

@@ -46,37 +73,12 @@ public Order createOrder(long consumerId, long restaurantId,
4673
CreateOrderSagaState data = new CreateOrderSagaState(order.getId(), orderDetails);
4774
createOrderSagaManager.create(data, Order.class, order.getId());
4875

49-
meterRegistry.counter("placed_orders").increment();
76+
meterRegistry.ifPresent( mr -> mr.counter("placed_orders").increment());
5077

5178
return order;
5279
}
5380

5481

55-
private Logger logger = LoggerFactory.getLogger(getClass());
56-
57-
private OrderRepository orderRepository;
58-
59-
private RestaurantRepository restaurantRepository;
60-
61-
private SagaManager<CreateOrderSagaState> createOrderSagaManager;
62-
63-
private SagaManager<CancelOrderSagaData> cancelOrderSagaManager;
64-
65-
private SagaManager<ReviseOrderSagaData> reviseOrderSagaManager;
66-
67-
private OrderDomainEventPublisher orderAggregateEventPublisher;
68-
69-
@Autowired
70-
private MeterRegistry meterRegistry;
71-
72-
public OrderService(OrderRepository orderRepository, DomainEventPublisher eventPublisher, RestaurantRepository restaurantRepository, SagaManager<CreateOrderSagaState> createOrderSagaManager, SagaManager<CancelOrderSagaData> cancelOrderSagaManager, SagaManager<ReviseOrderSagaData> reviseOrderSagaManager, OrderDomainEventPublisher orderAggregateEventPublisher) {
73-
this.orderRepository = orderRepository;
74-
this.restaurantRepository = restaurantRepository;
75-
this.createOrderSagaManager = createOrderSagaManager;
76-
this.cancelOrderSagaManager = cancelOrderSagaManager;
77-
this.reviseOrderSagaManager = reviseOrderSagaManager;
78-
this.orderAggregateEventPublisher = orderAggregateEventPublisher;
79-
}
8082

8183
private List<OrderLineItem> makeOrderLineItems(List<MenuItemIdAndQuantity> lineItems, Restaurant restaurant) {
8284
return lineItems.stream().map(li -> {
@@ -123,12 +125,12 @@ private Optional<Order> updateOrder(long orderId, Function<Order, List<OrderDoma
123125

124126
public void approveOrder(long orderId) {
125127
updateOrder(orderId, Order::noteApproved).orElseThrow(RuntimeException::new);
126-
meterRegistry.counter("approved_orders").increment();
128+
meterRegistry.ifPresent( mr -> mr.counter("approved_orders").increment());
127129
}
128130

129131
public void rejectOrder(long orderId) {
130132
updateOrder(orderId, Order::noteRejected).orElseThrow(RuntimeException::new);
131-
meterRegistry.counter("rejected_orders").increment();
133+
meterRegistry.ifPresent( mr -> mr.counter("rejected_orders").increment());
132134
}
133135

134136
public void beginCancel(long orderId) {

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

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import io.eventuate.tram.sagas.orchestration.SagaManagerImpl;
88
import io.eventuate.tram.sagas.orchestration.SagaOrchestratorConfiguration;
99
import io.micrometer.core.instrument.MeterRegistry;
10-
import io.micrometer.core.instrument.binder.MeterBinder;
1110
import net.chrisrichardson.ftgo.common.CommonConfiguration;
1211
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.AccountingServiceProxy;
1312
import net.chrisrichardson.ftgo.orderservice.sagaparticipants.ConsumerServiceProxy;
@@ -25,6 +24,8 @@
2524
import org.springframework.context.annotation.Configuration;
2625
import org.springframework.context.annotation.Import;
2726

27+
import java.util.Optional;
28+
2829
@Configuration
2930
@Import({TramEventsPublisherConfiguration.class, SagaOrchestratorConfiguration.class, CommonConfiguration.class})
3031
public class OrderServiceConfiguration {
@@ -38,9 +39,9 @@ public SagaCommandProducer sagaCommandProducer() {
3839
@Bean
3940
public OrderService orderService(RestaurantRepository restaurantRepository, OrderRepository orderRepository, DomainEventPublisher eventPublisher,
4041
SagaManager<CreateOrderSagaState> createOrderSagaManager,
41-
SagaManager<CancelOrderSagaData> cancelOrderSagaManager, SagaManager<ReviseOrderSagaData> reviseOrderSagaManager, OrderDomainEventPublisher orderAggregateEventPublisher) {
42+
SagaManager<CancelOrderSagaData> cancelOrderSagaManager, SagaManager<ReviseOrderSagaData> reviseOrderSagaManager, OrderDomainEventPublisher orderAggregateEventPublisher, Optional<MeterRegistry> meterRegistry) {
4243
return new OrderService(orderRepository, eventPublisher, restaurantRepository,
43-
createOrderSagaManager, cancelOrderSagaManager, reviseOrderSagaManager, orderAggregateEventPublisher);
44+
createOrderSagaManager, cancelOrderSagaManager, reviseOrderSagaManager, orderAggregateEventPublisher, meterRegistry);
4445
}
4546

4647
@Bean
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package net.chrisrichardson.ftgo.orderservice.domain;
2+
3+
public class RestaurantNotFoundException extends RuntimeException {
4+
public RestaurantNotFoundException(long restaurantId) {
5+
super("Restaurant not found with id " + restaurantId);
6+
}
7+
}

ftgo-order-service/src/main/java/net/chrisrichardson/ftgo/orderservice/web/TraceIdResponseFilter.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import brave.Span;
66
import brave.Tracer;
7-
import org.springframework.cloud.sleuth.instrument.web.TraceFilter;
7+
import org.springframework.cloud.sleuth.instrument.web.TraceWebServletAutoConfiguration;
88
import org.springframework.core.annotation.Order;
99
import org.springframework.stereotype.Component;
1010
import org.springframework.web.filter.GenericFilterBean;
@@ -17,7 +17,7 @@
1717
import java.io.IOException;
1818

1919
@Component
20-
@Order(TraceFilter.ORDER + 1)
20+
@Order(TraceWebServletAutoConfiguration.TRACING_FILTER_ORDER + 1)
2121
class TraceIdResponseFilter extends GenericFilterBean {
2222

2323
private final Tracer tracer;

ftgo-order-service/src/main/resources/application.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
spring.application.name=ftgo-order-service
22

3-
spring.sleuth.sampler.percentage=1.0
3+
spring.sleuth.sampler.probability=1.0
44
spring.sleuth.web.skipPattern=(^health.*)
55

66
management.endpoints.web.exposure.include=health,prometheus

ftgo-order-service/src/test/java/net/chrisrichardson/ftgo/orderservice/domain/OrderServiceTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void setup() {
4949
orderAggregateEventPublisher = mock(OrderDomainEventPublisher.class);
5050

5151
orderService = new OrderService(orderRepository, eventPublisher, restaurantRepository,
52-
createOrderSagaManager, cancelOrderSagaManager, reviseOrderSagaManager, orderAggregateEventPublisher);
52+
createOrderSagaManager, cancelOrderSagaManager, reviseOrderSagaManager, orderAggregateEventPublisher, Optional.empty());
5353
}
5454

5555

ftgo-order-service/src/test/resources/application.properties

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
spring.application.name=ftgo-order-service
2+
13
logging.level.org.hibernate.SQL=DEBUG
24
logging.level.org.springframework.cloud.contract=DEBUG
35
logging.level.io.eventuate=DEBUG
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package net.chrisrichardson.ftgo.restaurantorderservice.domain;
2+
3+
public class RestaurantOrderNotFoundException extends RuntimeException {
4+
public RestaurantOrderNotFoundException(long orderId) {
5+
super("RestaurantOrder not found: " + orderId);
6+
}
7+
}

ftgo-restaurant-order-service/src/main/java/net/chrisrichardson/ftgo/restaurantorderservice/domain/RestaurantOrderService.java

+28-18
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@ public void createMenu(long id, RestaurantMenu menu) {
3030
restaurantRepository.save(restaurant);
3131
}
3232

33-
public void reviseMenu(long id, RestaurantMenu revisedMenu) {
34-
Restaurant restaurant = restaurantRepository.findById(id).get();
33+
public void reviseMenu(long restaurantOrderId, RestaurantMenu revisedMenu) {
34+
Restaurant restaurant = restaurantRepository.findById(restaurantOrderId)
35+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
3536
restaurant.reviseMenu(revisedMenu);
3637
}
3738

@@ -42,65 +43,74 @@ public RestaurantOrder createRestaurantOrder(long restaurantId, Long restaurantO
4243
return rwe.result;
4344
}
4445

45-
public void accept(long orderId, LocalDateTime readyBy) {
46-
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(orderId).get();
46+
public void accept(long restaurantOrderId, LocalDateTime readyBy) {
47+
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(restaurantOrderId)
48+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
4749
List<RestaurantOrderDomainEvent> events = restaurantOrder.accept(readyBy);
4850
domainEventPublisher.publish(restaurantOrder, events);
4951
}
5052

5153
public void confirmCreateRestaurantOrder(Long restaurantOrderId) {
52-
RestaurantOrder ro = restaurantOrderRepository.findById(restaurantOrderId).get();
54+
RestaurantOrder ro = restaurantOrderRepository.findById(restaurantOrderId)
55+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
5356
List<RestaurantOrderDomainEvent> events = ro.confirmCreate();
5457
domainEventPublisher.publish(ro, events);
5558
}
5659

5760
public void cancelCreateRestaurantOrder(Long restaurantOrderId) {
58-
RestaurantOrder ro = restaurantOrderRepository.findById(restaurantOrderId).get();
61+
RestaurantOrder ro = restaurantOrderRepository.findById(restaurantOrderId)
62+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
5963
List<RestaurantOrderDomainEvent> events = ro.cancelCreate();
6064
domainEventPublisher.publish(ro, events);
6165
}
6266

6367

64-
public void cancelRestaurantOrder(long restaurantId, long orderId) {
65-
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(orderId).get();
68+
public void cancelRestaurantOrder(long restaurantId, long restaurantOrderId) {
69+
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(restaurantOrderId)
70+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
6671
// TODO - verify restaurant id
6772
List<RestaurantOrderDomainEvent> events = restaurantOrder.cancel();
6873
domainEventPublisher.publish(restaurantOrder, events);
6974
}
7075

7176

72-
public void confirmCancelRestaurantOrder(long restaurantId, long orderId) {
73-
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(orderId).get();
77+
public void confirmCancelRestaurantOrder(long restaurantId, long restaurantOrderId) {
78+
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(restaurantOrderId)
79+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
7480
// TODO - verify restaurant id
7581
List<RestaurantOrderDomainEvent> events = restaurantOrder.confirmCancel();
7682
domainEventPublisher.publish(restaurantOrder, events);
7783
}
7884

79-
public void undoCancel(long restaurantId, long orderId) {
80-
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(orderId).get();
85+
public void undoCancel(long restaurantId, long restaurantOrderId) {
86+
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(restaurantOrderId)
87+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
8188
// TODO - verify restaurant id
8289
List<RestaurantOrderDomainEvent> events = restaurantOrder.undoCancel();
8390
domainEventPublisher.publish(restaurantOrder, events);
8491

8592
}
8693

87-
public void beginReviseOrder(long restaurantId, Long orderId, Map<String, Integer> revisedLineItemQuantities) {
88-
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(orderId).get();
94+
public void beginReviseOrder(long restaurantId, Long restaurantOrderId, Map<String, Integer> revisedLineItemQuantities) {
95+
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(restaurantOrderId)
96+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
8997
// TODO - verify restaurant id
9098
List<RestaurantOrderDomainEvent> events = restaurantOrder.beginReviseOrder(revisedLineItemQuantities);
9199
domainEventPublisher.publish(restaurantOrder, events);
92100

93101
}
94102

95-
public void undoBeginReviseOrder(long restaurantId, Long orderId) {
96-
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(orderId).get();
103+
public void undoBeginReviseOrder(long restaurantId, Long restaurantOrderId) {
104+
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(restaurantOrderId)
105+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
97106
// TODO - verify restaurant id
98107
List<RestaurantOrderDomainEvent> events = restaurantOrder.undoBeginReviseOrder();
99108
domainEventPublisher.publish(restaurantOrder, events);
100109
}
101110

102-
public void confirmReviseRestaurantOrder(long restaurantId, long orderId, Map<String, Integer> revisedLineItemQuantities) {
103-
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(orderId).get();
111+
public void confirmReviseRestaurantOrder(long restaurantId, long restaurantOrderId, Map<String, Integer> revisedLineItemQuantities) {
112+
RestaurantOrder restaurantOrder = restaurantOrderRepository.findById(restaurantOrderId)
113+
.orElseThrow(() -> new RestaurantOrderNotFoundException(restaurantOrderId));
104114
// TODO - verify restaurant id
105115
List<RestaurantOrderDomainEvent> events = restaurantOrder.confirmReviseRestaurantOrder(revisedLineItemQuantities);
106116
domainEventPublisher.publish(restaurantOrder, events);

0 commit comments

Comments
 (0)