Skip to content

Commit 38bd5c3

Browse files
authored
Merge pull request #108 from dartartem/development
Upgraded eventuate dependencies
2 parents a835e23 + 7ccd9a1 commit 38bd5c3

File tree

28 files changed

+91
-90
lines changed

28 files changed

+91
-90
lines changed

README.adoc

+5-5
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ This can take a while.
143143

144144
Use the services Swagger UIs to invoke the services.
145145

146-
* Create consumer - `http://localhost:8081/swagger-ui.html`
147-
* Create a restaurant - `http://localhost:8084/swagger-ui.html`
148-
* Create an order - `http://localhost:8082/swagger-ui.html`
149-
* View the order - `http://localhost:8082/swagger-ui.html`
150-
* View the order history - `http://localhost:8086/swagger-ui.html`
146+
* Create consumer - `http://localhost:8081/swagger-ui/index.html`
147+
* Create a restaurant - `http://localhost:8084/swagger-ui/index.html`
148+
* Create an order - `http://localhost:8082/swagger-ui/index.html`
149+
* View the order - `http://localhost:8082/swagger-ui/index.html`
150+
* View the order history - `http://localhost:8086/swagger-ui/index.html`
151151

152152
You can also access the application via the `API Gateway` at `http://localhost:8087`.
153153
However, currently it doesn't have a Swagger UI so you will have to use `curl`, for example.

common-swagger/build.gradle

+1-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
11
dependencies {
2-
compile ("io.springfox:springfox-swagger2:2.8.0") {
3-
exclude group: "org.springframework"
4-
}
5-
compile ("io.springfox:springfox-swagger-ui:2.8.0"){
6-
exclude group: "org.springframework"
7-
}
8-
compile "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
9-
compile project(":ftgo-common")
2+
compile "io.eventuate.util:eventuate-util-spring-swagger:$eventuateUtilVersion"
103
}
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,14 @@
11
package net.chrisrichardson.eventstore.examples.customersandorders.commonswagger;
22

3-
import com.fasterxml.classmate.TypeResolver;
4-
import net.chrisrichardson.ftgo.common.Money;
5-
import org.springframework.beans.factory.annotation.Autowired;
3+
import io.eventuate.util.spring.swagger.EventuateSwaggerConfig;
64
import org.springframework.context.annotation.Bean;
75
import org.springframework.context.annotation.Configuration;
8-
import org.springframework.http.ResponseEntity;
9-
import org.springframework.web.context.request.async.DeferredResult;
10-
import springfox.documentation.builders.RequestHandlerSelectors;
11-
import springfox.documentation.schema.WildcardType;
12-
import springfox.documentation.spi.DocumentationType;
13-
import springfox.documentation.spring.web.plugins.Docket;
14-
import springfox.documentation.swagger2.annotations.EnableSwagger2;
15-
16-
import java.util.concurrent.CompletableFuture;
17-
18-
import static springfox.documentation.schema.AlternateTypeRules.newRule;
196

207
@Configuration
21-
@EnableSwagger2
228
public class CommonSwaggerConfiguration {
239

2410
@Bean
25-
public Docket api() {
26-
return new Docket(DocumentationType.SWAGGER_2)
27-
.select()
28-
.apis(RequestHandlerSelectors.basePackage("net.chrisrichardson.ftgo"))
29-
.build()
30-
.pathMapping("/")
31-
.genericModelSubstitutes(ResponseEntity.class, CompletableFuture.class)
32-
.alternateTypeRules(
33-
newRule(typeResolver.resolve(DeferredResult.class,
34-
typeResolver.resolve(ResponseEntity.class, WildcardType.class)),
35-
typeResolver.resolve(WildcardType.class)),
36-
newRule(Money.class, String.class)
37-
)
38-
.useDefaultResponseMessages(false)
39-
;
11+
public EventuateSwaggerConfig eventuateSwaggerConfig() {
12+
return () -> "net.chrisrichardson.ftgo";
4013
}
41-
42-
@Autowired
43-
private TypeResolver typeResolver;
44-
4514
}

ftgo-accounting-service/src/test/java/net/chrisrichardson/ftgo/accountingservice/messaging/AccountingServiceCommandHandlerTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.eventuate.tram.sagas.spring.inmemory.TramSagaInMemoryConfiguration;
1111
import io.eventuate.tram.testutil.TestMessageConsumer;
1212
import io.eventuate.tram.testutil.TestMessageConsumerFactory;
13+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
1314
import io.eventuate.util.test.async.Eventually;
1415
import net.chrisrichardson.ftgo.accountingservice.domain.Account;
1516
import net.chrisrichardson.ftgo.accountingservice.domain.AccountCommand;
@@ -36,7 +37,7 @@
3637
public class AccountingServiceCommandHandlerTest {
3738

3839
@Configuration
39-
@EnableAutoConfiguration
40+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
4041
@Import({AccountingMessagingConfiguration.class,
4142
TramCommandProducerConfiguration.class,
4243
EmbeddedTestAggregateStoreConfiguration.class,

ftgo-consumer-service/src/test/java/net/chrisrichardson/ftgo/consumerservice/ConsumerServiceInMemoryIntegrationTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.eventuate.tram.spring.inmemory.TramInMemoryConfiguration;
77
import io.eventuate.tram.testutil.TestMessageConsumer;
88
import io.eventuate.tram.testutil.TestMessageConsumerFactory;
9+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
910
import net.chrisrichardson.ftgo.common.Money;
1011
import net.chrisrichardson.ftgo.common.PersonName;
1112
import net.chrisrichardson.ftgo.consumerservice.api.ValidateOrderByConsumer;
@@ -17,6 +18,7 @@
1718
import org.slf4j.LoggerFactory;
1819
import org.springframework.beans.factory.annotation.Autowired;
1920
import org.springframework.beans.factory.annotation.Value;
21+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2022
import org.springframework.boot.test.context.SpringBootTest;
2123
import org.springframework.context.annotation.Bean;
2224
import org.springframework.context.annotation.Configuration;
@@ -42,6 +44,7 @@ public class ConsumerServiceInMemoryIntegrationTest {
4244
@Import({ConsumerWebConfiguration.class,
4345
TramCommandProducerConfiguration.class,
4446
TramInMemoryConfiguration.class})
47+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
4548
public static class TestConfiguration {
4649

4750
@Bean

ftgo-delivery-service/src/component-test/java/net/chrisrichardson/ftgo/deliveryservice/DeliveryServiceInProcessComponentTest.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package net.chrisrichardson.ftgo.deliveryservice;
22

3+
import io.eventuate.common.spring.jdbc.EventuateTransactionTemplateConfiguration;
34
import io.eventuate.tram.events.publisher.DomainEventPublisher;
45
import io.eventuate.tram.spring.events.publisher.TramEventsPublisherConfiguration;
56
import io.eventuate.tram.spring.inmemory.TramInMemoryConfiguration;
7+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
68
import net.chrisrichardson.ftgo.deliveryservice.domain.DeliveryRepository;
79
import net.chrisrichardson.ftgo.deliveryservice.domain.DeliveryServiceTestData;
810
import net.chrisrichardson.ftgo.deliveryservice.domain.RestaurantRepository;
@@ -37,11 +39,12 @@ public class DeliveryServiceInProcessComponentTest {
3739
private long orderId;
3840

3941
@Configuration
40-
@EnableAutoConfiguration
42+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
4143
@Import({DeliveryServiceMessagingConfiguration.class,
4244
DeliveryServiceWebConfiguration.class,
4345
TramInMemoryConfiguration.class,
44-
TramEventsPublisherConfiguration.class
46+
TramEventsPublisherConfiguration.class,
47+
EventuateTransactionTemplateConfiguration.class
4548
})
4649
public static class Config {
4750
}

ftgo-delivery-service/src/component-test/java/net/chrisrichardson/ftgo/deliveryservice/DeliveryServiceOutOfProcessComponentTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.eventuate.tram.events.publisher.DomainEventPublisher;
44
import io.eventuate.tram.spring.events.publisher.TramEventsPublisherConfiguration;
55
import io.eventuate.tram.spring.jdbckafka.TramJdbcKafkaConfiguration;
6+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
67
import net.chrisrichardson.ftgo.deliveryservice.domain.DeliveryServiceTestData;
78
import net.chrisrichardson.ftgo.orderservice.api.OrderServiceChannels;
89
import net.chrisrichardson.ftgo.orderservice.api.events.OrderCreatedEvent;
@@ -33,7 +34,7 @@ public class DeliveryServiceOutOfProcessComponentTest {
3334

3435
@Configuration
3536
@EnableJpaRepositories
36-
@EnableAutoConfiguration
37+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
3738
@Import({TramJdbcKafkaConfiguration.class, TramEventsPublisherConfiguration.class
3839
})
3940
public static class Config {

ftgo-delivery-service/src/integration-test/java/net/chrisrichardson/ftgo/deliveryservice/domain/CourierJpaTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.chrisrichardson.ftgo.deliveryservice.domain;
22

33
import io.eventuate.tram.spring.consumer.jdbc.TramConsumerJdbcAutoConfiguration;
4+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
45
import org.junit.Test;
56
import org.junit.runner.RunWith;
67
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +23,7 @@ public class CourierJpaTest {
2223

2324
@Configuration
2425
@EnableJpaRepositories
25-
@EnableAutoConfiguration(exclude = TramConsumerJdbcAutoConfiguration.class)
26+
@EnableAutoConfiguration(exclude = {TramConsumerJdbcAutoConfiguration.class, CommonSwaggerConfiguration.class})
2627
public static class Config {
2728
}
2829

ftgo-delivery-service/src/integration-test/java/net/chrisrichardson/ftgo/deliveryservice/domain/DeliveryJpaTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.chrisrichardson.ftgo.deliveryservice.domain;
22

33
import io.eventuate.tram.spring.consumer.jdbc.TramConsumerJdbcAutoConfiguration;
4+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
45
import org.junit.Test;
56
import org.junit.runner.RunWith;
67
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +19,7 @@ public class DeliveryJpaTest {
1819

1920
@Configuration
2021
@EnableJpaRepositories
21-
@EnableAutoConfiguration(exclude = TramConsumerJdbcAutoConfiguration.class)
22+
@EnableAutoConfiguration(exclude = {TramConsumerJdbcAutoConfiguration.class, CommonSwaggerConfiguration.class})
2223
public static class Config {
2324
}
2425

ftgo-delivery-service/src/integration-test/java/net/chrisrichardson/ftgo/deliveryservice/domain/RestaurantJpaTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.chrisrichardson.ftgo.deliveryservice.domain;
22

33
import io.eventuate.tram.spring.consumer.jdbc.TramConsumerJdbcAutoConfiguration;
4+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
45
import org.junit.Test;
56
import org.junit.runner.RunWith;
67
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +20,7 @@ public class RestaurantJpaTest {
1920

2021
@Configuration
2122
@EnableJpaRepositories
22-
@EnableAutoConfiguration(exclude = TramConsumerJdbcAutoConfiguration.class)
23+
@EnableAutoConfiguration(exclude = {TramConsumerJdbcAutoConfiguration.class, CommonSwaggerConfiguration.class})
2324
public static class Config {
2425
}
2526

ftgo-end-to-end-tests/src/test/java/net/chrisrichardson/ftgo/endtoendtests/EndToEndTests.java

+13
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.jayway.restassured.config.ObjectMapperConfig;
55
import com.jayway.restassured.config.RestAssuredConfig;
66
import io.eventuate.common.json.mapper.JSonMapper;
7+
import io.eventuate.util.test.async.UrlTesting;
78
import net.chrisrichardson.ftgo.apis.model.consumerservice.CreateConsumerRequest;
89
import net.chrisrichardson.ftgo.apis.model.consumerservice.PersonName;
910
import net.chrisrichardson.ftgo.apis.model.restaurantservice.CreateRestaurantRequest;
@@ -23,6 +24,7 @@
2324
import org.junit.BeforeClass;
2425
import org.junit.Test;
2526

27+
import java.io.IOException;
2628
import java.time.LocalDateTime;
2729
import java.util.Collections;
2830

@@ -146,6 +148,17 @@ public void shouldDeliverOrder() {
146148

147149
}
148150

151+
@Test
152+
public void testSwaggerUiUrls() throws IOException {
153+
testSwaggerUiUrl(8081);
154+
testSwaggerUiUrl(8082);
155+
testSwaggerUiUrl(8084);
156+
testSwaggerUiUrl(8086);
157+
}
158+
159+
private void testSwaggerUiUrl(int port) throws IOException {
160+
UrlTesting.assertUrlStatusIsOk("localhost", port, "/swagger-ui/index.html");
161+
}
149162

150163
private void reviseOrder() {
151164
reviseOrder(orderId);

ftgo-kitchen-service/src/integration-test/java/net/chrisrichardson/ftgo/kitchenservice/contract/DeliveryserviceMessagingBase.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package net.chrisrichardson.ftgo.kitchenservice.contract;
22

3+
import io.eventuate.common.spring.jdbc.EventuateTransactionTemplateConfiguration;
34
import io.eventuate.tram.events.publisher.DomainEventPublisher;
45
import io.eventuate.tram.spring.events.publisher.TramEventsPublisherConfiguration;
56
import io.eventuate.tram.spring.inmemory.TramInMemoryConfiguration;
67
import io.eventuate.tram.spring.cloudcontractsupport.EventuateContractVerifierConfiguration;
8+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
79
import net.chrisrichardson.ftgo.common.CommonJsonMapperInitializer;
810
import net.chrisrichardson.ftgo.kitchenservice.api.TicketDetails;
911
import net.chrisrichardson.ftgo.kitchenservice.api.events.TicketAcceptedEvent;
@@ -32,8 +34,8 @@ public abstract class DeliveryserviceMessagingBase {
3234
}
3335

3436
@Configuration
35-
@EnableAutoConfiguration
36-
@Import({EventuateContractVerifierConfiguration.class, TramEventsPublisherConfiguration.class, TramInMemoryConfiguration.class})
37+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
38+
@Import({EventuateContractVerifierConfiguration.class, TramEventsPublisherConfiguration.class, TramInMemoryConfiguration.class, EventuateTransactionTemplateConfiguration.class})
3739
public static class TestConfiguration {
3840

3941
@Bean

ftgo-kitchen-service/src/integration-test/java/net/chrisrichardson/ftgo/kitchenservice/contract/MessagingBase.java

+3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package net.chrisrichardson.ftgo.kitchenservice.contract;
22

33
import io.eventuate.tram.spring.cloudcontractsupport.EventuateContractVerifierConfiguration;
4+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
45
import net.chrisrichardson.ftgo.kitchenservice.api.TicketDetails;
56
import net.chrisrichardson.ftgo.kitchenservice.domain.KitchenService;
67
import net.chrisrichardson.ftgo.kitchenservice.domain.Ticket;
78
import net.chrisrichardson.ftgo.kitchenservice.messagehandlers.KitchenServiceMessageHandlersConfiguration;
89
import org.junit.Before;
910
import org.junit.runner.RunWith;
1011
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
1113
import org.springframework.boot.test.context.SpringBootTest;
1214
import org.springframework.boot.test.mock.mockito.MockBean;
1315
import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureMessageVerifier;
@@ -30,6 +32,7 @@
3032
public abstract class MessagingBase {
3133

3234
@Configuration
35+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
3336
@Import({KitchenServiceMessageHandlersConfiguration.class, EventuateContractVerifierConfiguration.class})
3437
public static class TestConfiguration {
3538

ftgo-kitchen-service/src/test/java/net/chrisrichardson/ftgo/kitchenservice/domain/KitchenServiceInMemoryIntegrationTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import io.eventuate.tram.sagas.spring.inmemory.TramSagaInMemoryConfiguration;
88
import io.eventuate.tram.testutil.TestMessageConsumer;
99
import io.eventuate.tram.testutil.TestMessageConsumerFactory;
10+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
1011
import net.chrisrichardson.ftgo.common.Money;
1112
import net.chrisrichardson.ftgo.kitchenservice.api.CreateTicket;
1213
import net.chrisrichardson.ftgo.kitchenservice.api.TicketDetails;
@@ -40,7 +41,7 @@ public class KitchenServiceInMemoryIntegrationTest {
4041
private int port;
4142

4243
@Configuration
43-
@EnableAutoConfiguration
44+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
4445
@Import({KitchenServiceWebConfiguration.class, KitchenServiceMessageHandlersConfiguration.class,
4546
TramCommandProducerConfiguration.class,
4647
TramSagaInMemoryConfiguration.class})

ftgo-order-history-service/build.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ dependencies {
6565

6666
dockerCompose {
6767

68-
startedServices = ['not-used']
6968

7069
integrationTests {
7170
startedServices = ["dynamodblocal", "dynamodblocal-init"]

ftgo-order-history-service/src/integration-test/java/net/chrisrichardson/ftgo/cqrs/orderhistory/dynamodb/OrderHistoryDaoDynamoDbTest.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package net.chrisrichardson.ftgo.cqrs.orderhistory.dynamodb;
22

33
import io.eventuate.common.json.mapper.JSonMapper;
4+
import io.eventuate.common.spring.jdbc.EventuateTransactionTemplateConfiguration;
45
import io.eventuate.tram.spring.inmemory.TramInMemoryConfiguration;
6+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
57
import net.chrisrichardson.ftgo.common.Money;
68
import net.chrisrichardson.ftgo.cqrs.orderhistory.OrderHistory;
79
import net.chrisrichardson.ftgo.cqrs.orderhistory.OrderHistoryDao;
@@ -35,9 +37,9 @@
3537
public class OrderHistoryDaoDynamoDbTest {
3638

3739
@Configuration
38-
@EnableAutoConfiguration
40+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
3941
@ComponentScan
40-
@Import({OrderHistoryDynamoDBConfiguration.class, TramInMemoryConfiguration.class})
42+
@Import({OrderHistoryDynamoDBConfiguration.class, TramInMemoryConfiguration.class, EventuateTransactionTemplateConfiguration.class})
4143
static public class OrderHistoryDaoDynamoDbTestConfiguration {
4244

4345
}

ftgo-order-history-service/src/test/java/net/chrisrichardson/ftgo/orderhistory/contracts/OrderHistoryEventHandlersTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.eventuate.tram.messaging.common.ChannelMapping;
77
import io.eventuate.tram.messaging.common.DefaultChannelMapping;
88
import io.eventuate.tram.spring.cloudcontractsupport.EventuateContractVerifierConfiguration;
9+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
910
import net.chrisrichardson.ftgo.cqrs.orderhistory.OrderHistoryDao;
1011
import net.chrisrichardson.ftgo.cqrs.orderhistory.dynamodb.Order;
1112
import net.chrisrichardson.ftgo.cqrs.orderhistory.dynamodb.SourceEvent;
@@ -43,7 +44,7 @@
4344
public class OrderHistoryEventHandlersTest {
4445

4546
@Configuration
46-
@EnableAutoConfiguration
47+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
4748
@Import({OrderHistoryServiceMessagingConfiguration.class,
4849
TramCommandProducerConfiguration.class,
4950
TramInMemoryCommonConfiguration.class,

ftgo-order-service/build.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ componentTest.dependsOn(assemble)
5959

6060
dockerCompose {
6161

62-
startedServices = [ 'not-used']
6362

6463
integrationTests {
6564
startedServices = [ 'mysql']

ftgo-order-service/src/component-test/java/net/chrisrichardson/ftgo/orderservice/cucumber/OrderServiceComponentTestStepDefinitions.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.eventuate.tram.sagas.testing.SagaParticipantStubManager;
1313
import io.eventuate.tram.sagas.spring.testing.SagaParticipantStubManagerConfiguration;
1414
import io.eventuate.tram.testing.MessageTracker;
15+
import io.eventuate.util.spring.swagger.CommonSwaggerConfiguration;
1516
import io.restassured.response.Response;
1617
import net.chrisrichardson.ftgo.accountservice.api.AuthorizeCommand;
1718
import net.chrisrichardson.ftgo.common.CommonJsonMapperInitializer;
@@ -67,7 +68,7 @@ protected String baseUrl(String path) {
6768
}
6869

6970
@Configuration
70-
@EnableAutoConfiguration
71+
@EnableAutoConfiguration(exclude = CommonSwaggerConfiguration.class)
7172
@Import({TramJdbcKafkaConfiguration.class, SagaParticipantStubManagerConfiguration.class})
7273
@EnableJpaRepositories(basePackageClasses = RestaurantRepository.class) // Need to verify that the restaurant has been created. Replace with verifyRestaurantCreatedInOrderService
7374
@EntityScan(basePackageClasses = Order.class)

0 commit comments

Comments
 (0)